# Configure

Check iMessage channel setup and review access policy.

- Repository: https://github.com/anthropics/claude-plugins-official (45706 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add anthropics/claude-plugins-official --skill configure -g -a claude-code -y`
Codex: `npx skills add anthropics/claude-plugins-official --skill configure -g -a codex -y`
Cursor: `npx skills add anthropics/claude-plugins-official --skill configure -g -a cursor -y`
Gemini CLI: `npx skills add anthropics/claude-plugins-official --skill configure -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add anthropics/claude-plugins-official`

## Description

Check iMessage channel setup and review access policy. Use when the user asks to configure iMessage, asks "how do I set this up" or "who can reach me," or wants to know why texts aren't reaching the assistant.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# /imessage:configure, iMessage Channel Setup

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)

---

## Status and guidance

Read state and give the user a complete picture:

1. **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."*

2. **Access**, read `~/.claude/channels/imessage/access.json` (missing file
   = defaults: `dmPolicy: "allowlist"`, empty allowlist). Show:
   - DM policy and what it means in one line
   - Allowed senders: count, and list the handles
   - Pending pairings: count, with codes if any (only if policy is `pairing`)

3. **What next**, end with a concrete next step based on state:
   - FDA not granted → the FDA instructions above
   - FDA granted, policy is allowlist → *"Text yourself from any device
     signed into your Apple ID, self-chat always bypasses the gate. To let
     someone else through: `/imessage:access allow +15551234567`."*
   - FDA granted, someone allowed → *"Ready. Self-chat works; {N} other
     sender(s) allowed."*

---

## Build the allowlist, don't pair

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:

The rest: https://github.com/anthropics/claude-plugins-official/blob/HEAD/external_plugins/imessage/skills/configure/SKILL.md
