OpenPrompts
← Back to catalog
CrushSkillsCoding Agents

Crush: Built-in Skills

Use when creating a new builtin skill for Crush, editing an existing builtin skill (internal/skills/builtin/), or when the user needs to understand how the embedded skill system works.

Builtin Skills

Crush embeds skills directly into the binary via internal/skills/builtin/. These are always available without user configuration.

How It Works

  • Each skill lives in internal/skills/builtin/<skill-name>/SKILL.md.
  • The tree is embedded at compile time via //go:embed builtin/* in internal/skills/embed.go.
  • DiscoverBuiltin() walks the embedded FS, parses each SKILL.md, and sets paths with the crush://skills/ prefix (e.g., crush://skills/jq/SKILL.md).
  • The View tool resolves crush:// paths from the embedded FS, not disk.
  • User skills with the same name override builtins (last occurrence wins in Deduplicate()).

Adding a New Builtin Skill

  1. Create internal/skills/builtin/<skill-name>/SKILL.md with YAML frontmatter (name, description) and markdown instructions. The directory name must match the name field.
  2. No extra wiring needed — //go:embed builtin/* picks up new directories automatically.
  3. Add a test assertion in TestDiscoverBuiltin in internal/skills/skills_test.go to verify discovery.
  4. Build and test: go build . && go test ./internal/skills/...

Existing Builtin Skills

SkillDirectoryDescription
crush-configbuiltin/crush-config/Crush configuration help
crush-hooksbuiltin/crush-hooks/Authoring, configuring and debugging hooks
jqbuiltin/jq/jq JSON processor usage guide
Automated safety scan: no suspicious patterns found.

Heuristic text scan aligned to the OWASP Agentic Skills Top 10. How we scan

Provider
Crush
Origin
Official
Type
Skills
License
FSL-1.1
Language
English
Added
2025-10-21
#crush#charm#terminal#agent