ferritin — Rust documentation lookup

SkillDocs & knowledge

Look up real Rust documentation with the `ferritin` CLI instead of guessing APIs from memory. Use whenever you need a crate's types, traits, methods, function signatures, or module contents — for dependencies, the standard library, or local workspace crates. Reach for it before answering any Rust API question ("what methods does X have", "how do I use Y", "what's the signature of Z", "does this trait require..."), and when writing or reviewing Rust against an unfamiliar API. Runs as a plain shell command; no MCP server.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the ferritin — Rust documentation lookup skill

What this skill tells your AI

The instructions your AI receives, as published by jbr/ferritin in skills/SKILL.md and read by ahel’s review.

ferritin renders real rustdoc for any crate. Prefer it over recalling Rust APIs from memory: it returns actual current signatures, trait impls, and prose for dependencies, std, and the local workspace's own crates — at the exact versions this project resolves.

In an agent session ferritin auto-detects the environment and emits LLM-friendly output; you do not need to pass any output-format flag.

Core commands

  • ferritin get <path> — documentation for one item, where <path> is crate::Module::Item:
    • ferritin get std::vec::Vec
    • ferritin get serde::Serialize
    • ferritin get serde@1.0::Serialize (pin a version — on the crate segment, not as a suffix on the full path)
    • The version is a semver spec, not an exact version: serde@1.0 matches any 1.x.y, while serde@=1.0.0 pins exactly 1.0.0. The full semver requirement syntax (^, ~, >=, *, etc.) applies.
  • ferritin search <crate> <query>... — search within one crate:
    • ferritin search tokio spawn
    • ferritin search serde@1.0 Deserialize (pin a version)
  • ferritin list — list the crates available to query.

By default ferritin sources docs straight from docs.rs as rustdoc JSON, so a crate does not need to be a dependency of this project or installed locally — you can query any published crate by name. To inspect the current workspace's own (in-development) crates instead, add -l / --local (uses the Cargo.toml in the working directory), or target one explicitly with --manifest-path <path>:

  • ferritin -l get my_crate::MyType

Discovering current flags

This CLI is actively evolving — treat --help as the source of truth for the live flag surface rather than guessing:

  • ferritin --help
  • ferritin get --help · ferritin search --help

Flags worth knowing (confirm names/values with --help):

  • -k, --kind <struct|enum|trait|function|module|…> — restrict a listing or search to given kinds (comma-separated or repeated).
  • --docs <full|brief|none> — how much doc prose to render; none gives just the signature/listing.
  • -r, --recursive (on get) — descend into nested items.

When to use it

Reach for ferritin whenever a task touches an unfamiliar Rust API: before writing code against a crate, when answering "what methods/fields/variants does X have", when checking a trait's required methods, or when verifying a signature. It is faster and more accurate than inferring from memory, and reflects the exact versions resolved in this project.

Signals

GitHub stars
37
Forks
1
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
ferritin
Source
github.com/jbr/ferritin