Batch update 62 files across .claude/skills/ — SKILL.md, REMOVE.md, and script files. Conversions: npm run -> pnpm run, npm install -> pnpm install, npx -> pnpm exec/dlx, npm uninstall -> pnpm uninstall, package-lock.json -> pnpm-lock.yaml, shebangs updated.
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
pnpm install chat-adapter-imessage
Uncomment the iMessage import in src/channels/index.ts:
import './imessage.js';
pnpm 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.