npx agentspec-cli install 20715238-4446-4ff2-938f-bd124aadf670 --framework ClaudeCode→ .claude/skills/ferritin/SKILL.md
# ferritin — Rust documentation lookup
`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.
Built on the Agent Skills standard
Sign in to leave a comment.