Skip to content

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.

OptionDefaultDescription
--scope <scope>allKeep only skills whose resolved scope is builtin, personal, workspace, or kiln
-f, --format <format>terminal: table, piped: plaintable, plain, or json
Terminal window
cru skills list
cru skills list --scope kiln
cru skills list -f json

json 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.

Terminal window
cru skills show commit

If the name doesn’t resolve, the daemon returns an RPC error and the command fails — use cru skills list to see the available names.

Case-insensitive substring match over skill names and descriptions. This is plain text matching, not semantic search — it does not use embeddings.

OptionDefaultDescription
-n, --limit <n>10Maximum results
Terminal window
cru skills search git
cru skills search review -n 25

Discovery 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.

ScopeSearchedPrecedence
builtin<runtime root>/*/skills/ — the skills Crucible shipslowest
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:

Terminal window
CRUCIBLE_CROSS_HARNESS_SKILLS=1 cru skills list

Cross-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