Installation
Complete installation guide for NanoClaw on macOS, Linux, and Windows (WSL).System requirements
Operating system
- macOS
- Linux
- Windows (WSL)
- macOS 11 (Big Sur) or later
- Intel or Apple Silicon (M1/M2/M3)
- 4GB RAM minimum, 8GB recommended
- 2GB free disk space
Prerequisites
1. Node.js 20 or later
NanoClaw requires Node.js 20 or later.- macOS
- Linux
- Windows (WSL)
Using Homebrew (recommended):Using nvm:Verify installation:
2. Claude Code
Claude Code is required to run the/setup command and customize NanoClaw.
Download from: claude.ai/download
- macOS
- Linux
- Windows (WSL)
- Download Claude Code for macOS
- Open the DMG file
- Drag Claude Code to Applications
- Launch Claude Code
- Sign in with your Anthropic account
You need a Claude Pro or Claude Team subscription, or an Anthropic API key.
3. Container runtime
Agents run in isolated containers. You need either Apple Container (macOS only) or Docker.- Apple Container (macOS)
- Docker
- Windows (WSL) — Docker Desktop
Apple Container is a lightweight, native macOS container runtime.Installation:Verify:Benefits:
- Native macOS integration
- Lighter resource usage than Docker
- Faster startup times
Apple Container is macOS-only. During setup, you can choose between Apple Container and Docker. Docker is the default and works on macOS, Linux, and Windows (via WSL2).
4. Build tools (for native modules)
NanoClaw usesbetter-sqlite3, which requires native compilation.
- macOS
- Linux
- Windows (WSL)
Install Xcode Command Line Tools:Verify:
5. OneCLI (v1.2.22+)
Starting in v1.2.22, NanoClaw uses OneCLI for credential management. OneCLI is a local gateway that injects API keys into container traffic without exposing secrets.onecli --help to see all available commands for managing secrets and gateway configuration.
OneCLI is also installed automatically by the
/setup skill if not already present. It’s listed here so you know about the dependency upfront.What
/setup handles for you: OneCLI installation, npm dependencies, container image build, channel configuration, and service setup. What you need beforehand: Node.js, Claude Code, a container runtime, and build tools.Installation steps
Once all prerequisites are installed:Fork and clone the repository
Fork qwibitai/nanoclaw on GitHub, then clone your fork:
Forking gives you a remote to push your customizations to. A plain
git clone works for trying things out — you can migrate to a fork later.Run setup
In Claude Code:Claude will handle dependencies, container setup, marketplace plugin installation, and channel configuration automatically.At the end of setup, you’ll be asked about opt-in diagnostics. NanoClaw can send anonymized system info (version, OS, architecture, node version, channels selected) to help improve the project. You can choose Yes, No, or Never ask again. No personally identifiable information is collected.
Docker sandbox one-liner
If you just want NanoClaw’s Docker sandboxes without the full setup:- macOS / Linux
- Windows (WSL)
Package dependencies
NanoClaw uses these core dependencies (frompackage.json):
Channel-specific dependencies (e.g.,
@whiskeysockets/baileys for WhatsApp, grammy for Telegram) are added when you install a channel skill. Only core dependencies ship on main.All dependencies are installed automatically by
/setup via npm install.Container image
The agent container includes:- Base: Node.js 24 (Debian slim)
- Browser: Chromium with CJK and emoji font support
- Claude Agent SDK:
@anthropic-ai/claude-code(pre-installed) - Tools:
agent-browser, bash, git, curl - User: Non-root
nodeuser (uid 1000)
nanoclaw-agent image.
File structure
After installation, NanoClaw creates:NanoClaw
src
dist
container
groups
main
CLAUDE.md
logs
store
messages.db
auth
data
sessions
logs
nanoclaw.log
nanoclaw.error.log
.env
package.json
~/.config/nanoclaw/mount-allowlist.json- Mount permissions~/.config/nanoclaw/sender-allowlist.json- Sender access control (optional)~/Library/LaunchAgents/com.nanoclaw.plist(macOS) - Service config~/.config/systemd/user/nanoclaw.service(Linux/WSL with systemd) - Service config
Service management
NanoClaw runs as a background service:- macOS (launchd)
- Linux (systemd)
- WSL (without systemd)
Verification
Verify your installation:Troubleshooting
Node.js native module errors
Container build fails
Service won’t start
- macOS
- Linux
WSL-specific issues
Docker not found in WSL: Ensure Docker Desktop’s WSL integration is enabled (Settings > Resources > WSL Integration). Verify with:/mnt/c/. Move to the Linux filesystem:
getuid warnings:
On native Windows (without WSL), process.getuid() is unavailable. The container runner handles this gracefully — the warning is informational and can be ignored. Inside WSL, getuid works normally.
Docker group permission issues (Linux)
If you see “permission denied” errors:Next steps
Quick start
Complete the setup process
Security
Learn about container isolation
Customizing
Modify NanoClaw for your needs
Troubleshooting
Fix common issues