← ClaudeAtlas

imessage-bluebubbleslisted

Use when sending, reading, or searching iMessages from an agent on macOS, or when setting up, hardening, or debugging the BlueBubbles iMessage bridge. Also use when an existing chat.db/imsg approach breaks with permissionDenied, "authorization denied (code 23)", or hangs with no output after a macOS or Python upgrade.
TechNickAI/hermes-skills · ★ 0 · AI & Automation · score 76
Install: claude install-skill TechNickAI/hermes-skills
# iMessage via BlueBubbles Use for ANY iMessage work on a Hermes fleet Mac -- sending, reading, searching messages, or standing up the bridge itself. Also the right skill when iMessage is broken: `imsg` failures (`permissionDenied`, `authorization denied (code 23)`, hangs with no output) are the signal to move to this bridge. ## Why this exists The older `imsg` CLI reads Apple's `~/Library/Messages/chat.db` directly. macOS governs that file with TCC, and **TCC grants Full Disk Access to an exact interpreter path**. So a routine `uv` Python patch bump silently revokes access and every scheduled iMessage job dies with `authorization denied (code 23)` -- no Hermes version change, no config change, no log warning. That happened on a-contact a real incident. Add the sandboxd wedge (`imsg` hangs forever, zero output) and direct-database access is structurally fragile. BlueBubbles moves the Apple-facing half into one long-running signed app that holds its own permission grant. Hermes talks to it over loopback HTTP. **Python never touches chat.db again, so a Python upgrade can no longer break iMessage.** That is the whole point -- a structural fix, not a workaround. Hermes ships a first-class BlueBubbles platform adapter (`gateway/platforms/bluebubbles.py`, registered as `Platform.BLUEBUBBLES`), so the agent can _receive_ iMessages as a real channel, same as Telegram. ## Two separate capabilities -- do not confuse them | Capability | Mechanism