How-To · 10 min

Skills

A skill is a Markdown document a model can pull into context exactly when it's relevant — a review checklist, a deploy runbook, your house style. Models see the list and load what matches; you write them once.

The format

Plain Markdown, either layout:

skills/review-checklist.md          # flat file — the name is the filename
skills/deploy-runbook/SKILL.md      # folder — the name is the folder

Optional frontmatter sets the name and the one-liner models see in the list:

---
name: deploy-runbook
description: Exact steps and checks for deploying the storefront.
---
# Deploy runbook
…the actual instructions…

Where skills live

Scanned from five places; on a name clash the earlier source wins:

PriorityLocationUse for
1 — project<project>/.kaptain/skills (and the project's .claude/skills, .agents/skills)skills that belong to a repo — they follow the live project root, no restart
2 — globalskills/ in the data folderyour personal library, machine-wide
3 — kapsulea kapsule's own skills pathsskills shipped with an agent
4 — importeddirectories listed in KAPTAIN_SKILL_IMPORT_ROOTSreuse an existing pack without copying it
5 — your CLIs~/.claude/skills, ~/.codex/skills, ~/.agents/skillsthe skills your Claude and Codex CLIs already have — listed with their source, one pool

Add one

How runs use them

Models get two tools: skill_list (names + descriptions — the content stays out of context until needed) and skill_load(name), which injects the document. Kaptain's system scaffold actively tells models to scan the list before starting and load anything relevant — so a well-named skill with a sharp description gets used without you asking. You can also just say it: "load the deploy-runbook skill and follow it."

Skills on a kapsule

A kapsule agent can name skills in its skills list — those documents are injected into its persona on every run, no loading step. Right for the instructions an agent must always follow; use skill_load for the ones it needs sometimes.

Agent-readable version: index.md · Every claim on this page was exercised on a real install before being written. Something missing that cost you time? That is a documentation bug — tell us.