add-imessage
Add iMessage channel integration via Chat SDK. Local (macOS) or remote (Photon API) mode.
pinned to #a30547fupdated 2 weeks ago
Ask your AI client: “install skills/add-imessage”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install skills/add-imessagemetahub onboarded this repo on the author's behalf.
If you own github.com/nanocoai/nanoclaw on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
30,187
Last commit
2 weeks ago
Latest release
published
- #ai-agents
- #ai-assistant
- #claude-code
- #claude-skills
- #openclaw
About this skill
Pulled from SKILL.md at publish time.
Adds iMessage support via the Chat SDK bridge. Two modes: local (macOS with Full Disk Access) or remote (Photon API).
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.a30547f· 2 weeks ago
Documentation
41Description qualitywarn
14 words · 89 chars — skills use the description as their trigger; aim higher
Aim for 15+ words and include trigger phrases like “use this skill when …”.
README is present and substantial
15,207 chars · 13 sections · 7 code blocks
Tags / topics declared
5 total — ai-agents, ai-assistant, claude-code, claude-skills, openclaw
README has usage / example sections
found: Quick Start · Usage
Homepage / docs URL declared
https://nanoclaw.dev
Release history
1- releasecurrenta30547fwarn2 weeks ago
Contents
Adds iMessage support via the Chat SDK bridge. Two modes: local (macOS with Full Disk Access) or remote (Photon API).
Install
NanoClaw doesn't ship channels in trunk. This skill copies the iMessage adapter in from the channels branch.
Pre-flight (idempotent)
Skip to Credentials if all of these are already in place:
src/channels/imessage.tsexistssrc/channels/imessage-registration.test.tsexistssrc/channels/index.tscontainsimport './imessage.js';chat-adapter-imessageis listed inpackage.jsondependencies
Otherwise continue. Every step below is safe to re-run.
1. Fetch the channels branch
git fetch origin channels
2. Copy the adapter and its registration test
git show origin/channels:src/channels/imessage.ts > src/channels/imessage.ts
git show origin/channels:src/channels/imessage-registration.test.ts > src/channels/imessage-registration.test.ts
3. Append the self-registration import
Append to src/channels/index.ts (skip if the line is already present):
import './imessage.js';
4. Install the adapter package (pinned)
pnpm install [email protected]
5. Build and validate
pnpm run build
pnpm exec vitest run src/channels/imessage-registration.test.ts
Both must be clean before proceeding. imessage-registration.test.ts is the one integration test: it imports the real channel barrel and asserts the registry contains imessage. It goes red if the import './imessage.js'; line is deleted or drifts, if the barrel fails to evaluate, or if chat-adapter-imessage isn't installed (the import throws) — so it also implicitly verifies the dependency from step 4. The adapter also calls core's createChatSdkBridge(...); that typed core-API consumption is guarded by pnpm run build.
End-to-end message delivery against a real iMessage account is verified manually once the service is running — see Next Steps.
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.
Reviews
No reviews yet. Be the first.
Related
Planning With Files
Claude Code skill implementing Manus-style persistent markdown planning — the workflow pattern behind the $2B acquisition.
orchestration-patterns
>
migration-patterns
>
mh install skills/add-imessage