Shows "typing..." in WhatsApp while the agent container is running. Uses Baileys sendPresenceUpdate with 'composing' and 'paused' states. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.3 KiB
1.3 KiB
NanoClaw
Personal Claude assistant. See README.md for philosophy and setup. See REQUIREMENTS.md for architecture decisions.
Quick Context
Single Node.js process that connects to WhatsApp, routes messages to Claude Agent SDK running in Apple Container (Linux VMs). Each group has isolated filesystem and memory.
Key Files
| File | Purpose |
|---|---|
src/index.ts |
Main app: WhatsApp connection, message routing, IPC |
src/config.ts |
Trigger pattern, paths, intervals |
src/container-runner.ts |
Spawns agent containers with mounts |
src/scheduler.ts |
Runs scheduled tasks |
src/db.ts |
SQLite operations |
groups/{name}/CLAUDE.md |
Per-group memory (isolated) |
Skills
| Skill | When to Use |
|---|---|
/setup |
First-time installation, authentication, service configuration |
/customize |
Adding channels, integrations, changing behavior |
/debug |
Container issues, logs, troubleshooting |
Development
Run commands directly—don't tell the user to run them.
npm run dev # Run with hot reload
npm run build # Compile TypeScript
./container/build.sh # Rebuild agent container
Service management:
launchctl load ~/Library/LaunchAgents/com.nanoclaw.plist
launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist