5.6 KiB
title, created, updated, type, namespace, status, tags, related
| title | created | updated | type | namespace | status | tags | related | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hermes pairing — approve пользователей, multi-profile | 2026-09-29 | 2026-09-29 | tech | personal | active — процедура проверена 2026-09-29 |
|
|
Hermes pairing — approve пользователей (multi-profile)
Процедура выдачи доступа новому пользователю к боту Hermes. Проверена 2026-09-29 на инстансе whale для telegram и mattermost.
🔴 ГЛАВНОЕ: pairing — per-profile, и это легко перепутать
hermes pairing работает внутри того профиля, который задан HERMES_HOME.
На этой машине профилей несколько (минимум eagle и whale), и у каждого свой
список одобренных пользователей.
/Users/admin/.hermes/ ← базовый профиль (Eagle)
/Users/admin/.hermes/hermes-whale/ ← профиль Whale (Кит)
🔴 Перед любым approve — проверить инстанс:
echo "HERMES_HOME=$HERMES_HOME"
Ожидаемо для Кита: HERMES_HOME=/Users/admin/.hermes/hermes-whale.
Alex отдельно предупреждает: не трогать eagle (он остановлен, но конфиг живой).
Команды
# назначить профиль явно (надёжнее, чем полагаться на окружение)
export HERMES_HOME=/Users/admin/.hermes/hermes-whale
# список: pending + approved
hermes pairing list
# одобрить
hermes pairing approve <platform> <code>
Полный путь к бинарю (если hermes не в PATH):
/Users/admin/.hermes/hermes-agent/venv/bin/python -m hermes_cli.main pairing list
Подкоманды: list · approve · revoke · clear-pending.
Как выглядит рабочий прогон
$ hermes pairing list
Pending Pairing Requests (1):
Platform Code User ID Name Age
-------- ---- ------- ---- ---
telegram fb7ba963 312016878 Alexey 1m ago
No approved users.
$ hermes pairing approve telegram AYJ6JPM9
Approved! User Alexey (312016878) on telegram can now use the bot~
They'll be recognized automatically on their next message.
После обоих approve (2026-09-29):
Approved Users (2):
Platform User ID Name
---------- ------- ----
telegram 312016878 Alexey
mattermost cbwsorzwoigbtrdnteugnx4aqo admin
🔴 Питфолл: код в pending ≠ код, который даёт Alex
В обоих прогонах 2026-09-29 код в pending отличался от того, что прислал Alex:
| Платформа | В pending | Alex прислал | Итог |
|---|---|---|---|
| telegram | fb7ba963 |
AYJ6JPM9 |
✅ approve прошёл |
| mattermost | f8c6ca55 |
QHYL8TB9 |
✅ approve прошёл |
Оба раза approve по присланному коду сработал, очередь опустела, одобрен ровно один пользователь на платформу. То есть код из pending — не единственный валидный (вероятно, привязка идёт по последнему запросу пользователя, а не по показанной строке).
📌 Практика: получив код от Alex — выполнять его как есть, не «исправлять» на код
из pending. И всегда сверять pairing list после: должно стать
Pending: 0 и появиться ожидаемый user id.
Связка platform ↔ user id (этот сетап)
| Платформа | User ID | Name | Что это |
|---|---|---|---|
| telegram | 312016878 |
Alexey | MY_TELEGRAM_ID из ~/Documents/documentation/tokens/ |
| mattermost | cbwsorzwoigbtrdnteugnx4aqo |
admin | аккаунт Alex в MM (admin@qentra.top) |
Что pairing НЕ делает
- Не поднимает платформу. Транспорт должен быть подключён отдельно
(env-переменные + блок в
config.yaml). Для MM — 5 ключейMATTERMOST_*, см. personal/tech/hermes-whale-mattermost-transport.md. - Не выдаёт токен бота. Это разные вещи: токен — доступ бота к платформе, pairing — доступ человека к боту.
- Не влияет на другой профиль. Одобрение в whale не даёт доступа в eagle и наоборот.
Проверка после approve
export HERMES_HOME=/Users/admin/.hermes/hermes-whale
hermes pairing list # ожидаем Pending: 0 + нужный user в Approved
Приёмка — сообщение от Alex в UI платформы и ответ бота, не «pairing list показывает строку».
Связанные заметки
- personal/tech/hermes-whale-mattermost-transport.md — транспорт MM + Telegram, env-ключи
- personal/projects/personal-os/eagle-dashboard.md — управление сервисами Hermes (Eagle/Whale)