customize
Skill1 starsChanged 8 months agoMITView on GitHub
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.
42 other projects use a version of this, 16 of them edited.
Adopted by
Most recently taken up by
- bouob/claude-statuslinetheir own version, first seen Nov 15, 2026
- shivasaini04/nanocrewedited, first seen Nov 15, 2026
- nanocoai/nanoclawedited, first seen Nov 15, 2026
- HughYau/AcademicForgetheir own version, first seen Nov 8, 2026
- microsoft/frontier-ai-governance-rvastheir own version, first seen Oct 25, 2026
- JonathanChan-geek/claude-science-skillstheir own version, first seen Oct 25, 2026
Used with
Projects with it also use add-codex, add-deltachat and 3 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkilladd-codex
Use Codex (CLI + AppServer) as the full agent provider — planning, tool orchestration, native compaction, MCP tools, session resume — in place of the Claude Agent SDK. ChatGPT subscription or OPENAI_API_KEY. Per-group via agent_provider. Distinct from using OpenAI as an MCP tool (where Claude remains the planner).
Also in 7 projects that use this
MicrosoftSkilladd-deltachat
Add DeltaChat channel integration via @deltachat/stdio-rpc-server. Native adapter — no Chat SDK bridge. Email-based messaging with end-to-end encryption.
Also in 7 projects that use this
- +3 more from microsoft
Other versions42 projects use a version of this.
Word for word · 0
None found.
Edited · 16
- gavrielc/nanoclaw★ 31k15% same
- nanocoai/nanoclaw★ 31k15% same
- qwibitai/nanoclaw★ 31k15% same
- Runchuan-BU/BioClaw★ 40595% same
- DingyangLyu/MatClaw★ 9896% same
- b1rdmania/ghostclaw★ 9193% same
- microsoft/amplifier-app-nanoclaw★ 587% same
- 0-CYBERDYNE-SYSTEMS-0/FFT_nano★ 466% same
- shivasaini04/nanocrew★ 495% same
- TomGranot/groupguard★ 315% same
6 more not listed
Wrote their own version · 26
- anthropics/claude-for-legal★ 9.5ksame name
- anthropics/defending-code-reference-harness★ 7.5ksame name
- microsoft/skills★ 3.2ksame name
- microsoft/agent-skills★ 3.2ksame name
- HughYau/AcademicForge★ 2.6ksame name
- microsoft/azure-skills★ 1.6ksame name
- xuzhougeng/wisp-science★ 1.1ksame name
- microsoft/GitHub-Copilot-for-Azure★ 264same name
- JimLiu/science-skills★ 228same name
- projectbluefin/finpilot★ 131same name
16 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository20 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- add-discordSkill
- add-gmailSkill
- add-image-visionSkill
- add-ollama-toolSkill
- add-parallelSkill
- add-pdf-readerSkill
- add-slackSkill
- add-telegramSkill
- add-telegram-swarmSkill
- add-voice-transcriptionSkill
- add-whatsappSkill
- convert-to-apple-containerSkill
- debugSkill
- get-qodo-rulesSkill
- qodo-pr-resolverSkill
- setupSkill
- update-nanoclawSkill
- use-local-whisperSkill
- x-integrationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. 0 are common, 7 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 39 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Understand the request: - Ask clarifying questions
- Distinctive: line 39
Should messages from this channel go to existing groups or new ones?
- Very specific: line 42
Create src/channels/{name}.ts implementing the Channel interface from src/types.ts (see src/channels/whatsapp.ts for reference)
- Very specific: line 43
Add the channel instance to main() in src/index.ts and wire callbacks (onMessage, onChatMetadata)
- Very specific: line 54
Add MCP server config to the container settings (see src/container-runner.ts for how MCP servers are mounted)
- Very specific: line 55
Document available tools in groups/CLAUDE.md
- Distinctive: line 85
Create appropriate service files
- Distinctive: line 86
Update paths in config
- Distinctive: line 91
Always tell the user:
- Distinctive: line 106
Ask: "Should Telegram use the same @Andy trigger, or a different one?"
- Distinctive: line 107
Ask: "Should Telegram messages create separate conversation contexts, or share with WhatsApp groups?"
- Very specific: line 108
Create src/channels/telegram.ts implementing the Channel interface (see src/channels/whatsapp.ts)
- Very specific: line 109
Add the channel to main() in src/index.ts
“Common” is measured: kept by at least 6 in 10 of the 39 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
NanoClaw Customization
This skill helps users add capabilities or modify behavior. Use AskUserQuestion to understand what they want before making changes.
Workflow
- Understand the request - Ask clarifying questions
- Plan the changes - Identify files to modify
- Implement - Make changes directly to the code
- Test guidance - Tell user how to verify
Key Files
| 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 |
Common Customization Patterns
Adding a New Input Channel (e.g., Telegram, Slack, Email)
Questions to ask:
- Which channel? (Telegram, Slack, Discord, email, SMS, etc.)
- Same trigger word or different?
- Same memory hierarchy or separate?
- Should messages from this channel go to existing groups or new ones?
Implementation pattern:
- Create
src/channels/{name}.tsimplementing theChannelinterface fromsrc/types.ts(seesrc/channels/whatsapp.tsfor reference) - Add the channel instance to
main()insrc/index.tsand wire callbacks (onMessage,onChatMetadata) - Messages are stored via the
onMessagecallback; routing is automatic viaownsJid()
Adding a New MCP Integration
Questions to ask:
- What service? (Calendar, Notion, database, etc.)
- What operations needed? (read, write, both)
- Which groups should have access?
Implementation:
- Add MCP server config to the container settings (see
src/container-runner.tsfor how MCP servers are mounted) - Document available tools in
groups/CLAUDE.md
Changing Assistant Behavior
Questions to ask:
- What aspect? (name, trigger, persona, response style)
- Apply to all groups or specific ones?
Simple changes → edit src/config.ts
Persona changes → edit groups/CLAUDE.md
Per-group behavior → edit specific group's CLAUDE.md
Adding New Commands
Questions to ask:
- What should the command do?
- Available in all groups or main only?
- Does it need new MCP tools?
Implementation:
- Commands are handled by the agent naturally — add instructions to
groups/CLAUDE.mdor the group'sCLAUDE.md - For trigger-level routing changes, modify
processGroupMessages()insrc/index.ts
Changing Deployment
Questions to ask:
- Target platform? (Linux server, Docker, different Mac)
- Service manager? (systemd, Docker, supervisord)
Implementation:
- Create appropriate service files
- Update paths in config
- Provide setup instructions
After Changes
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 nanoclawExample Interaction
User: "Add Telegram as an input channel"
- Ask: "Should Telegram use the same @Andy trigger, or a different one?"
- Ask: "Should Telegram messages create separate conversation contexts, or share with WhatsApp groups?"
- Create
src/channels/telegram.tsimplementing theChannelinterface (seesrc/channels/whatsapp.ts) - Add the channel to
main()insrc/index.ts - Tell user how to authenticate and test
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

