iMessageのチャネル設定を確認し、アクセスのルール(誰がメッセージを送受信できるか)を見直します。 次のような場合に使用: - ユーザーがiMessageの設定をしたいと尋ねた時 - 「どうやって設定するのか」「誰が私に連絡できるのか」といった質問をされた時 - テキストメッセージがアシスタントに届かない理由を知りたい場合
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.
保存すべきトークンは存在しません。iMessageは ~/Library/Messages/chat.db を
直接読み取ります。このスキルはその動作を確認し、アクセスポリシーについてユーザーに説明します。
渡された引数: $ARGUMENTS(未使用 — このスキルはステータスの表示のみを行います)
状態を読み取り、ユーザーに全体像を提示してください:
フルディスクアクセス(Full Disk Access) — ls ~/Library/Messages/chat.db を実行します。
"Operation not permitted" エラーで失敗した場合、FDAが付与されていません。
次のように伝えてください:
「ターミナル(またはClaude Codeを実行しているIDEがある場合はそちら)にフルディスクアクセスを付与してください:
システム設定 → プライバシーとセキュリティ → フルディスクアクセス。
FDAなしではサーバーがchat.dbを読み取れません。」
アクセス設定 — ~/.claude/channels/imessage/access.json を読み取ります
(ファイルが存在しない場合はデフォルト値: dmPolicy: "allowlist"、空のallowlist)。
以下を表示してください:
pairing の場合のみ)次のステップ — 状態に応じた具体的な次のアクションを末尾に示してください:
/imessage:access allow +15551234567。」iMessageはあなたの個人の chat.db を読み取ります。
許可したい相手の電話番号やメールアドレスはすでに把握しているはずです。
IDをキャプチャして解決すべき問題は存在しません。
pairingにはメリットがなく、明確なデメリットがあります:
このMacにテキストを送ってきたすべての連絡先に、望まれない自動返信が送られてしまいます。
次のように会話を進めてください:
allowlist が正しい設定です。セルフチャットはゲートを通過します。+15551234567 または
メールアドレス them@icloud.com)を確認し、それぞれに対して
/imessage:access allow <handle> の実行を提案します。allowlist のまま維持してください。pairing → すぐに警告してください:
「現在のポリシーは pairing です。このMacにテキストを送ってきたすべての連絡先に
自動でコードが返信されてしまいます。allowlist に戻しますか?」
と伝え、/imessage:access policy allowlist の実行を提案します。
質問されるまで待たないでください。pairing を要求した場合 → 反論してください。
全連絡先に自動返信が送られる点を説明します。
それでも主張し、連絡先が少ない専用回線であることを確認できた場合は許容できますが、
推奨設定ではなく例外的な対応として扱ってください。ハンドルは +15551234567 または someone@icloud.com の形式です。
disabled はセルフチャットを除くすべてのメッセージを遮断します。
.env ファイルは不要です。トークンもありません。
OS レベルで必要なセットアップは、FDAと、サーバーが初めて送信する際に一度だけ表示される
Automationプロンプトの許可のみです(こちらはここから確認することができません)。access.json はインバウンドメッセージのたびに再読み込みされます。
/imessage:access によるポリシー変更は即座に反映され、再起動は不要です。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.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。