Core Principles
Small Enough to Understand
Small Enough to Understand
The entire codebase should be something you can read and understand.What this means:
- One Node.js process, not a microservices architecture
- A handful of source files, not hundreds of modules
- No complex abstraction layers
- No message queues or orchestration systems
Secure by Isolation
Secure by Isolation
True security comes from OS-level isolation, not application-level permission checks.What this means:
- Agents run in Linux containers (Apple Container on macOS, or Docker)
- They can only see what’s explicitly mounted
- Bash access is safe because commands run inside the container
- Filesystem isolation prevents unauthorized access
Built for the Individual User
Built for the Individual User
NanoClaw isn’t a monolithic framework; it’s software that fits each user’s exact needs.What this means:
- Not a platform trying to serve everyone
- Fork the repo and customize it for your specific use case
- Add only the integrations you actually want
- Your fork becomes bespoke software that does exactly what you need
Customization = Code Changes
Customization = Code Changes
No configuration sprawl. Want different behavior? Modify the code.What this means:
- Very minimal things (like trigger word) are in config files
- Everything else: change the code to do what you want
- No YAML files with hundreds of options
- No complex configuration hierarchies
greeting_template config option. Just modify the code that generates greetings.AI-Native Development
AI-Native Development
The development experience assumes you have Claude Code as a collaborator.What this means:
- No installation wizard—Claude Code guides setup
- No monitoring dashboard—ask Claude what’s happening
- No elaborate logging UIs—Claude reads the logs
- No debugging tools—describe the problem and Claude fixes it
Skills Over Features
Skills Over Features
Instead of adding features to the codebase, contributors submit skills that transform your fork.What this means:
- Don’t create a PR that adds Telegram support alongside WhatsApp
- Instead, contribute a skill file (e.g.,
/add-telegram) that teaches Claude Code how to add Telegram - Users run the skill on their fork and get clean code
/add-whatsapp- Add WhatsApp as a channel/add-telegram- Add Telegram as a channel/add-slack- Add Slack as a channel/add-discord- Add Discord as a channel/add-gmail- Add Gmail integration- And many more…
Best Harness, Best Model
Best Harness, Best Model
Use the highest-quality agent framework and the most capable model.What this means:
- NanoClaw runs on the Claude Agent SDK
- You’re running Claude Code directly, not a wrapper
- Claude’s coding and problem-solving capabilities allow it to modify and expand NanoClaw
ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN in your .env file to point to any Claude API-compatible endpoint.Why This Philosophy Exists
NanoClaw is a reaction to the complexity and security risks of larger AI assistant projects.The Problem with OpenClaw
OpenClaw is an impressive project, but:- Nearly half a million lines of code - impossible to realistically understand
- 53 config files - configuration sprawl
- 70+ dependencies - large attack surface
- Application-level security - allowlists and permission checks, not true OS isolation
- Shared memory - everything runs in one Node process
The NanoClaw Alternative
NanoClaw provides the same core functionality:- Codebase small enough to understand - one process, handful of files
- True OS-level isolation - agents run in Linux containers
- Focused feature set - only what you actually need
- Easy to audit - you can read and comprehend the entire codebase
NanoClaw isn’t trying to replace OpenClaw for everyone. It’s for people who value understanding their software and want true security through isolation.
Practical Implications
For Users
- Fork and customize: Clone the repo, make it yours
- Ask Claude Code for help: Setup, debugging, modifications—all guided by AI
- Add only what you need: Use skills to add channels and integrations selectively
- Audit your code: Actually read and understand what’s running
For Contributors
- Don’t add features: Add skills instead
- Keep the core small: The main codebase should stay minimal
- Write skills: Teach Claude Code how to transform a user’s fork
- Document through code: Make code readable, assume Claude Code is available for explanation
For Security
- Container isolation limits risk: Even if something goes wrong, agents can only access mounted directories
- Small codebase is auditable: You can actually review what’s running
- Explicit mounts: Each group declares exactly what it can access
- No shared memory: Agents run in separate containers
Living Philosophy
This philosophy isn’t static. As the project evolves, the principles remain:- Keep the core small
- Use containers for true isolation
- Customize through skills, not config
- Assume Claude Code is your collaborator
- Build for individual users, not generic use cases
Join the Community
Questions? Ideas? Join the NanoClaw Discord to discuss the philosophy and share your customizations.