Skip to content

Creating Custom Skills

Bonsai installs abilities from its built-in catalog. You can also create custom skills — your own skills that live alongside catalog-provided ones and are tracked by Bonsai.

  1. Create a file in agent/Skills/ (e.g., agent/Skills/my-custom-skill.md)
  2. Add YAML frontmatter with at least a description field
  3. Run bonsai update — it detects untracked files and offers to track them
  4. Once tracked, custom items appear in CLAUDE.md nav tables and .bonsai.yaml

Every custom skill needs YAML frontmatter at the top, delimited by ---:

---
description: What this skill does — shown in CLAUDE.md nav tables
display_name: My Custom Skill
---
# Content starts here
...
FieldRequiredNotes
descriptionYesShown in CLAUDE.md nav tables
display_nameNoHuman-readable name. If omitted, derived from filename (my-skill becomes “My Skill”)
  • Use kebab-case for filenames: my-custom-skill.md, not MyCustomSkill.md
  • The filename (minus extension) becomes the item’s machine name
  • Use .md extension

When you run bonsai update:

  1. Scans each agent’s workspace for files not yet tracked by Bonsai
  2. Validates frontmatter — shows warnings for files missing required fields
  3. Prompts you to select which files to track (multi-select, all pre-selected)
  4. Tracks selected files in .bonsai.yaml (config) and .bonsai-lock.yaml (lock)
  5. Re-renders catalog items from the latest embedded templates
  6. Refreshes CLAUDE.md nav tables (includes both catalog and custom items)
AspectCatalog ItemsCustom Items
SourceBuilt into the Bonsai binaryCreated by you in your workspace
MetadataSeparate meta.yaml fileYAML frontmatter in the file itself
Re-renderableYes — templates re-rendered on updateNo — your file is yours, never overwritten
Tracked in configItem name in skills listItem name in list + metadata in custom_items
Lock sourcecatalog:skills/namecustom:skills/name