docs/REQUIREMENTS.md
Original requirements and design decisions from the project creator.
This is a lightweight, secure alternative to OpenClaw (formerly ClawBot). That project became a monstrosity - 4-5 different processes running different gateways, endless configuration files, endless integrations. It's a security nightmare where agents don't run in isolated processes; there's all kinds of leaky workarounds trying to prevent them from accessing parts of the system they shouldn't. It's impossible for anyone to realistically understand the whole codebase. When you run it you're kind of just yoloing it.
NanoClaw gives you the core functionality without that mess.
The entire codebase should be something you can read and understand. One Node.js process. A handful of source files. No microservices, no message queues, no abstraction layers.
Instead of application-level permission systems trying to prevent agents from accessing things, agents run in actual Linux containers. The isolation is at the OS level. Agents can only see what's explicitly mounted. Bash access is safe because commands run inside the container, not on your Mac.
This isn't a framework or a platform. It's working software for my specific needs. I use WhatsApp and Email, so it supports WhatsApp and Email. I don't use Telegram, so it doesn't support Telegram. I add the integrations I actually want, not every possible integration.
No configuration sprawl. If you want different behavior, modify the code. The codebase is small enough that this is safe and practical. Very minimal things like the trigger word are in config. Everything else - just change the code to do what you want.
I don't need an installation wizard - Claude Code guides the setup. I don't need a monitoring dashboard - I ask Claude Code what's happening. I don't need elaborate logging UIs - I ask Claude to read the logs. I don't need debugging tools - I describe the problem and Claude fixes it.
The codebase assumes you have an AI collaborator. It doesn't need to be excessively self-documenting or self-debugging because Claude is always there.
When people contribute, they shouldn't add "Telegram support alongside WhatsApp." They should contribute a skill like /add-telegram that transforms the codebase. Users fork the repo, run skills to customize, and end up with clean code that does exactly what they need - not a bloated system trying to support everyone's use case simultaneously.
Skills we'd love contributors to build:
Skills to add or switch to different messaging platforms:
/add-telegram - Add Telegram as an input channel/add-slack - Add Slack as an input channel/add-discord - Add Discord as an input channel/add-sms - Add SMS via Twilio or similar/convert-to-telegram - Replace WhatsApp with Telegram entirelyThe project uses Docker by default (cross-platform). For macOS users who prefer Apple Container:
/convert-to-apple-container - Switch from Docker to Apple Container (macOS-only)/setup-linux - Make the full setup work on Linux (depends on Docker conversion)/setup-windows - Windows support via WSL2 + DockerA personal Claude assistant accessible via WhatsApp, with minimal custom code.
Core components:
Implementation approach:
@Andy prefix (case insensitive), configurable via ASSISTANT_NAME env varCLAUDE.mdCLAUDE.md is read by all groups, but only writable from "main" (self-chat)send_message tool, or complete silentlyregister_group command)groups/containerConfiggroups/CLAUDE.md)nanoclaw MCP server (inside container) provides scheduling toolsschedule_task, list_tasks, pause_task, resume_task, cancel_task, send_message/setup - Install dependencies, authenticate WhatsApp, configure scheduler, start services/customize - General-purpose skill for adding capabilities (new channels like Telegram, new integrations, behavior changes)/update - Pull upstream changes, merge with customizations, run migrationsThese are the creator's settings, stored here for reference:
@Andy (case insensitive)Andy:NanoClaw - A reference to Clawdbot (now OpenClaw).