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

  1. Run claude --channels plugin:imessage@claude-plugins-official on macOS 26
  2. Add a phone number to the allowlist in ~/.claude/channels/imessage/access.json
  3. Send an iMessage to the Mac from that phone number
  4. 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗