Add new capabilities or modify NanoClaw behavior. Use when user wants to add channels (Telegram, Slack, email input), change triggers, add integrations, modify the router, or make any other customizations. This is an interactive skill that asks questions to understand what the user wants.
66
78%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/customize/SKILL.mdThis skill helps users add capabilities or modify behavior. Use AskUserQuestion to understand what they want before making changes.
/add-telegram for adding Telegram), invoke it instead of implementing manually.| File | Purpose |
|---|---|
src/index.ts | Orchestrator: state, message loop, agent invocation |
src/channels/whatsapp.ts | WhatsApp connection, auth, send/receive |
src/ipc.ts | IPC watcher and task processing |
src/router.ts | Message formatting and outbound routing |
src/types.ts | TypeScript interfaces (includes Channel) |
src/config.ts | Assistant name, trigger pattern, directories |
src/db.ts | Database initialization and queries |
src/whatsapp-auth.ts | Standalone WhatsApp authentication script |
groups/CLAUDE.md | Global memory/persona |
Questions to ask:
Implementation pattern:
src/channels/{name}.ts implementing the Channel interface from src/types.ts (see src/channels/whatsapp.ts for reference)main() in src/index.ts and wire callbacks (onMessage, onChatMetadata)onMessage callback; routing is automatic via ownsJid()Questions to ask:
Implementation:
src/container-runner.ts for how MCP servers are mounted)groups/CLAUDE.mdQuestions to ask:
Simple changes → edit src/config.ts
Persona changes → edit groups/CLAUDE.md
Per-group behavior → edit specific group's CLAUDE.md
Questions to ask:
Implementation:
groups/CLAUDE.md or the group's CLAUDE.mdprocessGroupMessages() in src/index.tsQuestions to ask:
Implementation:
Always tell the user:
# Rebuild and restart
npm run build
# macOS:
launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist
launchctl load ~/Library/LaunchAgents/com.nanoclaw.plist
# Linux:
# systemctl --user restart nanoclawUser: "Add Telegram as an input channel"
src/channels/telegram.ts implementing the Channel interface (see src/channels/whatsapp.ts)main() in src/index.ts7454673
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.