Interactive skill: setup
The/setup skill guides users through initial NanoClaw installation. It’s an operational skill — a SKILL.md on main with no code changes.
Key characteristics
- Multi-phase workflow (11 distinct steps)
- Heavy error recovery and troubleshooting
- Platform detection (macOS vs Linux vs WSL)
- User authentication flows
- Service management
Structure
Pattern: Status block parsing
The skill runs scripts and parses structured output:Pattern: Conditional flows
Different platforms require different commands:Pattern: Error recovery
Comprehensive troubleshooting for each failure mode:Feature skill: add-telegram
The/add-telegram skill adds Telegram channel support by merging the skill/telegram branch.
What the skill branch contains
Theskill/telegram branch contains all code changes needed for Telegram support:
skill/telegram branch
src/channels/telegram.ts
src/channels/telegram.test.ts
src/index.ts
src/config.ts
src/routing.test.ts
package.json
.env.example
SKILL.md phases
Phase 2: Merge the skill branch
src/channels/telegram.ts(TelegramChannel class)src/channels/telegram.test.ts(46 unit tests)- Multi-channel support in
src/index.ts - Telegram config in
src/config.ts - The
grammynpm dependency
Phase 3: Setup
Create Telegram Bot (if needed):If the user doesn’t have a bot token, tell them:Sync to container environment:
- Open Telegram and search for
@BotFather - Send
/newbotand follow prompts - Copy the bot token
.env:Phase 4: Registration
Get the Chat ID:Tell the user:
- Open your bot in Telegram
- Send
/chatid— it will reply with the chat ID - For groups: add the bot first, then send
/chatid
Interactive skill: customize
The/customize skill is an interactive guide for common customizations.
Key patterns
Pattern: Guided workflows
For each customization type, provide:- Questions to ask - What information do you need?
- Implementation pattern - How to make the changes
- Verification - How to test it works
Feature skill: add-slack
The/add-slack skill shows a complete channel integration with detailed setup documentation.
Supplementary documentation
The skill’s SKILL.md in the marketplace includes a reference to a setup guide: FromSKILL.md:
Known limitations
The skill documents limitations clearly:Operational skill with bundled script: claw
The/claw skill installs a Python CLI tool that runs NanoClaw agents from the terminal — no chat app required. It’s an operational skill on main with a bundled script.
Key characteristics
- Ships a Python script alongside the
SKILL.md - Reads from NanoClaw’s SQLite database and
.envat runtime - Auto-detects the container runtime (
dockerorcontainer) - Parses structured output sentinels from the container
Structure
.claude/skills/claw
SKILL.md
scripts
claw
Pattern: Bundled scripts
Unlike instruction-only skills,/claw includes a script that Claude copies into the project and symlinks into PATH:
CLAUDE_SKILL_DIR variable resolves to the skill directory at runtime, so the symlink always points to the right place.
Pattern: Database integration
The script reads registered groups directly from NanoClaw’s SQLite database:claw works with any channel — it targets groups by name, folder, or JID without needing to know which messaging platform is connected.
Pattern: Container output sentinel
The script uses output sentinels to know when the agent has finished:Advanced skill: add-parallel
The/add-parallel skill adds an MCP integration with non-blocking async operations.
Key techniques
- Environment passing
- Usage instructions
readMcpEnvVars() function in container-runner.ts automatically extracts ${VAR} references from .mcp.json and resolves them from .env.- Use the Parallel Task MCP to check the task status
- If status is ‘completed’, extract the results
- Send results with mcp__nanoclaw__send_message
- Use mcp__nanoclaw__cancel_task to remove the polling task
Pattern summary
All skills follow these principles from the NanoClaw philosophy:
- Fix problems automatically when possible
- Use
AskUserQuestionfor all user input - Provide comprehensive troubleshooting
- Handle platform differences (macOS/Linux)
- Verify changes with tests and logs
Common patterns
| Pattern | Used in | Purpose |
|---|---|---|
| Status block parsing | /setup | Parse structured command output |
| Git branch merge | /add-telegram, /add-slack | Apply code changes via git merge |
| AskUserQuestion | All skills | Get user input consistently |
| Multi-phase structure | Most skills | Organize complex workflows |
| Platform detection | /setup | Handle macOS/Linux differences |
| Verification steps | All skills | Confirm changes worked |
| Troubleshooting section | All skills | Help users fix common issues |
Next steps
- Start Creating skills for your use case
- Understand Skill structure in depth
- Browse the NanoClaw skills directory
- Contribute your own skills via pull request