Skip to main content

senler-io-user

❖ Communityv0.4.1

Connect your Senler.io account through MCP OAuth and automate selected webhook events with an outbound Relay connection.

Open in Hermes Desktop
hermes plugins install senler-io-user

What it adds

Tools 1

senler_connect

Hooks 2

pre_tool_callon_session_end

README

From the reviewed commit d36f1bf ↗; it updates when the author re-pins.

Senler.io for Hermes Agent

Senler.io User for Hermes Agent

Connect your Senler.io account to Hermes through MCP OAuth and automate selected webhook events with an outbound Relay connection. The MCP address is bundled; each user signs in to their own account. A public IP, inbound port or tunnel is not required for Relay.

Version 0.4.1 is a preview. The maintainer has confirmed installation and in-chat sign-in on native Windows Desktop. Automated tests cover connection, installation and Relay behavior; a real Senler event workflow still needs its own end-to-end check. See verification details.

Quick start

Use a current Hermes installation with native plugins, MCP OAuth, in-chat connection management, plugin platforms and the Relay transport. Install in the same Hermes instance and profile that executes your agent. Git is required for installation from this repository.

hermes plugins install SenlerBot/senler-io-user-hermes-plugin --no-enable
hermes plugins enable senler-io-user

Open a new Hermes chat and ask "Connect Senler". Complete sign-in using the native Hermes authorization card. If in-chat connection management is unavailable, open Desktop's MCP connections, select the prepared senler-io-user entry and choose Authorize. The terminal alternative is hermes senler connect.

Then try "List my Senler projects and their IDs. Do not change anything." To set up automation, name the project, event types and intended actions, for example "Process incoming messages in my Support project and draft replies. Do not send them." Hermes creates or reuses the requested subscription; Senler activates it after the connection check succeeds. The Hermes gateway must remain running for background processing, and Senler API/User MCP must support Hermes Relay subscriptions. Gateway proxy mode and multiplexed profiles are not supported.

The catalog submission is pending; installation from this repository works independently of a catalog listing. Updates use hermes plugins update senler-io-user.

Connections, permissions and local data

  • Network: the configured MCP endpoint is https://mcp-senler-io-user.senler.io/mcp?auth_mode=oauth. Hermes owns OAuth, token storage and refresh. The plugin neither reads OAuth token files nor implements its own login client. Senler access follows the signed-in user's permissions. Automation also connects by WSS to the Relay address returned by Senler; plain WS is accepted only on localhost for development.
  • User-requested setup: senler_connect prepares the active profile's MCP entry through Hermes's configuration APIs. Relay setup enables its platform in the same profile. Existing compatible MCP settings are preserved. Importing or enabling the plugin does not start sign-in, create a subscription or send a customer message.
  • Background execution: the senler-io platform runs inside the Hermes gateway after the operator configures automation. Its authenticated events use trusted_inbound and bypass Hermes's user-pairing/allowlist flow. The adapter checks the saved project, subscription and event selection, disables gateway commands, and treats customer content as untrusted input. Saved operator instructions determine permitted actions; sending a reply requires an explicit send policy or direct request.
  • Stored data: the active Hermes profile contains senler-io-relay.sqlite3 and its lock/journal files. The SQLite database stores subscription-specific Relay credentials, operator instructions, event payloads and result reports. It is not encrypted by the plugin; protect the profile directory and backups. Event runs also create normal Hermes sessions. Event content is processed by the model provider selected in Hermes, and result reports of up to 16,000 characters are sent back to Senler. The gateway log may contain a short preview. These workflow reports are not optional analytics; the plugin adds no separate telemetry.
  • Commands: the terminal connection helper invokes Hermes's own MCP CLI using the same Python interpreter and profile. The bundled PowerShell scripts invoke local Hermes commands for installation or Relay setup; Relay credentials are passed through JSON stdin, not command-line arguments. The plugin reads its own bundled settings/skills, its SQLite state and the profile configuration through Hermes APIs. It does not replace Hermes core code or update itself.
  • Stopping and removing: pause the local processor and disable its Senler subscription before removal. Removing the plugin does not revoke MCP access or subscription credentials, and does not erase the profile's Relay database or Hermes sessions. Review uncertain actions before retrying interrupted jobs; the plugin does not promise exactly-once execution for arbitrary MCP writes.

Registered capabilities: one tool (senler_connect), two hooks (pre_tool_call, on_session_end), two skills (senler-io-user, senler-io-incoming), the senler CLI command and the senler-io platform. No plugin-specific Python dependencies, environment secrets, Desktop JavaScript, or standalone background service are installed. The command and skill descriptions are in English; detailed Windows instructions below are in Russian. Source code is licensed under MIT.

Русская инструкция

Senler.io User для Hermes Agent

Плагин содержит настройки подключения к пользовательскому MCP-серверу Senler.io, подключение из чата и два skill: работу с User MCP и обработку входящих. Адрес сервера и параметры OAuth уже в пакете; пользователь входит в свой аккаунт Senler. Данные и действия доступны с правами этого пользователя.

Версия 0.4.1 — предварительный выпуск с подключением Senler из чата Hermes. Вебхук типа Hermes создаётся без URL: Senler выдаёт адрес подключения, плагин подключается к нему и подписка включается после автоматической проверки. Владелец установки подтвердил установку и вход из чата Windows Desktop; обработка настоящего события требует отдельной проверки. Новые возможности требуют соответствующего обновления Senler API и User MCP; ZIP не обновляет серверы Senler.

Установка из GitHub на Windows

Нужен актуальный Hermes с нативными плагинами, регистрацией платформ, Relay transport и OAuth для MCP, а также Git. Используйте тот же Hermes и каталог данных, что и в Desktop; подключение Desktop к другому компьютеру требует установки на том компьютере.

hermes --version
hermes plugins install SenlerBot/senler-io-user-hermes-plugin --no-enable
hermes plugins enable senler-io-user

После установки откройте новый чат Hermes и напишите «Подключи Senler». Пройдите вход через штатную карточку авторизации Hermes. Адрес MCP и параметры OAuth уже в плагине; для этого шага PowerShell не нужен. Подробности — в разделе Подключение Senler ниже. Публикация в официальном каталоге Hermes для установки из этого репозитория не требуется. Если копия из ZIP уже установлена, сначала выполните переход на GitHub-версию по разделу Обновление ниже.

Установка из ZIP на Windows

Скачайте ZIP из GitHub Releases. Откройте PowerShell в распакованной папке, рядом с plugin.yaml:

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

ExecutionPolicy Bypass действует только для этого процесса. Скрипт проверяет пакет командой hermes plugins validate, копирует файлы и включает плагин штатной командой Hermes. Существующая копия не перезаписывается.

Каталог данных берётся из HERMES_HOME, иначе используется современный Windows-каталог %LOCALAPPDATA%\hermes. Перед записью проверяется наличие config.yaml. Для другой установки или профиля укажите фактический каталог его config.yaml:

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -HermesHome 'C:\path\to\hermes-home'

Для предварительного просмотра добавьте -WhatIf. Если команда hermes не найдена, откройте новый PowerShell или передайте фактический путь к CLI через -HermesCommand. Скрипт не устанавливает и не обновляет сам Hermes.

Подключение Senler

В новом чате того же профиля Hermes, где включён плагин, напишите:

Подключи Senler.

Плагин подготовит подключение из mcp-server.json, затем Hermes покажет штатную карточку авторизации. Нажмите кнопку открытия браузера и пройдите вход в Senler. После подтверждения Hermes проверит подключение и загрузит инструменты. Сохранённая рабочая авторизация используется повторно. При отмене или ошибке Hermes сообщит результат; настройка обработки событий продолжаться не должна.

Для карточки нужны поддержка подключения MCP из чата и доступный в сессии инструмент Hermes manage_connections. Если он недоступен, подготовленное подключение будет в разделе подключений / MCP Desktop: выберите senler-io-user и нажмите Authorize / Авторизоваться. Настройки уже заполнены. Если подключение было выключено, сначала включите его в том же разделе.

После входа попросите:

Покажи доступные мне проекты Senler: названия и ID. Ничего не изменяй.

Можно сразу попросить обработку входящих: если подключения ещё нет, Hermes сначала предложит вход, затем продолжит настройку. Конфликтующее подключение с тем же именем плагин сохраняет и предлагает проверить в настройках. Hermes хранит и обновляет OAuth-токены самостоятельно.

Установка и включение плагина регистрируют действие подключения, команду и skills. MCP создаётся по просьбе пользователя в чате или через команду ниже. Фоновое событие не может запускать вход. Полный сценарий проверки — docs/windows-test.md.

Подключение через терминал

Для серверов и пользователей терминала остаётся команда:

hermes senler connect

Пройдите вход по ссылке Hermes и завершите вопросы подключения в терминале. Если при установке вы передавали -HermesHome, сначала задайте $env:HERMES_HOME с тем же путём в этом PowerShell. Desktop тоже должен использовать этот профиль.

Проверка:

hermes plugins list
hermes senler check

Повторный connect проверяет существующее подключение, сохраняя его настройки и выбранные инструменты. Hermes использует сохранённые токены, обновляет их или запрашивает вход, если они больше не работают. Для принудительного нового входа выполните:

hermes senler connect --reauthorize

Если под именем senler-io-user уже настроен другой сервер или подключение выключено, команда объяснит причину и сохранит настройки. Адрес и параметры подключения находятся в mcp-server.json; вручную копировать их не нужно.

Автоматическая обработка событий

Агент и плагин должны работать в одном экземпляре Hermes — на компьютере или сервере; модель может быть облачной. Режим пересылки задач другому экземпляру Hermes (gateway.proxy_url / GATEWAY_PROXY_URL) для входящих событий пока не поддерживается: плагин проверяет его при настройке, возобновлении и запуске gateway. Во время работы проверка повторяется перед каждым заданием. При несовместимой настройке новые задания ждут; причина видна в hermes senler relay status как processing_blocked_reason. После исправления настройки ожидание снимается автоматически, ручная пауза сохраняется. Срок ожидания событий — до 24 часов; готовые отчёты продолжают отправляться. Место выполнения агента следует менять с остановкой и последующим запуском gateway.

Публичный IP, домен и открытые входящие порты не нужны: Hermes сам подключается к Senler. В обычном чате можно попросить:

Обрабатывай входящие сообщения проекта «Учебный»: классифицируй вопрос и готовь черновик ответа. Сообщения клиентам пока не отправляй.

Hermes создаст подписку, проверит приём и включит её в рамках той же просьбы. Можно выбрать другие события, отдельные каналы, изменить правила или поставить обработку на паузу. User OAuth остаётся одним на пользователя; каждая подписка привязана к выбранному проекту.

В новом чате Hermes сначала находит сохранённые подключения. Повторная просьба использует прежний сценарий и ID вебхука. При остановке сначала выключается локальный обработчик, затем подписка Senler. Если Senler или OAuth недоступны, Hermes сообщает, что обработчик остановлен локально, а отключение подписки ещё не подтверждено. Новые вызовы инструментов остановленной попытки блокируются; уже отправленное внешнее действие может завершиться. Сохранённый отчёт доставляется в Senler даже на локальной паузе, без возобновления обработки событий.

Черновик сохраняется в сессии обработки Hermes и передаётся в историю подписки Senler (до 16 000 символов). Чтобы увидеть результаты, попросите: «Покажи последние черновики обработки Senler проекта „Учебный“». Плагин помогает найти сохранённые ответы в истории сессий; они не появляются автоматически в исходном чате и не сохраняются как черновики в Senler. Журнал gateway содержит только короткое начало ответа.

Пакет не запускает listener, не создаёт подписки, не отправляет сообщения при установке и не добавляет фоновый опрос диалогов.

Обновление

Если раньше был настроен HTTP-приёмник из версии 0.3, перед обновлением поставьте его вебхук в Senler на паузу и дождитесь завершения выполняющихся заданий. Удалите прежний маршрут штатными средствами Hermes. После обновления создайте подписку типа Hermes. Тип существующего HTTP-вебхука не меняется автоматически. Это разовый переход: в версии 0.4 плагин использует только Relay для получения событий.

Копия, установленная из GitHub, обновляется штатной командой:

hermes plugins update senler-io-user

ZIP-копия не имеет Git-источника для hermes plugins update. Перед заменой сохраните свои правки внутри папки плагина, если они есть. Удалите только этот плагин штатной командой, затем выполните установку из GitHub выше или установите новую ZIP-версию:

hermes plugins remove senler-io-user

После обновления откройте новый чат в нужном профиле и напишите «Подключи Senler». Сохранённое MCP-подключение будет использовано с его прежними настройками. Если плагин выключен, включите его в интерфейсе или командой hermes plugins enable senler-io-user.

После обновления перезапустите gateway. Настройки Relay и очередь находятся в профиле Hermes и сохраняются при замене файлов плагина. Ручная пауза остаётся в силе. Перед полным удалением попросите отключить соответствующие подписки Senler; само удаление пакета не отзывает MCP-доступ и ключи подписок.

Исходники и выпуски: SenlerBot/senler-io-user-hermes-plugin. Не добавляйте в репозиторий папку данных Hermes, OAuth-токены и senler-io-relay.sqlite3.

Логотип и формат пакета

В assets/icon.svg включён исходный логотип Senler из пользовательского плагина для Codex. Он отображается в README и копируется при установке. Пакет использует нативный plugin.yaml и Python-точку входа: они регистрируют действие подключения из чата, CLI-команду, skills и платформу Senler Relay.

Изображение карточки в каталоге Hermes задаётся отдельным полем image в записи этого каталога. Наличие SVG в ZIP само по себе не назначает значок плагину в Desktop. Пакет ещё не опубликован в каталоге. Подробности проверки и публикации — docs/packaging.md.

Проверки разработчика

Проба регистрации из валидатора Hermes на указанном в packaging.md коммите проверяет импорт нативного плагина и команду senler. Тесты подключения проверяют OAuth-команды, сохранение существующих настроек и обработку отмены или ошибок. Проверка установщика выполняется в PowerShell с тестовой командой вместо Hermes, во временном каталоге: проверяются успешная установка, копирование логотипа, пути с пробелами, -WhatIf, сохранение старой копии и остановка при ошибках.

powershell -NoProfile -ExecutionPolicy Bypass -File .\tests\install.Tests.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File .\tests\run-relay.Tests.ps1
python -m unittest discover -s tests -p 'test_*.py'

Эти проверки не выполняют вход в Senler и не заменяют тест в настоящем Hermes.

Источники совместимости

Проверено по документации Hermes 11 октября 2026; проверенный коммит исходников указан в docs/packaging.md.

← Back to the catalog · catalog built Oct 12, 2026