- Disable sandbox by default in project settings - Setup: remove Apple Container option (Docker only), single channel selection with plain text list, move fork to end, auto-set empty mounts, add command pre-approval step, add UTC timezone confirmation, add wait-on-user guidance, add 5m timeouts for long steps - iMessage: improve Full Disk Access UX with Finder open + drag instructions - Add /manage-mounts skill for post-setup mount configuration - Enable iMessage channel import Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.5 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
Adds iMessage support to NanoClaw v2 using the Chat SDK bridge. Two modes: local (macOS with Full Disk Access) or remote (Photon API).
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 Credentials.
Install
npm install chat-adapter-imessage
Uncomment the iMessage import in src/channels/index.ts:
import './imessage.js';
npm run build
Credentials
Local Mode (macOS)
Requirements: macOS with Full Disk Access granted to the Node.js binary.
The Node binary path is buried deep (e.g. ~/.nvm/versions/node/v22.x.x/bin/node). To make it easy, open the folder in Finder so the user can drag the file into System Settings:
open "$(dirname "$(which node)")"
Then tell the user:
- Open System Settings > Privacy & Security > Full Disk Access
- Click +, then drag the
nodefile from the Finder window that just opened - Toggle it on
Stop and wait for the user to confirm before continuing.
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
Next Steps
If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /manage-channels to wire this channel to an agent group.
Channel Info
- type:
imessage - terminology: iMessage has "conversations." Each conversation is with a contact identified by phone number or email address. Group chats are also supported.
- how-to-find-id: The platform ID is the contact's phone number (e.g.
+15551234567) or email address. For group chats, the ID is assigned by iMessage internally. - supports-threads: no
- typical-use: Interactive 1:1 chat — personal messaging
- default-isolation: Same agent group if you're the only person messaging the bot across iMessage and other channels. Separate agent group if different contacts should have information isolation.