BeautifulRust: Agent Skills and a Clippy Config That Make AI Write Idiomatic Rust Morgan Linton's open-source repository BeautifulRust, which bundles three Agent Skills for writing, reviewing and porting Rust plus a tested clippy lint configuration, reached about 1,200 GitHub stars and 56 forks within days of launch. The MIT-licensed repo works with Claude Code, Codex, Copilot, Cursor and Gemini CLI, and its lints flag issues including unwrap() outside tests, unsafe blocks lacking a // SAFETY: comment, and bool function parameters. The README's benchmark claims come from the maintainer's own evals and are not independently proven. BeautifulRust is a small repository that tries to fix a familiar problem: coding agents write Rust that compiles but reads like translated Python. It bundles three Agent Skills https://explainx.ai/blog/what-are-agent-skills-complete-guide one to write Rust, one to review it, one to port other languages and a clippy lint configuration, and it picked up about 1,200 GitHub stars in the days after launch. It is MIT licensed and, according to its README https://github.com/morganlinton/BeautifulRust?ref=explainx , works with Claude Code, Codex, Copilot, Cursor and Gemini CLI. This post explains what is in the repo, how to install it, what the clippy rules enforce, and how much weight to give the evaluation numbers the author publishes. TL;DR: what readers ask first | Question | Short answer | |---|---| | What is it? | Three Agent Skills plus a tested clippy config for Rust | | Who made it? | Morgan Linton, as an open repository about 1.2k stars, 56 forks, 15 commits at the time of writing | | License? | MIT for the repo's own text, digests and scripts; the underlying style guides keep their own licenses | | Does it need API keys? | No. Skills are plain instruction files your agent loads; only the optional evals make billed model calls | | Works with which agents? | Claude Code, Codex, Copilot, Cursor, Gemini CLI and anything that reads the Agent Skills format | | Are the benchmark claims proven? | No. They come from the maintainer's own evals | What is inside BeautifulRust? The repository has four parts, per the README. skills/ holds three skill folders, each with a SKILL.md and an evals/ directory. The rust-best-practices skill also ships a references/ folder of paraphrased digests. lints/ holds lints.toml , clippy.toml and a small check/ crate used to confirm every lint actually fires. scripts/ contains check-skill.py and check-lints.sh , which validate the skills and the lints. examples/ includes a sample review report so you can see the output format before installing anything. The guidance is a synthesis of five public sources: the Google Rust Style Guide, the Rust API Guidelines, Effective Rust by David Drysdale, Rust Design Patterns, and Microsoft's Pragmatic Rust Guidelines. The README says it bundles paraphrased digests rather than copying text, which matters because those sources carry different licenses Effective Rust is CC BY-NC-ND, for example . The three skills rust-best-practices: the write-time skill This one loads when an agent writes or changes Rust and nudges it toward idiomatic patterns. It is the always-on layer: the point is that the agent consults the digests before it produces an unwrap -heavy first draft, not after. rust-review: a prioritized report Point it at a file, a crate or a diff and it writes a report grouped as must fix, should fix and consider. Each finding cites the rule behind it and includes a fix. That structure is the useful part: a review that names its rule is easier to argue with, and easier to turn into a lint later. rust-port: migrating from C, C++, Python, Go or JavaScript The porting skill ports the original tests first, then the code, and produces a PORTING.md documenting decisions. Test-first porting is a sound habit for any migration, and it fits the pattern we described in GitHub Copilot's Rust migration https://explainx.ai/blog/github-copilot-runtime-rust-migration-2026 , where the hard part is proving the new code behaves like the old. The clippy config: guardrails the agent cannot talk its way past Skills are suggestions an agent can ignore. A lint config is a gate. The lints/ folder is a drop-in set that, per the README, flags: - unwrap outside tests - unsafe blocks without a // SAFETY: comment - allow attributes without a reason - bool function parameters - silent lossy as casts - missing Errors and Panics documentation sections - leftover dbg and unfinished-code macros To use it, copy lints/clippy.toml next to your Cargo.toml , paste the lints block from lints/lints.toml into the manifest, and run: cargo clippy --all-targets --all-features -- -D warnings Some lints are marked lib and can be dropped for applications, and the allow attributes lints need rust-version = "1.81" or later. scripts/check-lints.sh runs the config against the lints/check/ crate to verify each rule fires, which is a nice touch: a lint config nobody has tested can silently do nothing. The combination is the real idea. The skill makes the agent less likely to write unwrap ; the lint makes the build fail if it does anyway. This is the same two-layer thinking behind most agent guardrails, and it echoes what we covered in i-have-adhd https://explainx.ai/blog/i-have-adhd-skill-action-first-ai-coding-agents-2026 : a skill shapes behavior, but only a hard check enforces it. How to install it The README documents several routes. | Agent | Command | |---|---| | Any agent | npx skills add morganlinton/BeautifulRust Node 22.20 or newer; -g for user-level, -a codex to target one agent | | Claude Code plugin | claude plugin install beautiful-rust --marketplace morganlinton/BeautifulRust | | Claude Code in session | /plugin marketplace add morganlinton/BeautifulRust , then /plugin install beautiful-rust@beautiful-rust | | GitHub Copilot | gh skill install morganlinton/BeautifulRust