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.Codebase is Small Enough to Change Safely
Codebase is Small Enough to Change Safely
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.
No Learning Curve for Custom Behavior
No Learning Curve for Custom Behavior
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”
Configuration Files When You Want Them
Configuration Files When You Want Them
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
- Add WhatsApp channel code to
src/channels/whatsapp.ts - Install dependencies (
@whiskeysockets/baileys) - Guide you through QR code authentication
- Register your main chat
- 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
The /customize Skill
Not sure which approach to use? Run /customize for guided customization:
- Apply the appropriate skill if one exists
- Make direct code changes if simpler
- Suggest creating a custom skill for complex additions
Common Customizations
Change Assistant Name and Trigger
Change Assistant Name and Trigger
Edit This changes:
ASSISTANT_NAME in .env or src/config.ts:.env
- Trigger pattern (
@Clawinstead of@Andy) - Response prefix (
Claw:instead ofAndy:)
Modify Assistant Persona
Modify Assistant Persona
Edit the global memory file:Changes take effect immediately (no restart needed).
groups/CLAUDE.md
Add Custom Commands
Add Custom Commands
Commands are handled naturally by the agent. Just add instructions to memory:
groups/CLAUDE.md
Store Conversation Summaries
Store Conversation Summaries
Tell Claude what you want:Claude will create a scheduled task using the built-in scheduler.
Best Practices
Start with skills for major features
Check
.claude/skills/ for existing skills before writing custom code. Skills are battle-tested and handle edge cases.Use environment variables for runtime settings
Values that change between environments (API keys, timeouts) belong in
.env, not hardcoded in source.Document customizations in CLAUDE.md
When you make changes, note them in
groups/CLAUDE.md so Claude Code remembers the customization in future conversations.Next Steps
Browse Available Skills
See what skills are available and how to apply them
Configuration Reference
Environment variables and config options