Skip to main content
The Customize skill helps you add capabilities or modify NanoClaw behavior. It asks clarifying questions to understand your needs, then makes the necessary code changes.

What It Does

The Customize skill helps you:
  • Add new input channels (Telegram, Slack, email, etc.)
  • Add MCP integrations (calendar, databases, APIs)
  • Change assistant behavior (name, trigger, persona)
  • Add custom commands
  • Modify deployment settings

How to Apply

1

Invoke the skill

Run /customize in your OpenCode or NanoClaw context.
2

Describe what you want

The skill will ask clarifying questions to understand:
  • What you want to add or change
  • Which groups should be affected
  • Configuration preferences
3

Review planned changes

The skill will show you which files will be modified before making changes.
4

Apply changes

The skill makes the changes directly to your codebase.
5

Test the changes

The skill provides testing instructions specific to your customization.

What Changes

Depends on the customization requested. Common changes:

Adding a New Input Channel

  • Creates src/channels/{name}.ts implementing the Channel interface
  • Updates src/index.ts to wire the channel
  • Adds channel-specific dependencies to package.json

Adding MCP Integration

  • Updates src/container-runner.ts with MCP server config
  • Documents available tools in groups/CLAUDE.md

Changing Assistant Behavior

  • Simple changes: edits src/config.ts
  • Persona changes: edits groups/CLAUDE.md
  • Per-group behavior: edits specific group’s CLAUDE.md

Adding Commands

  • Updates groups/CLAUDE.md with command instructions
  • Optionally modifies src/index.ts for routing changes

Key Files Reference

FilePurpose
src/index.tsMessage loop, agent invocation
src/channels/whatsapp.tsWhatsApp connection and messaging
src/ipc.tsInter-process communication
src/router.tsOutbound message routing
src/types.tsTypeScript interfaces
src/config.tsTrigger pattern, assistant name
src/db.tsDatabase operations
groups/CLAUDE.mdGlobal memory and persona

Usage

Example: Adding Telegram

  1. Run /customize
  2. Say “Add Telegram as an input channel”
  3. Answer questions:
    • Same trigger word or different?
    • Shared memory or separate?
    • New groups or existing?
  4. The skill creates src/channels/telegram.ts
  5. Follow authentication instructions
  6. Test by sending a message in Telegram

After Customization

Always rebuild and restart:
npm run build

# macOS
launchctl kickstart -k gui/$(id -u)/com.nanoclaw

# Linux
systemctl --user restart nanoclaw
The Customize skill is interactive and asks questions before making changes. It doesn’t modify code without your confirmation.

Build docs developers (and LLMs) love