ferritin — Rust documentation lookup
SkillDocs & knowledgeLook 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.
No other account needed.
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>iscrate::Module::Item:ferritin get std::vec::Vecferritin get serde::Serializeferritin 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.0matches any1.x.y, whileserde@=1.0.0pins exactly1.0.0. The full semver requirement syntax (^,~,>=,*, etc.) applies.
ferritin search <crate> <query>...— search within one crate:ferritin search tokio spawnferritin 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 --helpferritin 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;nonegives just the signature/listing.-r, --recursive(onget) — 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