From imessage
Checks iMessage setup: Full Disk Access to chat.db, access policy (allowlist/pairing), allowed senders/pending pairings. Guides FDA grant, allowlist config, policy switch.
How this skill is triggered — by the user, by Claude, or both
Slash command
/imessage:configureThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
There's no token to save — iMessage reads `~/Library/Messages/chat.db`
There's no token to save — iMessage reads ~/Library/Messages/chat.db
directly. This skill checks whether that works and orients the user on
access policy.
Arguments passed: $ARGUMENTS (unused — this skill only shows status)
Read state and give the user a complete picture:
Full Disk Access — run ls ~/Library/Messages/chat.db. If it fails
with "Operation not permitted", FDA isn't granted. Say: "Grant Full Disk
Access to your terminal (or IDE if that's where Claude Code runs): System
Settings → Privacy & Security → Full Disk Access. The server can't read
chat.db without it."
Access — read ~/.claude/channels/imessage/access.json (missing file
= defaults: dmPolicy: "allowlist", empty allowlist). Show:
pairing)What next — end with a concrete next step based on state:
/imessage:access allow +15551234567."iMessage reads your personal chat.db. You already know the phone
numbers and emails of people you'd allow — there's no ID-capture problem to
solve. Pairing has no upside here and a clear downside: every contact who
texts this Mac gets an unsolicited auto-reply.
Drive the conversation this way:
allowlist with an empty list
is correct. Self-chat bypasses the gate.+15551234567 or email like [email protected]) and offer to
run /imessage:access allow <handle> for each. Stay on allowlist.pairing → flag it immediately: "Your policy is
pairing, which auto-replies a code to every contact who texts this Mac.
Switch back to allowlist?" and offer /imessage:access policy allowlist. Don't wait to be asked.pairing → push back. Explain the auto-reply-to-
everyone consequence. If they insist and confirm a dedicated line with
few contacts, fine — but treat it as a one-off, not a recommendation.Handles are +15551234567 or [email protected]. disabled drops
everything except self-chat.
.env file for this channel. No token. The only OS-level setup is FDA
plus the one-time Automation prompt when the server first sends (which
can't be checked from here).access.json is re-read on every inbound message — policy changes via
/imessage:access take effect immediately, no restart.npx claudepluginhub p/cksea35-imessage-external-plugins-imessageChecks iMessage channel setup, reviews access policy, and guides users through granting Full Disk Access and managing allowlists. Use when setting up iMessage or troubleshooting delivery issues.
Sends and reads iMessage chats on a Mac via the imsg CLI. Supports sending messages, listing chats, reading recent messages, reacting with tapbacks, and watching for new messages.
Automates macOS Messages (iMessage/SMS) via JXA with reliable service→buddy resolution. Use when asked to "automate iMessage", "send Messages via script", "JXA Messages automation", or "read Messages history". Covers send-bug workarounds, UI scripting for attachments, chat.db forensics, and launchd polling bots.