NanoClaw has four categories of skills, each with a different structure. Feature skills are distributed as git branches containing all code changes. Utility skills ship code files alongside their SKILL.md. Operational skills live onDocumentation Index
Fetch the complete documentation index at: https://docs.nanoclaw.dev/llms.txt
Use this file to discover all available pages before exploring further.
main as instruction files. Container skills are synced into every container for use by the running agent.
Four types of skills
Operational skills
Operational skills live in.claude/skills/ on main. They contain only a SKILL.md file with instructions for Claude Code — no code changes.
.claude/skills
setup
SKILL.md
debug
SKILL.md
customize
SKILL.md
update-nanoclaw
SKILL.md
update-skills
SKILL.md
SKILL.md format
name(required) — the skill command name (e.g.,setup,debug)description(required) — when Claude Code should invoke this skill
Utility skills
Utility skills are standalone tools that ship code files alongside theSKILL.md. The SKILL.md tells Claude how to install the tool; the code lives in the skill directory itself (e.g., in a scripts/ subfolder).
.claude/skills
claw
SKILL.md
scripts
claw
${CLAUDE_SKILL_DIR} in the SKILL.md to reference files in the skill directory.
Feature skills
Feature skills are distributed asskill/* branches on the upstream repository. Each branch contains all the code changes for that integration: new files, modified source files, updated package.json dependencies, .env.example additions — everything.
skill/telegram branch
src/channels/telegram.ts
src/channels/telegram.test.ts
src/index.ts
src/config.ts
package.json
.env.example
SKILL.md in the marketplace repo (qwibitai/nanoclaw-skills) that provides setup instructions. When you run /add-telegram, Claude reads the SKILL.md and merges the skill branch.
Container skills
Container skills live incontainer/skills/ and are synced into every container’s .claude/skills/ directory. These run inside the agent container, not on the host. They teach the container agent how to use tools, format output, or perform tasks.
container/skills
agent-browser
SKILL.md
capabilities
SKILL.md
slack-formatting
SKILL.md
status
SKILL.md
SKILL.md frontmatter format as operational skills. Some are restricted to the main channel by checking for the /workspace/project mount (only present for main groups).
| Skill | Description | Access |
|---|---|---|
/agent-browser | Browse the web, fill forms, extract data | All groups |
/capabilities | Report installed skills, tools, MCP tools, container utilities, and group info | Main channel only |
/slack-formatting | Slack mrkdwn syntax reference for formatting messages in Slack channels | All groups |
/status | Session context, workspace mounts, tool availability, and scheduled task snapshot | Main channel only |
What’s in a skill branch
A feature skill branch is branched frommain and contains commits that add the integration. The branch includes:
- New files — channel implementations, tests, setup guides
- Modified source files — changes to
src/index.ts,src/config.ts, routing, etc. - Updated
package.json— new npm dependencies - Updated
.env.example— new environment variables - Updated tests — new test cases for the integration
How skills compose
When you apply multiple feature skills, git merge handles composition:src/index.ts to add their channel), git merges the changes automatically. If they modify the same lines, it’s a real merge conflict — Claude resolves it.
This is standard git behavior. No custom merge machinery is needed.
Skill dependencies
Some skills depend on others. For example,skill/telegram-swarm requires skill/telegram. Dependent skill branches are branched from their parent, not from main.
This means skill/telegram-swarm includes all of Telegram’s changes plus its own additions. When you merge skill/telegram-swarm, you get both — no need to merge Telegram separately.
Dependencies are implicit in git history — no separate dependency file is needed.
State tracking
Applied skills are tracked through git history. When you merge a skill branch, the merge commit records what was applied and when.- Idempotency — git won’t re-merge changes that are already in your history
- Audit trail — every skill application is a merge commit with a timestamp
- Easy reversal — revert the merge commit to remove a skill
Testing skills
Tests live alongside the code in the skill branch. When a skill is applied, its tests are part of your codebase.Unit tests
Test the new code added by the skill:Integration tests
Test that the skill integrates correctly with existing code:Validation
After applying a skill, always run the full test suite:Next steps
- See Creating skills for how to create your own skills
- Review Examples of real skills
- Read the Skills system overview for the full picture