iMessage channel plugin: messages not detected on macOS 26 (text column is NULL)
Resolved 💬 3 comments Opened Apr 1, 2026 by hajimoo233 Closed May 18, 2026
Description
On macOS Tahoe (Darwin 25.4.0), the iMessage channel plugin (plugin:imessage@claude-plugins-official) does not respond to incoming messages.
Root Cause
macOS 26 (Tahoe) stores iMessage text content only in the attributedBody column of ~/Library/Messages/chat.db, leaving the text column as NULL. The iMessage channel plugin appears to read m.text, which is always NULL, so it never sees incoming message content.
-- All recent messages have text = NULL
SELECT rowid, text, attributedBody IS NOT NULL as has_body
FROM message ORDER BY rowid DESC LIMIT 5;
-- Result: text is NULL for every row, but attributedBody contains the actual content
Environment
- Claude Code: v2.1.89
- macOS: Tahoe (Darwin 25.4.0)
- Channel:
plugin:imessage@claude-plugins-official
Steps to Reproduce
- Run
claude --channels plugin:imessage@claude-plugins-officialon macOS 26 - Add a phone number to the allowlist in
~/.claude/channels/imessage/access.json - Send an iMessage to the Mac from that phone number
- No response is generated — the plugin does not detect the message
Expected Behavior
The plugin should fall back to reading attributedBody when text is NULL, or use a query that extracts text from attributedBody.
Workaround
None currently. Sending messages via AppleScript works fine, so the issue is only on the inbound/read side.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗