Connect Hermes to iMessage with BlueBubbles
BlueBubbles gives Hermes an iMessage path by connecting the gateway to a BlueBubbles Server that you operate. Treat that server as a privileged bridge: it can relay personal conversations, so access policy and delivery verification belong in the initial setup rather than a later hardening pass.
Official documentation: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/bluebubbles
Understand the boundary
BlueBubbles Server runs on a compatible Mac and exposes the iMessage connection. Hermes connects with the server URL and password, then maps inbound conversations to gateway sessions. The bridge is not a general public chatbot endpoint. Keep the server updated, limit network exposure, and never paste its password into chat, screenshots, or a public configuration file.
For direct messages, DM pairing is the safest default: an unknown sender receives a short pairing flow and an operator approves the identity. A narrow pre-authorized list is useful for a known household or team. Open access is suitable only for an isolated development test.
Setup checklist
- Install and verify BlueBubbles Server on the intended Mac.
- Record the server URL and password in a secret-safe local location.
- Run
hermes gateway setupand select BlueBubbles. - Choose DM pairing or a narrow sender allowlist.
- Decide whether group chats require an explicit mention.
- Start the gateway and inspect the BlueBubbles adapter status.
- Test one inbound direct message and one outbound reply.
- Test media separately if the workflow depends on attachments.
Design group-chat behavior deliberately
Group threads need a stronger noise policy than direct messages. Requiring a mention prevents ordinary family or team conversation from waking the agent. Give each group an understandable purpose, keep autonomous delivery to a designated home channel, and avoid sending long operational reports into social threads.
Session continuity should also be intentional. Confirm whether a conversation maps to a stable per-chat session and test that two unrelated chats do not share context.
Common pitfalls
- Publishing the BlueBubbles password in an environment example or support bundle.
- Exposing the server directly to the internet without understanding its controls.
- Enabling open access because pairing was not tested.
- Letting every group message trigger the agent.
- Assuming a delivered text proves image or attachment delivery works.
- Restarting every gateway platform when only BlueBubbles needs attention.
Verification steps
- Start the gateway and confirm the BlueBubbles adapter reports ready without printing secrets.
- Message the bot from an unauthorized identity and confirm the configured pairing or denial behavior.
- Approve a test identity, send a plain-text message, and verify the reply appears in the same thread.
- Send a group message without a mention, then with a mention, and confirm the chosen policy.
- Restart the adapter and confirm the authorized identity and session mapping remain correct.
- Review logs for message content, phone-number exposure, repeated reconnects, or delivery errors before production use.
