- Move all v1 files (index, router, container-runner, db, ipc, types, logger, channels/registry, and all utilities) to src/v1/ as a fully self-contained archive with no shared dependencies - Rename v2 files to remove -v2 suffix (index-v2.ts → index.ts, etc.) - Update all imports across v2 source, tests, and setup files - Migrate shared utilities (config, env, container-runtime, mount-security, timezone, group-folder) from pino logger to v2 log module - Migrate setup/ files from logger to log with argument order swap - Container agent-runner: move v1 entry to v1/, rename v2 to index.ts - Update setup skill to offer all 13 v2 channels - Install all Chat SDK adapter packages - dist/index.js now runs v2; dist/v1/index.js runs v1 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
name, description
| name | description |
|---|---|
| add-imessage-v2 | Add iMessage channel integration to NanoClaw v2 via Chat SDK. Local (macOS) or remote (Photon API) mode. |
Add iMessage Channel (v2)
This skill adds iMessage support to NanoClaw v2 using the Chat SDK bridge. Supports local mode (macOS with Full Disk Access) and remote mode (via Photon API).
Phase 1: Pre-flight
Check if src/channels/imessage.ts exists and the import is uncommented in src/channels/index.ts. If both are in place, skip to Phase 3.
Phase 2: Apply Code Changes
Install the adapter package
npm install chat-adapter-imessage
Enable the channel
Uncomment the iMessage import in src/channels/index.ts:
import './imessage.js';
Build
npm run build
Phase 3: Setup
Local Mode (macOS)
Requirements: macOS with Full Disk Access granted to your terminal/Node.js process.
- Go to System Settings > Privacy & Security > Full Disk Access
- Add your terminal app (Terminal, iTerm2, etc.) or the Node.js binary
- The adapter reads directly from the iMessage database on disk
Remote Mode (Photon API)
- Set up a Photon account
- Get your server URL and API key
Configure environment
Local mode — add to .env:
IMESSAGE_ENABLED=true
IMESSAGE_LOCAL=true
Remote mode — add to .env:
IMESSAGE_LOCAL=false
IMESSAGE_SERVER_URL=https://your-photon-server.com
IMESSAGE_API_KEY=your-api-key
Sync to container: mkdir -p data/env && cp .env data/env/env
Build and restart
npm run build
launchctl kickstart -k gui/$(id -u)/com.nanoclaw # macOS
Phase 4: Verify
Send an iMessage to the account running NanoClaw. The bot should respond within a few seconds.
Removal
- Comment out
import './imessage.js'insrc/channels/index.ts - Remove iMessage env vars from
.env npm uninstall chat-adapter-imessage- Rebuild and restart