I Replaced OpenClaw With iMessage (Claude Code Channels on Mac, Built-In)

I texted Claude Code from my iPhone and it texted back. No Telegram bot. No Discord server. No OpenClaw. No external service. Just iMessage.
Claude Code Channels now supports iMessage natively on Mac. The plugin reads your local message database and replies through Apple Script. No tokens, no hosting, nothing to configure beyond one macOS permission.
If you watched my Telegram and Discord channel videos, this is the simplest setup of the three.
How It Works (in Two Sentences)
Your Mac stores all iMessages in a SQLite file called chat.db. The plugin polls that database every second for new messages, hands them to Claude, then sends replies through the Messages app via Apple Script. Everything stays on your Mac.
The One Thing You Need
Full Disk Access for your terminal. macOS protects chat.db behind this permission, so without it the plugin cannot read messages and exits immediately.
To grant it:
- Open System Settings
- Go to Privacy & Security
- Click Full Disk Access
- Add your terminal app (Terminal, iTerm, Warp, whatever you use). If you run Claude Code from VS Code, add VS Code instead.
macOS will prompt you to restart the terminal. Quit and reopen. The key rule: whatever app launches the Claude Code process is the app that needs this permission.
Install the Plugin
First, make sure you are on the latest Claude Code:
claude --versionThen install the iMessage channel from the official Anthropic marketplace:
claude plugin install imessage@claude-plugin-officialIf you see "plugin not found," either the official marketplace is not added or it needs an update. Run this once:
claude plugin marketplace add anthropic/claude-plugin-officialWhen the installer asks for a scope, pick user scope so it works across all your projects.
Run Claude With the Channel Flag
Exit your current Claude Code session and start a new one with the channel enabled:
claude --channels imessageYou will see "Listening for channel messages from imessage." That is it. No token to paste. No bot account to create. The plugin is now polling your messages database.
Try It (Self Chat)
Open Messages on your iPhone (I used iPhone Mirroring on my Mac so you can see both screens). Send a message to yourself.
Type something like: "Hey Claude, what's in my working directory?"
Watch the terminal. Claude picks up the message, runs the command, sends the reply back via Messages. Your iPhone receives a text from yourself with the answer.
You will notice every Claude reply ends with Sent by Claude. That is a signature so you can tell AI messages from your own, since self chat shows both sender and receiver. More on toggling that off later.
One Quirk of Self Chat
When you text yourself, each message appears twice in the conversation (once as sender, once as receiver). This is how iMessage handles self chat, not a bug.
If it bothers you, allow-list a second phone number or a family Apple ID and text from that device instead. Then each message appears once.
The Permission Prompt You Will See Once
The first time Claude tries to send a reply, macOS will ask if your terminal can control Messages. Click OK. This is a one-time prompt.
Access Control
The default policy is allow-list with an empty list. Self chat always bypasses (it is your own messages). Every other message is silently dropped unless the sender is on the list.
To check the current state, type into Claude Code:
imessage:accessYou will see the DM policy and the count of allowed senders.
To allow someone:
imessage:access allow +1234567890or with an email:
imessage:access allow friend@icloud.comClaude will ask permission to edit its own settings. You can approve from the terminal, or reply yes with the 5-character code from your iPhone (Claude prints the code in the terminal). Approving from your phone is the whole point of this setup, so use that path the first time.
To remove someone:
imessage:access remove friend@icloud.comSame approval flow, same secret-code confirmation.
Group Chats and Mention Patterns
Group chats work, but iMessage has no real @-mentions. The plugin uses regex patterns instead.
imessage:access set mention-patterns ["@claude", "hey claude"]In group chats, only messages matching one of those patterns trigger a Claude reply. Outside group chats this setting is ignored.
Turn Off the "Sent by Claude" Signature
Set an env var before starting Claude Code with the channel:
IMESSAGE_APPEND_SIGNATURE=false claude --channels imessageNow Claude's replies look exactly like a normal message. Cleaner for group chats where you want the AI to feel ambient.
What I Actually Use It For
The killer use cases for me, after a few weeks of running this:
- Read a file while away from the desk. "Send me the contents of
test.txt." Reply arrives in seconds. (Note: Claude will refuse to send.envcontents over iMessage. Built-in safety layer.) - Kick off a build or test while out. "Run the test suite and tell me when it is done." Walk away. Get a result text 5 minutes later.
- Pre-standup check-in. "What did I commit yesterday?" Claude pulls
git logand texts back a summary before you open your laptop. - Build something while away. "Create a modern landing page and save it as
landing.html." When you sit down, the file is ready.
Things to Keep in Mind
- Claude Code has to be running. Close the terminal and the channel stops. Keep a session open in the background.
- Mac only.
chat.dbis a Mac thing. There is no Windows or Linux equivalent for this channel. - The bypass-permission flag exists. Run
claude --channels imessage --dangerously-skip-permissionsif you do not want approval prompts. Use this only when you understand that Claude has full system access from wherever it is started. - Allow-list carefully. Anyone you add can drive your Claude Code session. Treat the list like SSH access.
Why This Beats Telegram and Discord
Telegram requires creating a bot, copying a token, configuring webhook URLs. Discord needs a server and a bot account. iMessage needs nothing except a permission toggle.
For Mac-only users (and most developers I know are on Mac), iMessage is the lowest-friction way to chat with Claude Code from a phone. The other channels are still useful when you need to share access with a team that does not all run macOS, but for solo use this wins.
Related Channel Setups
Subscribe
Subscribe to AyyazTech on YouTube for more Claude Code workflow videos. New uploads cover the tools and patterns I am actually using every week.