Dashboard
На этой странице Веб-панель управления — это браузерный интерфейс для управления вашей установкой Hermes Agent. Вместо редактирования YAML-файлов или выполнения CLI-команд вы можете настраивать параметры, управлять API-ключами и отслеживать сеансы через чистый веб-интерфейс.
Быстрый старт¶
[code] hermes dashboard
[/code]
Это запускает локальный веб-сервер и открывает http://127.0.0.1:9119 в вашем браузере. Панель управления работает полностью на вашей машине — никакие данные не покидают localhost.
Параметры¶
| Флаг | По умолчанию | Описание |
|---|---|---|
--port |
9119 |
Порт для запуска веб-сервера |
--host |
127.0.0.1 |
Адрес привязки |
--no-open |
— | Не открывать браузер автоматически |
--insecure |
выкл. | Разрешить привязку к хостам, отличным от localhost (ОПАСНО — открывает API-ключи в сети; используйте с файрволом и надёжной аутентификацией) |
--tui |
выкл. | Включить вкладку Чата в браузере (встроенный hermes --tui через PTY/WebSocket). Можно также установить HERMES_DASHBOARD_TUI=1. |
| [code] | ||
| # Пользовательский порт | ||
| hermes dashboard --port 8080 |
# Привязка ко всем интерфейсам (с осторожностью в общих сетях)
hermes dashboard --host 0.0.0.0
# Запуск без открытия браузера
hermes dashboard --no-open
[/code]
Предварительные требования¶
Стандартная установка hermes-agent не включает HTTP-стек или PTY-помощник — это опциональные дополнения. Для веб-панели нужны FastAPI и Uvicorn (дополнение web). Для вкладки Чат также требуется ptyprocess для запуска встроенного TUI через псевдотерминал (дополнение pty на POSIX). Установите оба с помощью:
[code]
pip install 'hermes-agent[web,pty]'
[/code]
Дополнение web устанавливает FastAPI/Uvicorn; pty устанавливает ptyprocess (POSIX) или pywinpty (нативный Windows — обратите внимание, что встроенный TUI по-прежнему требует WSL). pip install hermes-agent[all] включает оба дополнения и является самым простым путём, если вам также нужны мессенджеры/голос и т.д.
Когда вы запускаете hermes dashboard без необходимых зависимостей, он сообщит, что нужно установить. Если фронтенд ещё не собран и npm доступен, он собирается автоматически при первом запуске.
Страницы¶
Состояние¶
Главная страница показывает обзор вашей установки в реальном времени: * Версия агента и дата релиза * Статус шлюза — запущен/остановлен, PID, подключённые платформы и их состояние * Активные сеансы — количество сеансов, активных за последние 5 минут * Недавние сеансы — список 20 последних сеансов с моделью, количеством сообщений, использованием токенов и превью диалога
Страница состояния автоматически обновляется каждые 5 секунд.
Чат¶
Вкладка Чат встраивает полный TUI Hermes (тот же интерфейс, который вы получаете при hermes --tui) прямо в браузер. Всё, что вы можете делать в терминальном TUI — слеш-команды, выбор модели, карточки вызова инструментов, стриминг Markdown, запросы на уточнение/sudo/одобрение, кастомизация тем — работает здесь идентично, потому что панель запускает настоящий TUI-бинарник и рендерит его ANSI-вывод через xterm.js с WebGL-рендерером для попиксельной раскладки ячеек.
Как это работает:
* /api/pty открывает WebSocket, аутентифицированный токеном сеанса панели
* Сервер запускает hermes --tui через POSIX-псевдотерминал
* Нажатия клавиш передаются в PTY; ANSI-вывод стримится обратно в браузер
* WebGL-рендерер xterm.js отрисовывает каждую ячейку на цельно-пиксельной сетке; отслеживание мыши (SGR 1006), широкие символы (Unicode 11) и символы псевдографики рендерятся нативно
* Изменение размера окна браузера изменяет размер TUI через аддон @xterm/addon-fit
Возобновление существующего сеанса: на вкладке Сеансы нажмите значок воспроизведения (▶) рядом с любым сеансом. Это перейдёт на /chat?resume=<id> и запустит TUI с --resume, загрузив полную историю.
Предварительные требования:
* Node.js (то же требование, что и для hermes --tui; TUI-сборка выполняется при первом запуске)
* ptyprocess — устанавливается дополнением pty (pip install 'hermes-agent[web,pty]', или [all] включает оба)
* POSIX-ядро (Linux, macOS или WSL). Нативный Windows Python не поддерживается — используйте WSL.
Закройте вкладку браузера — и PTY будет корректно завершён на сервере. Повторное открытие создаёт новый сеанс.
Конфиг¶
Формовый редактор для config.yaml. Все 150+ полей конфигурации автоматически обнаруживаются из DEFAULT_CONFIG и организованы по категориям с вкладками:
* model — модель по умолчанию, провайдер, базовый URL, настройки рассуждений
* terminal — бэкенд (local/docker/ssh/modal), таймаут, настройки оболочки
* display — тема оформления, прогресс инструментов, отображение резюме, настройки спиннера
* agent — макс. итераций, таймаут шлюза, уровень сервиса
* delegation — лимиты подагентов, усилия рассуждения
* memory — выбор провайдера памяти, настройки инжекции контекста
* approvals — режим одобрения опасных команд (ask/yolo/deny)
* И другие — каждая секция config.yaml имеет соответствующие поля формы
Поля с известными допустимыми значениями (бэкенд терминала, тема, режим одобрения и т.д.) отображаются как выпадающие списки. Булевы значения отображаются как переключатели. Всё остальное — текстовые поля.
Действия:
* Сохранить — записывает изменения в config.yaml немедленно
* Сбросить на умолчания — возвращает все поля к значениям по умолчанию (не сохраняется до нажатия «Сохранить»)
* Экспорт — скачивает текущий конфиг в JSON
* Импорт — загружает JSON-файл конфигурации для замены текущих значений
tip
Изменения конфига вступают в силу при следующем сеансе агента или перезапуске шлюза. Веб-панель редактирует тот же файл config.yaml, который читают hermes config set и шлюз.
API-ключи¶
Управление файлом .env, в котором хранятся API-ключи и учётные данные. Ключи сгруппированы по категориям:
* LLM Провайдеры — OpenRouter, Anthropic, OpenAI, DeepSeek и т.д.
* API-ключи инструментов — Browserbase, Firecrawl, Tavily, ElevenLabs и т.д.
* Платформы мессенджеров — токены ботов Telegram, Discord, Slack и т.д.
* Настройки агента — несекретные переменные окружения, такие как API_SERVER_ENABLED
Каждый ключ показывает: * Установлен ли он в данный момент (со скрытым превью значения) * Описание его назначения * Ссылку на страницу регистрации/получения ключа провайдера * Поле ввода для установки или обновления значения * Кнопку удаления
Редко используемые ключи по умолчанию скрыты за переключателем.
Сеансы¶
Просмотр и инспекция всех сеансов агента. Каждая строка показывает название сеанса, иконку платформы-источника (CLI, Telegram, Discord, Slack, cron), имя модели, количество сообщений, количество вызовов инструментов и время последней активности. Активные сеансы отмечены пульсирующим значком. * Поиск — полнотекстовый поиск по всем сообщениям с использованием FTS5. Результаты показывают подсвеченные фрагменты и автоматически прокручиваются к первому найденному сообщению при раскрытии. * Развернуть — нажмите на сеанс, чтобы загрузить полную историю сообщений. Сообщения раскрашены по ролям (пользователь, ассистент, система, инструмент) и отображаются как Markdown с подсветкой синтаксиса. * Вызовы инструментов — сообщения ассистента с вызовами инструментов показывают сворачиваемые блоки с именем функции и JSON-аргументами. * Удалить — удалите сеанс и его историю сообщений с помощью значка корзины.
Логи¶
Просмотр файлов логов агента, шлюза и ошибок с фильтрацией и отслеживанием в реальном времени.
* Файл — переключение между файлами логов agent, errors и gateway
* Уровень — фильтр по уровню логирования: ALL, DEBUG, INFO, WARNING или ERROR
* Компонент — фильтр по компоненту-источнику: all, gateway, agent, tools, cli или cron
* Строки — выбор количества отображаемых строк (50, 100, 200 или 500)
* Автообновление — включение отслеживания в реальном времени с опросом новых строк лога каждые 5 секунд
* Цветовая кодировка — строки лога раскрашены по уровню серьезности (красный для ошибок, желтый для предупреждений, тусклый для отладки)
Аналитика¶
Аналитика использования и стоимости, вычисленная из истории сеансов. Выберите временной период (7, 30 или 90 дней), чтобы увидеть: * Карточки сводки — всего токенов (ввод/вывод), процент попадания в кэш, общая расчётная или фактическая стоимость и общее количество сеансов со среднесуточным значением * График дневных токенов — столбчатая диаграмма с накоплением, показывающая ежедневное использование токенов ввода и вывода, с всплывающими подсказками с разбивкой и стоимостью * Таблица ежедневной разбивки — дата, количество сеансов, токены ввода, токены вывода, процент попадания в кэш и стоимость за каждый день * Разбивка по моделям — таблица, показывающая каждую использованную модель, количество сеансов, использование токенов и расчётную стоимость
Cron¶
Создание и управление запланированными cron-задачами, которые запускают промпты агента по расписанию.
* Создать — заполните имя (необязательно), промпт, cron-выражение (например, 0 9 * * *) и цель доставки (local, Telegram, Discord, Slack или email)
* Список задач — каждая задача показывает имя, превью промпта, выражение расписания, значок состояния (включено/приостановлено/ошибка), цель доставки, время последнего запуска и время следующего запуска
* Пауза / Возобновить — переключение задачи между активным и приостановленным состоянием
* Запустить сейчас — немедленное выполнение задачи вне её обычного расписания
* Удалить — окончательное удаление cron-задачи
Навыки¶
Просмотр, поиск и включение/отключение навыков и наборов инструментов. Навыки загружаются из ~/.hermes/skills/ и сгруппированы по категориям.
* Поиск — фильтрация навыков и наборов инструментов по имени, описанию или категории
* Фильтр категорий — нажмите на категории, чтобы сузить список (например, MLOps, MCP, Red Teaming, AI)
* Переключение — включение или отключение отдельных навыков с помощью переключателя. Изменения вступают в силу при следующем сеансе.
* Наборы инструментов — отдельная секция показывает встроенные наборы инструментов (файловые операции, веб-сёрфинг и т.д.) с их статусом активен/неактивен, требованиями к настройке и списком включённых инструментов
Безопасность
Веб-панель читает и записывает ваш файл .env, который содержит API-ключи и секреты. По умолчанию она привязывается к 127.0.0.1 — доступна только с вашей локальной машины. Если вы привяжетесь к 0.0.0.0, любой в вашей сети сможет просматривать и изменять ваши учётные данные. Панель не имеет собственной аутентификации.
Слеш-команда /reload¶
PR панели также добавляет слеш-команду /reload в интерактивный CLI. После изменения API-ключей через веб-панель (или редактирования .env напрямую) используйте /reload в активном CLI-сеансе, чтобы применить изменения без перезапуска:
[code]
Вы → /reload
Перезагружен .env (обновлено 3 переменных)
[/code]
Это повторно читает ~/.hermes/.env в окружение работающего процесса. Полезно, когда вы добавили новый ключ провайдера через панель и хотите использовать его немедленно.
REST API¶
Веб-панель предоставляет REST API, который используется фронтендом. Вы также можете вызывать эти конечные точки напрямую для автоматизации:
GET /api/status¶
Возвращает версию агента, статус шлюза, состояния платформ и количество активных сеансов.
GET /api/sessions¶
Возвращает 20 последних сеансов с метаданными (модель, количество токенов, временные метки, превью).
GET /api/config¶
Возвращает текущее содержимое config.yaml в формате JSON.
GET /api/config/defaults¶
Возвращает значения конфигурации по умолчанию.
GET /api/config/schema¶
Возвращает схему, описывающую каждое поле конфигурации — тип, описание, категорию и, где применимо, варианты выбора. Фронтенд использует это для отображения правильного виджета ввода для каждого поля.
PUT /api/config¶
Сохраняет новую конфигурацию. Тело: {"config": {...}}.
GET /api/env¶
Возвращает все известные переменные окружения с их статусом установлено/не установлено, скрытыми значениями, описаниями и категориями.
PUT /api/env¶
Устанавливает переменную окружения. Тело: {"key": "VAR_NAME", "value": "secret"}.
DELETE /api/env¶
Удаляет переменную окружения. Тело: {"key": "VAR_NAME"}.
GET /api/sessions/{session_id}¶
Возвращает метаданные для одного сеанса.
GET /api/sessions/{session_id}/messages¶
Возвращает полную историю сообщений для сеанса, включая вызовы инструментов и временные метки.
GET /api/sessions/search¶
Полнотекстовый поиск по содержимому сообщений. Параметр запроса: q. Возвращает ID сеансов с подсвеченными фрагментами.
DELETE /api/sessions/{session_id}¶
Удаляет сеанс и его историю сообщений.
GET /api/logs¶
Возвращает строки лога. Параметры запроса: file (agent/errors/gateway), lines (количество), level, component.
GET /api/analytics/usage¶
Возвращает аналитику использования токенов, стоимости и сеансов. Параметр запроса: days (по умолчанию 30). Ответ включает ежедневную разбивку и агрегаты по моделям.
GET /api/cron/jobs¶
Возвращает все настроенные cron-задачи с их состоянием, расписанием и историей запусков.
POST /api/cron/jobs¶
Создаёт новую cron-задачу. Тело: {"prompt": "...", "schedule": "0 9 * * *", "name": "...", "deliver": "local"}.
POST /api/cron/jobs/{job_id}/pause¶
Приостанавливает cron-задачу.
POST /api/cron/jobs/{job_id}/resume¶
Возобновляет приостановленную cron-задачу.
POST /api/cron/jobs/{job_id}/trigger¶
Немедленно запускает cron-задачу вне её расписания.
DELETE /api/cron/jobs/{job_id}¶
Удаляет cron-задачу.
GET /api/skills¶
Возвращает все навыки с их именем, описанием, категорией и статусом включения.
PUT /api/skills/toggle¶
Включает или отключает навык. Тело: {"name": "skill-name", "enabled": true}.
GET /api/tools/toolsets¶
Возвращает все наборы инструментов с их меткой, описанием, списком инструментов и статусом активен/настроен.
CORS¶
Веб-сервер ограничивает CORS только источниками localhost:
* http://localhost:9119 / http://127.0.0.1:9119 (продакшн)
* http://localhost:3000 / http://127.0.0.1:3000
* http://localhost:5173 / http://127.0.0.1:5173 (Vite dev сервер)
Если вы запускаете сервер на нестандартном порту, этот источник добавляется автоматически.
Разработка¶
Если вы вносите вклад в фронтенд веб-панели:
[code]
# Терминал 1: запуск бэкенд API
hermes dashboard --no-open
# Терминал 2: запуск Vite dev сервера с HMR
cd web/
npm install
npm run dev
[/code]
Vite dev сервер на http://localhost:5173 проксирует запросы /api к FastAPI бэкенду на http://127.0.0.1:9119.
Фронтенд построен на React 19, TypeScript, Tailwind CSS v4 и компонентах в стиле shadcn/ui. Сборки для продакшна выводятся в hermes_cli/web_dist/, который FastAPI сервер отдаёт как статическое SPA.
Автоматическая сборка при обновлении¶
Когда вы запускаете hermes update, веб-фронтенд автоматически пересобирается, если npm доступен. Это поддерживает панель в актуальном состоянии с обновлениями кода. Если npm не установлен, обновление пропускает сборку фронтенда, и hermes dashboard соберёт его при первом запуске.
Темы и плагины¶
Панель поставляется с шестью встроенными темами и может быть расширена пользовательскими темами, вкладками плагинов и бэкенд API-маршрутами — всё подключается без клонирования репозитория.
Переключайте темы на лету из панели заголовка — нажмите на иконку палитры рядом с переключателем языка. Выбор сохраняется в config.yaml в поле dashboard.theme и восстанавливается при загрузке страницы.
Встроенные темы:
Тема| Характер
---|---
Hermes Teal (default)| Тёмно-бирюзовый + кремовый, системные шрифты, комфортные отступы
Hermes Teal (Крупный) (default-large)| То же, что default, с текстом 18px и более просторными отступами
Midnight (midnight)| Глубокий сине-фиолетовый, Inter + JetBrains Mono
Ember (ember)| Тёплый малиновый + бронзовый, Spectral (с засечками) + IBM Plex Mono
Mono (mono)| Оттенки серого, IBM Plex, компактно
Cyberpunk (cyberpunk)| Неоново-зелёный на чёрном, Share Tech Mono
Rosé (rose)| Розовый + слоновая кость, Fraunces (с засечками), просторно
Чтобы создать свою тему, добавить вкладку плагина, внедриться в слоты оболочки или добавить свои REST-эндпоинты, см. Расширение панели — полное руководство охватывает:
* Схема YAML темы — палитра, типографика, расположение, ресурсы, componentStyles, colorOverrides, customCSS
* Варианты расположения — standard, cockpit, tiled
* Манифест плагина, SDK, слоты оболочки, слоты на уровне страниц (встраивание виджетов во встроенные страницы без их переопределения), бэкенд FastAPI маршруты
* Полное пошаговое руководство по комбинации темы и плагина (демо кокпита Strike Freedom)
* Обнаружение, перезагрузка и устранение неполадок
- Быстрый старт
- Предварительные требования
- Страницы
- Слеш-команда
/reload - REST API
- GET /api/status
- GET /api/sessions
- GET /api/config
- GET /api/config/defaults
- GET /api/config/schema
- PUT /api/config
- GET /api/env
- PUT /api/env
- DELETE /api/env
- GET /api/sessions/{session_id}
- GET /api/sessions/{session_id}/messages
- GET /api/sessions/search
- DELETE /api/sessions/{session_id}
- GET /api/logs
- GET /api/analytics/usage
- GET /api/cron/jobs
- POST /api/cron/jobs
- POST /api/cron/jobs/{job_id}/pause
- POST /api/cron/jobs/{job_id}/resume
- POST /api/cron/jobs/{job_id}/trigger
- DELETE /api/cron/jobs/{job_id}
- GET /api/skills
- PUT /api/skills/toggle
- GET /api/tools/toolsets
- CORS
- Разработка
- Автоматическая сборка при обновлении
- Темы и плагины