67e0295d82d230e99fbc4fbed34fc66ebbabf76c
Container fixes:
- Run as non-root 'node' user (required for --dangerously-skip-permissions)
- Add allowDangerouslySkipPermissions: true to SDK options
- Mount .env file to work around Apple Container -i env var bug
- Use --mount for readonly, -v for read-write (Apple Container quirk)
- Bump SDK to 0.2.29, zod to v4
- Install Claude Code CLI globally in container
Logging improvements:
- Write per-run logs to groups/{folder}/logs/container-*.log
- Add debug-level logging for mounts and container args
Documentation:
- Add /debug skill with comprehensive troubleshooting guide
- Update /setup skill with API key configuration step
- Update SPEC.md with container details, mount syntax, security notes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
NanoClaw
Personal Claude assistant via WhatsApp.
Quick Start
git clone https://github.com/yourname/nanoclaw.git
cd nanoclaw
claude
# Run: /setup
Claude Code handles installation, authentication, and service setup.
Features
- WhatsApp I/O: Message Claude from your phone
- Persistent memory: Per-group conversation context
- Global memory: Shared context across all groups
- Email tools: Read/send via Gmail (optional)
- Scheduled tasks: Recurring reminders and jobs
- Web access: Search and fetch content
Usage
@Andy what's the weather in NYC?
@Andy summarize my unread emails
@Andy remind me every Monday at 9am to check metrics
/clear
From main channel:
@Andy add group "Family Chat"
@Andy list groups
Requirements
- macOS (or Linux)
- Node.js 18+
- Claude Code CLI (authenticated)
Manual Setup
npm install
npm run build
npm start
Customization
Run Claude Code and ask to:
- "Change trigger to @Bot"
- "Make responses more concise"
Or use /customize.
Architecture
Single Node.js process using:
@whiskeysockets/baileys- WhatsApp Web API@anthropic-ai/claude-agent-sdk- Claude Agent SDKbetter-sqlite3- Message storage
License
MIT
Languages
TypeScript
94.7%
Shell
4.5%
Dockerfile
0.3%
JavaScript
0.3%
HTML
0.2%