BlueBubbles (iMessage)
Connect Hermes to Apple iMessage via BlueBubbles — a free, open-source macOS server that bridges iMessage to any device.
Prerequisites
- A Mac (always on) running BlueBubbles Server
- Apple ID signed into Messages.app on that Mac
- BlueBubbles Server v1.0.0+ (webhooks require this version)
- Network connectivity between Hermes and the BlueBubbles server
Setup
1. Install BlueBubbles Server
Download and install from bluebubbles.app. Complete the setup wizard — sign in with your Apple ID and configure a connection method (local network, Ngrok, Cloudflare, or Dynamic DNS).
2. Get your Server URL and Password
In BlueBubbles Server → Settings → API, note:
- Server URL (e.g., http://192.168.1.10:1234)
- Server Password
3. Configure Hermes
Run the setup wizard:
hermes gateway setup
Select BlueBubbles (iMessage) and enter your server URL and password.
Or set environment variables directly in ~/.hermes/.env:
BLUEBUBBLES_SERVER_URL=http://192.168.1.10:1234
BLUEBUBBLES_PASSWORD=your-server-password
4. Authorize Users
Choose one approach:
DM Pairing (recommended): When someone messages your iMessage, Hermes automatically sends them a pairing code. Approve it with:
hermes pairing approve bluebubbles <CODE>
Use hermes pairing list to see pending codes and approved users.
Pre-authorize specific users (in ~/.hermes/.env):
BLUEBUBBLES_ALLOWED_USERS=user@icloud.com,+15551234567
Open access (in ~/.hermes/.env):
BLUEBUBBLES_ALLOW_ALL_USERS=true
5. Start the Gateway
hermes gateway run
Hermes will connect to your BlueBubbles server, register a webhook, and start listening for iMessage messages.
How It Works
iMessage → Messages.app → BlueBubbles Server → Webhook → Hermes
Hermes → BlueBubbles REST API → Messages.app → iMessage
- Inbound: BlueBubbles sends webhook events to a local listener when new messages arrive. No polling — instant delivery.
- Outbound: Hermes sends messages via the BlueBubbles REST API.
- Media: Images, voice messages, videos, and documents are supported in both directions. Inbound attachments are downloaded and cached locally for the agent to process.
Environment Variables
| Variable | Required | Default | Description | |lang: ru
----|----------|---------|-------------|
| BLUEBUBBLES_SERVER_URL | Да | — | URL-адрес сервера BlueBubbles |
| BLUEBUBBLES_PASSWORD | Да | — | Пароль сервера |
| BLUEBUBBLES_WEBHOOK_HOST | Нет | 127.0.0.1 | Адрес привязки прослушивателя Webhook |
| BLUEBUBBLES_WEBHOOK_PORT | Нет | 8645 | Порт прослушивателя Webhook |
| BLUEBUBBLES_WEBHOOK_PATH | Нет | /bluebubbles-webhook | URL-путь вебхука |
| BLUEBUBBLES_HOME_CHANNEL | Нет | — | Телефон/электронная почта для доставки cron |
| BLUEBUBBLES_ALLOWED_USERS | Нет | — | Авторизованные пользователи, разделенные запятыми |
| BLUEBUBBLES_ALLOW_ALL_USERS | Нет | false | Разрешить всем пользователям |
Автоматическая пометка сообщений как прочитанных контролируется клавишей send_read_receipts под platforms.bluebubbles.extra в ~/.hermes/config.yaml (по умолчанию: true). Соответствующей переменной среды нет.
Особенности
Текстовые сообщения
Отправляйте и получайте iMessages. Markdown автоматически удаляется для чистой доставки в виде простого текста.
Мультимедийная информация
– Изображения. Фотографии автоматически появляются в разговоре iMessage. - Голосовые сообщения: аудиофайлы, отправленные как голосовые сообщения iMessage. – Видео: прикрепленные видео. – Документы: файлы, отправленные в виде вложений iMessage.
Ответные реакции
Любите, нравится, не нравится, смейтесь, подчеркивайте и подвергайте сомнению реакции. Требуется BlueBubbles Частный помощник API.
Индикаторы набора текста
Показывает «ввод...» в разговоре iMessage, пока агент обрабатывает сообщение. Требуется частный API.
Уведомления о прочтении
Автоматически помечает сообщения как прочитанные после обработки. Требуется частный API.
Адресация чата
Вы можете обращаться к чатам по электронной почте или номеру телефона — Hermes автоматически преобразует их в GUID чата BlueBubbles. Нет необходимости использовать необработанный формат GUID.
Частный API
Для некоторых функций требуется BlueBubbles Частный помощник API: - Ответные реакции - Индикаторы набора текста - Читать квитанции - Создание новых чатов по адресу
Без частного API базовые текстовые сообщения и мультимедиа по-прежнему работают.
Устранение неполадок
"Невозможно связаться с сервером"
- Убедитесь, что URL-адрес сервера правильный и Mac включен.
- Убедитесь, что сервер BlueBubbles работает.
- Обеспечить сетевое подключение (брандмауэр, переадресация портов)
Сообщения не приходят
- Убедитесь, что вебхук зарегистрирован на сервере BlueBubbles → Настройки → API → Вебхуки. – Убедитесь, что URL-адрес веб-перехватчика доступен с Mac.
- Проверьте
hermes logs gatewayна наличие ошибок веб-перехватчика (илиhermes logs -f, чтобы следить за ними в режиме реального времени).
«Частный помощник API не подключен»
- Установите помощник частного API: docs.bluebubbles.app
- Базовый обмен сообщениями работает без него — его требуют только реакции, набор текста и уведомления о прочтении.