Skills Command
Inspect the Agent Skills visible to Crucible. Skills are
folders containing a SKILL.md with YAML frontmatter; cru skills lists what discovery
found, shows one skill’s full instructions, and filters by substring.
All three subcommands go through the daemon, which re-runs discovery on every call — there is no cache to invalidate after you add a skill.
Synopsis
cru skills list [--scope <scope>] [-f <format>]cru skills show <name>cru skills search <query> [-n <limit>]cru skills list
Lists every discovered skill, sorted by name, with its scope and description. A skill that shadows a same-named skill from a lower scope is annotated with the number it shadows.
| Option | Default | Description |
|---|---|---|
--scope <scope> | all | Keep only skills whose resolved scope is builtin, personal, workspace, or kiln |
-f, --format <format> | terminal: table, piped: plain | table, plain, or json |
cru skills listcru skills list --scope kilncru skills list -f jsonjson emits an array of { name, scope, description, shadowed_count }.
When nothing is found, the command prints a short hardcoded hint of common skill
locations (personal, workspace, kiln) rather than an empty list. The hint names
<kiln>/skills/ for the kiln scope, but discovery actually reads
<kiln>/.crucible/skills/ — see the table below for the real search paths.
cru skills show
Prints one skill’s metadata (name, scope, description, source path, originating agent, license) followed by its full markdown body — the instructions an agent would receive.
cru skills show commitIf the name doesn’t resolve, the daemon returns an RPC error and the command fails —
use cru skills list to see the available names.
cru skills search
Case-insensitive substring match over skill names and descriptions. This is plain text matching, not semantic search — it does not use embeddings.
| Option | Default | Description |
|---|---|---|
-n, --limit <n> | 10 | Maximum results |
cru skills search gitcru skills search review -n 25Discovery and precedence
Discovery collects <dir>/*/SKILL.md from each search path below. When two skills share a
name, the one from the higher scope wins and the loser is recorded as shadowed.
| Scope | Searched | Precedence |
|---|---|---|
builtin | <runtime root>/*/skills/ — the skills Crucible ships | lowest |
personal | ~/.config/crucible/skills/ | |
workspace | <workspace>/.claude/skills/, .codex/skills/, .opencode/skills/, .crucible/skills/ | |
kiln | <kiln>/.crucible/skills/ | highest |
Runtime roots come from $CRUCIBLE_RUNTIME when set, otherwise from the layout next to the
cru binary.
Cross-harness skills are opt-in
Crucible can also read skill libraries other coding agents keep in your home directory —
~/.claude/skills/, ~/.codex/skills/, ~/.opencode/skills/, and ~/.pi/agent/skills/.
This is off by default: a skill body becomes LLM instructions, so anything that can write
to those directories could inject into your sessions. Enable it deliberately:
CRUCIBLE_CROSS_HARNESS_SKILLS=1 cru skills listCross-harness paths resolve at personal scope, so workspace and kiln skills still win, and
the agent field on cru skills show records which harness a skill came from.
See Also
- Agent Skills — the skills specification and frontmatter schema
- Index — full CLI command reference