Teaching your coding agent to stop writing C in Rust
BeautifulRust bundles three Agent Skills that push LLM coding agents toward idiomatic Rust — plus a clippy config that keeps the rules enforced after the agent goes home.

What it does
It ships three Agent Skills in the standard format: rust-best-practices (steers the agent while it writes Rust), rust-review (audits existing code or diffs and emits a prioritized report citing the specific rule each finding breaks), and rust-port (translates C, C++, Python, Go, or JavaScript to Rust by porting the tests first). A companion clippy config enforces the machine-checkable rules in CI. Works with Claude Code, Codex, Copilot, Cursor, and Gemini CLI.
The interesting bit
The guidance is distilled from five style sources — Google’s Rust style guide, the official Rust API Guidelines, Effective Rust, Rust Design Patterns, and Microsoft’s pragmatic guidelines — with a condensed digest of each bundled so the agent can consult the original reasoning. Where the sources disagree, the skill picks a side and says why, which is more editorial spine than most style guides manage.
Key highlights
- Review reports are three-tiered (must fix / should fix / consider) with
file:linelocations, the broken rule and its source, and the smallest fix. - The port skill designs a Rust API instead of transliterating —
NULLtoOption, error codes to enums, dict insertion order to an ordered collection — and produces aPORTING.mdmapping old API to new. - Every code example in the skills compiles on stable Rust; every clippy lint is proven to fire via a check crate with one deliberate violation per lint.
- In the author’s three-task eval, the skill passed 29 of 30 checks versus 24 of 30 without it.
- The clippy config flags
unwrap()outside tests, undocumentedunsafeblocks, unexplained#[allow], bareboolparameters, and missing# Errorsdocs.
Caveats
- The 29/30 vs 24/30 result is the author’s own test, not an independent benchmark — three tasks is a small sample.
- Two lints require
rust-version = "1.81"or later, since clippy disables them for older crates. - Claude Code doesn’t read the shared
.agents/skills/location, so it needs its own directory or the plugin route.
Verdict
If you let an agent write Rust and wince at the output, this is a cheap, well-sourced way to raise the floor — and the clippy config is useful even if you never touch the skills. If you already enforce a strict lint setup and review everything yourself, it’s mostly convenience.
Frequently asked
- What is morganlinton/BeautifulRust?
- BeautifulRust bundles three Agent Skills that push LLM coding agents toward idiomatic Rust — plus a clippy config that keeps the rules enforced after the agent goes home.
- Is BeautifulRust open source?
- Yes — morganlinton/BeautifulRust is open source, released under the MIT license.
- What language is BeautifulRust written in?
- morganlinton/BeautifulRust is primarily written in Python.
- How popular is BeautifulRust?
- morganlinton/BeautifulRust has 1.2k stars on GitHub.
- Where can I find BeautifulRust?
- morganlinton/BeautifulRust is on GitHub at https://github.com/morganlinton/BeautifulRust.