iMessage
Anthropic's Claude Code plugin wires up iMessage on the Mac locally via chat.db and AppleScript, with no external server or token.
- Skill Road
- iMessage
Categories
iMessage is a Claude Code plugin from Anthropic's own, officially maintained claude-plugins-official repository that turns Apple's Messages app into a full chat channel wired into a running Claude Code session — entirely locally on a Mac, with no external infrastructure. Instead of a bot token or a hosted service, the integration relies on two built-in macOS mechanisms: the channel reads message history straight from the native ~/Library/Messages/chat.db database and sends replies by driving Messages.app through AppleScript. The folder lives under external_plugins/imessage in the repository and includes its own LICENSE file, a README, a detailed ACCESS.md covering access control, and its own skills subfolder with two skills, access and configure — on its marketplace page at claude.com/plugins/imessage, Anthropic's own count shows roughly 15,700 installs, though it likewise does not carry the "Anthropic verified" badge that some other first-party plugins in the same repository display.
Part of the official plugin directory, but without the verified badge
The anthropics/claude-plugins-official repository is Anthropic's own curated collection of Claude Code plugins and itself carries over 37,000 GitHub stars. The iMessage folder is released under the repository's Apache-2.0 license like the other entries and is distributed the same way, through the built-in plugin marketplace. Its detail page, however, lacks the "Anthropic verified" mark shown on entries such as the Telegram or Code Review plugins in the same directory — a recurring sign that the review status within the official directory isn't applied uniformly. Anyone looking for iMessage integration outside Claude Code will find dedicated automation tools for that; this plugin is purpose-built for pairing with a running Claude Code session and works exclusively on macOS.
How the chat channel works
Per its package.json, the channel runs as a small TypeScript server built on the official @modelcontextprotocol/sdk and operates without any persistent background process: it detects new messages by polling the local chat.db once per second, using a watermark mechanism that keeps already-processed messages from resurfacing. Two tools are exposed per the source code: reply, for sending text with optional file attachments, automatically chunking long messages; and chat_messages, for retrieving recent message history sorted into direct-message and group threads. When an incoming message carries an image, the channel surfaces the first image's file path in a form the model can read. Because it relies on plain SQLite queries and AppleScript rather than a proprietary API, the README notes that neither a developer account nor a separate token is required — the only prerequisite is a Mac with Messages.app set up.
Access control: allowlists, pairing, and disabled SMS
Security is an explicit part of the feature set. In the default "allowlist" policy, messages from unknown senders are silently dropped; only messages to your own number or Apple ID bypass access control automatically, since they count as a self-chat. Contacts can be individually approved via /imessage:access allow using a phone number or Apple ID email address; alternatively, a pairing mode for a very small number of contacts offers a code exchange, where an unknown sender first receives a confirmation code and only gains access once it's returned. A third policy blocks external messages entirely while self-chat keeps working. SMS and RCS messages are deliberately disabled by default per the documentation, since sender IDs on those services are spoofable; group chats must be enabled individually by their GUID and, lacking iMessage's structured @-mentions, respond only to plain text patterns. The entire configuration lives locally under ~/.claude/channels/imessage/access.json and is re-read on every incoming message.
Installation and requirements
Installation goes through Claude Code's built-in plugin marketplace with /plugin install imessage@claude-plugins-official, followed by starting a channel process via claude --channels plugin:imessage@claude-plugins-official and configuring it through the /imessage:configure skill. Per the documentation, macOS is mandatory, as is granting Full Disk Access to the terminal application in use, since chat.db can't otherwise be read; the first outbound reply attempt additionally triggers a macOS automation permission prompt for Messages.app. The plugin's source code and license file are released under the Apache-2.0 license; neither the repository nor the marketplace page states a separate price for the plugin itself, and it is usable as a free part of a Claude Code installation.
Who should use it
The plugin is a good fit for Mac users who don't want to keep a terminal permanently attached to Claude Code but would rather send quick status checks, approvals, or follow-up instructions from the Messages app they already use — say, during a longer agent run, on the go from an iPhone thanks to iCloud message sync, or to turn existing private chats into an additional channel for the session without setting up another service like Telegram or Discord. Because of the full read access to the local message database and the potentially far-reaching actions a connected coding agent can trigger, choosing the access policy deliberately matters: the default allowlist plus your own self-chat is enough for purely personal use, while the pairing flow suits additional contacts without handing out your own Full Disk Access to anyone else. Anyone working across platforms or without macOS is better served by the Telegram or Discord plugin.
Installation
/plugin install imessage@claude-plugins-official
- Provider
- Anthropic
- License
- Apache-2.0
- Last reviewed
- 30.09.2026
- GitHub stars
- 37,206
Categories
Compatible with
Related guides
Guides and background related to this entry.
Set up the Asana plugin for Claude Code
Create your own Asana OAuth app, install the Claude Code plugin, and connect to Asana's V2 MCP server via /asana-setup.
30.09.2026
Set up the iMessage plugin for Claude Code
Grant Full Disk Access, install the Claude Code plugin, and configure iMessage access control via an allowlist or pairing.
30.09.2026
Set up the Discord plugin for Claude Code
Create a Discord bot, install the Claude Code plugin, and configure access control via pairing, an allowlist, or guild channels.
29.09.2026
Setting up the Zernio MCP Server
Connect the Zernio MCP Server via OAuth or an API key, link social accounts, and deliberately safeguard write access to posts, inboxes, and ad campaigns.
28.09.2026