# 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