Skip to content

Rust Skills

A collection of 265 rules across 26 categories that AI coding agents can use to write idiomatic, fast, and safe Rust.

Install

$npx add-skill leonardomso/rust-skills
Claude Code
claude mcp add rust-skills -- npx add-skill leonardomso/rust-skills
Cursor / Claude Desktop (mcp.json)
{
  "mcpServers": {
    "rust-skills": {
      "command": "npx",
      "args": [
        "add-skill",
        "leonardomso/rust-skills"
      ]
    }
  }
}

Install command taken from the project's README or registry entry. Always review code before running it.

Rust Skills

265 Rust rules your AI coding agent can use to write better code. Current for Rust 1.96 (2024 edition).

Works with Claude Code, Cursor, Windsurf, Copilot, Codex, Aider, Zed, Amp, Cline, and pretty much any other agent that supports skills.

Why

Out of the box, coding agents write average Rust — they clone to dodge the borrow checker, .unwrap() everything, and reach for Box<dyn Trait> when impl Trait would do. These rules encode what expert Rust actually looks like: idiomatic, fast, and safe. Each rule is small and focused, so the agent pulls in only what's relevant to the code in front of it.

Install

npx add-skill leonardomso/rust-skills

That's it. The CLI figures out which agents you have and installs the skill to the right place.

How to use it

After installing, just ask your agent:

/rust-skills review this function
/rust-skills is my error handling idiomatic?
/rust-skills check for memory issues
/rust-skills is this unsafe block sound?

The agent loads the relevant rules and applies them to your code.

See it in action

Ask the agent to review a function like this:

// before
fn first_word(s: &String) -> String {
    s.clone().split_whitespace().next().unwrap().to_string()
}

With these rules loaded, it knows to take &str instead of &String, drop the needless clone() and allocation, and return an Option instead of panicking:

// after — applies own-slice-over-vec, own-borrow-over-clone, anti-unwrap-abuse
fn first_word(s: &str) -> Option<&str> {
    s.split_whitespace().next()
}

What's in here

265 rules split into 26 categories:

Category Rules What it covers
Ownership & Borrowing 12 When to borrow vs clone, Arc/Rc, lifetimes
Error Handling 12 thiserror for libs, anyhow for apps, the ? operator
Memory 17 SmallVec, arenas, avoiding allocations, mem::take, drop order
Unsafe Code 7 SAFETY: comments, Miri, MaybeUninit, 2024-edition unsafe
API Design 17 Builder pattern, newtypes, sealed traits, FromIterator
Async 18 Tokio patterns, channels, async fn in traits, cancel safety
Concurrency 4 rayon, scoped threads, atomic ordering, thread-locals
Optimization 12 LTO, inlining, PGO, SIMD
Numeric & Arithmetic 5 Overflow handling, as vs TryFrom, float compare, NonZero
Type Safety 13 Newtypes, parse don't validate, Deref, Display/Debug
Trait & Generics Design 6 dyn vs generic, associated types, blanket impls, object safety, orphan rule
Conversions 3 TryFrom, FromStr, AsMut
Const & Compile-Time 4 const fn, const vs static, const generics, const {} blocks
Serde 8 rename_all, default, flatten, enum tagging, validate-on-deserialize
Pattern Matching 5 let-else, matches!, if-let chains, exhaustive matches
Macros 8 macro_rules! hygiene, fragment specifiers, proc-macros with syn/quote
Closures 5 Fn/FnMut/FnOnce bounds, returning impl Fn, move & disjoint capture
Collections 4 HashMap/BTreeMap/IndexMap, Vec/VecDeque, sets, BinaryHeap
Naming 16 Following Rust API Guidelines
Testing 15 Proptest, mockall, criterion, loom, snapshot tests
Docs 12 Doc examples, intra-doc links, README/crate-doc unification

Similar plugs

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local…

Why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.

The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create prototypes, websites, apps, dashboards, presentations, images, and videos with your team…