# NanoClaw NanoClaw is a lightweight, minimalist personal Claude assistant that runs securely in containers. It's built to be understood and customized for individual needs, offering similar core functionality to [[OpenClaw]] but in a much smaller codebase. ## Why NanoClaw? The creator built NanoClaw because while [[OpenClaw]] is an impressive project with a great vision, they couldn't sleep well running software they don't understand with access to their life. OpenClaw has 52+ modules, 8 config management files, 45+ dependencies, and abstractions for 15 channel providers. NanoClaw provides the same core functionality in a codebase you can understand in 8 minutes. One process. A handful of files. Agents run in actual Linux containers with filesystem isolation, not behind permission checks. ## Philosophy - **Small enough to understand**: One process, a few source files. No microservices, no message queues, no abstraction layers. - **Secure by isolation**: Agents run in Linux containers (Apple Container on macOS, or Docker). They can only see what's explicitly mounted. - **Built for one user**: Not a framework—working software that fits exact needs. Fork it and customize. - **Customization = code changes**: No configuration sprawl. Want different behavior? Modify the code. - **AI-native**: Setup guided by Claude Code. No installation wizard, no monitoring dashboard, no debugging tools—just ask Claude. - **Skills over features**: Contributors don't add features to the codebase. They contribute Claude Code skills that transform your fork. ## Features - **WhatsApp I/O**: Message Claude from your phone - **Isolated group context**: Each group has its own CLAUDE.md memory, isolated filesystem, and container sandbox - **Main channel**: Private channel (self-chat) for admin control; all other groups are isolated - **Scheduled tasks**: Recurring jobs that run Claude and message you back - **Web access**: Search and fetch content - **Container isolation**: Agents sandboxed in Apple Container (macOS) or Docker (macOS/Linux) - **Optional integrations**: Add Gmail and more via skills ## Quick Start ```bash git clone https://github.com/gavrielc/nanoclaw.git cd nanoclaw claude ``` Then run `/setup`. Claude Code handles everything: dependencies, authentication, container setup, service configuration. ## Architecture ``` WhatsApp (baileys) --> SQLite --> Polling loop --> Container (Claude Agent SDK) --> Response ``` Single Node.js process. Agents execute in isolated Linux containers with mounted directories. IPC via filesystem. No daemons, no queues, no complexity. **Key files:** - `src/index.ts` — Main app: WhatsApp connection, routing, IPC - `src/container-runner.ts` — Spawns agent containers - `src/task-scheduler.ts` — Runs scheduled tasks - `src/db.ts` — SQLite operations - `groups/*/CLAUDE.md` — Per-group memory ## Requirements - macOS or Linux - Node.js 20+ - Claude Code - Apple Container (macOS) or Docker (macOS/Linux) ## Related - [[OpenClaw]] — Full-featured AI assistant platform (NanoClaw is a minimalist alternative) - [[Claude Code]] — The underlying Claude harness License: Open Source ## References - Source code: https://github.com/gavrielc/nanoclaw - Security model: https://github.com/gavrielc/nanoclaw/blob/main/docs/SECURITY.md