Skip to main content

AI-Native Customization

NanoClaw Pro takes a fundamentally different approach to customization: no configuration files. Instead, you use Claude Code to modify the source code directly.

Skills

Apply pre-built transformations to your fork

Direct Code Changes

Modify behavior through environment variables and code

Container Configuration

Configure mounts, timeouts, and isolation settings

Why Code Over Config?

NanoClaw Pro prioritizes a small, understandable codebase over configuration sprawl.
With just a handful of source files, Claude Code can safely modify the codebase to match your exact needs. You end up with clean code that does exactly what you want, not a generic system trying to support every use case.
Instead of learning a configuration DSL, you just tell Claude what you want:
  • “Change the trigger word to @Bob”
  • “Make responses shorter and more direct”
  • “Add a custom greeting when I say good morning”
If you prefer config files for certain settings, just ask Claude to add them. The flexibility goes both ways.

Two Paths to Customization

Skills: Pre-Built Transformations

Skills are code transformations that add capabilities to your fork. Think of them as recipes that Claude Code follows to modify your installation. When to use skills:
  • Adding new channels (WhatsApp, Telegram, Slack, Discord)
  • Integrating services (Gmail, voice transcription, PDF reading)
  • Converting container runtimes (Docker → Apple Container)
  • Enabling proactive check-ins and memory systems
Example:
/add-whatsapp
Claude Code will:
  1. Add WhatsApp channel code to src/channels/whatsapp.ts
  2. Install dependencies (@whiskeysockets/baileys)
  3. Guide you through QR code authentication
  4. Register your main chat
  5. Build and restart the service

Direct Changes: Behavior Tweaks

For behavior changes that don’t warrant a full skill, talk to Claude Code directly. When to use direct changes:
  • Changing assistant name or trigger pattern
  • Adjusting response style or persona
  • Modifying scheduling intervals
  • Setting environment variables
Example conversation:
Change the trigger word to @Bot and make responses more concise

The /customize Skill

Not sure which approach to use? Run /customize for guided customization:
/customize
Claude Code will ask questions to understand what you want, then:
  • Apply the appropriate skill if one exists
  • Make direct code changes if simpler
  • Suggest creating a custom skill for complex additions

Common Customizations

Edit ASSISTANT_NAME in .env or src/config.ts:
.env
ASSISTANT_NAME=Claw
This changes:
  • Trigger pattern (@Claw instead of @Andy)
  • Response prefix (Claw: instead of Andy:)
Rebuild and restart after changing:
npm run build
launchctl kickstart -k gui/$(id -u)/com.nanoclaw  # macOS
Edit the global memory file:
groups/CLAUDE.md
## Persona
- Speak casually and use humor when appropriate
- Always provide context for technical suggestions
- Ask clarifying questions before making assumptions
Changes take effect immediately (no restart needed).
Commands are handled naturally by the agent. Just add instructions to memory:
groups/CLAUDE.md
## Custom Commands
- When user says "status report", provide:
  1. Unread email count
  2. Today's scheduled tasks
  3. Pending reminders
Tell Claude what you want:
Every Friday at 5pm, write a summary of this week's 
conversations to weekly-summaries.md
Claude will create a scheduled task using the built-in scheduler.

Best Practices

1

Start with skills for major features

Check .claude/skills/ for existing skills before writing custom code. Skills are battle-tested and handle edge cases.
2

Use environment variables for runtime settings

Values that change between environments (API keys, timeouts) belong in .env, not hardcoded in source.
3

Document customizations in CLAUDE.md

When you make changes, note them in groups/CLAUDE.md so Claude Code remembers the customization in future conversations.
4

Test in dev mode first

Before modifying the background service:
launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist
npm run dev  # Test changes
launchctl load ~/Library/LaunchAgents/com.nanoclaw.plist  # Go live

Next Steps

Browse Available Skills

See what skills are available and how to apply them

Configuration Reference

Environment variables and config options

Build docs developers (and LLMs) love