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.
npx claudepluginhub anthropics/claude-plugins-official --plugin imessageThis skill is limited to using the following tools:
There's no token to save — iMessage reads `~/Library/Messages/chat.db`
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Builds scalable data pipelines, modern data warehouses, and real-time streaming architectures using Spark, dbt, Airflow, Kafka, and cloud platforms like Snowflake, BigQuery.
Builds production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. For data pipelines, workflow orchestration, and batch job scheduling.
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 them@icloud.com) 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 someone@icloud.com. 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.