A full-featured desktop app and web dashboard for Hermes Agent. Manage AI chat sessions, monitor usage & costs, configure platform channels, schedule cron jobs, browse skills — all from a clean, responsive web interface. Unified configuration for 8 platforms in one page: hermes-web-ui clear-login-locks --restart
/chat-run; chat runs execute through the Hermes agent bridgeUnified configuration for 8 platforms in one page:
| Platform | Features | | ------------- | ---------------------------------------------------------------------- | | Telegram | Bot token, mention control, reactions, free-response chats | | Discord | Bot token, mention, auto-thread, reactions, channel allow/ignore lists | | Slack | Bot token, mention control, bot message handling | | WhatsApp | Enable/disable, mention control, mention patterns | | Matrix | Access token, homeserver, auto-thread, DM mention threads | | Feishu (Lark) | App ID / Secret, mention control | | WeChat | QR code login (scan in browser, auto-save credentials) | | WeCom | Bot ID / Secret |
~/.hermes/.env~/.hermes/config.yaml~/.hermes/auth.json)/v1/models)/v4).tar.gz)AUTH_TOKEN env var)admin / 123456; users are prompted after login to change the default username and passwordCLI maintenance commands:
# Delete persisted login IP lock records
hermes-web-ui clear-login-locks
# Delete login locks and restart the running Web UI process
hermes-web-ui clear-login-locks --restart
# Create or reset the default super administrator login to admin / 123456
hermes-web-ui reset-default-login
clear-login-locks removes ${HERMES_WEB_UI_HOME:-~/.hermes-web-ui}/.login-lock.json. If the server is running, restart it to clear in-memory lock state. reset-default-login updates the Web UI account database; if an admin user already exists, its password is reset to 123456 and the account is enabled as a super administrator.
Download the latest Hermes Studio desktop installer from GitHub Releases.
Desktop builds are published for macOS, Windows, and Linux, with separate architecture assets where applicable. The desktop app bundles the Web UI runtime and stores Hermes Agent data in the native Hermes location:
%LOCALAPPDATA%\hermes (falls back to %APPDATA%\hermes)~/.hermesThe desktop wrapper stores its own Web UI state separately in
~/.hermes-web-ui unless HERMES_WEB_UI_HOME is set.
npm install -g hermes-web-ui
hermes-web-ui start
Open http://localhost:8648
Single-container deployment with integrated Hermes Agent:
# Use pre-built image (Recommended)
WEBUI_IMAGE=ekkoye8888/hermes-web-ui docker compose up -d
# Or build from source
docker compose up -d --build
docker compose logs -f hermes-webui
Open http://localhost:6060
./hermes_data./hermes_data/hermes-web-ui/.tokendocker-compose.ymlFor detailed notes and troubleshooting, see docs/docker.md.
When Web UI starts backend chat features, it prefers a source checkout that
contains run_agent.py such as ~/.hermes/hermes-agent. If no source checkout
is found, it falls back to the Python environment used by the installed
hermes command, then the system Python. This supports both source installs
and package installs such as pip install hermes-agent.
These variables configure Hermes Web UI, its local Hermes runtime integration, and development/preview helpers. Provider API keys and Hermes Agent settings are normally managed through Hermes profiles; environment variables here are process-level overrides.
| Variable | Default | Description |
| --- | --- | --- |
| PORT | 8648 | Web UI listen port. |
| BIND_HOST | 0.0.0.0 | Web UI bind host. Set :: explicitly for IPv6. |
| HERMES_WEB_UI_HOME | ~/.hermes-web-ui | Web UI data home for auth token, credentials, logs, DB, and default uploads. HERMES_WEBUI_STATE_DIR is also supported as a compatibility alias. |
| HERMES_WEBUI_STATE_DIR | unset | Compatibility alias for HERMES_WEB_UI_HOME. |
| UPLOAD_DIR | $HERMES_WEB_UI_HOME/upload | Upload root override. Files are stored below profile-scoped subdirectories. |
| CORS_ORIGINS | * | Koa CORS origin setting. |
| AUTH_TOKEN | auto-generated | Explicit bearer token. If unset, Web UI creates one under HERMES_WEB_UI_HOME. |
| AUTH_JWT_SECRET | AUTH_TOKEN | JWT signing secret override for username/password sessions. |
| PROFILE | default | Startup/default Hermes profile. Runtime requests use the profile selected by the frontend and authorized for the current account. |
| LOG_LEVEL | info | Server log level. |
| BRIDGE_LOG_LEVEL | $LOG_LEVEL or info | Bridge log level. |
| MAX_DOWNLOAD_SIZE | 200MB | Maximum file download size. |
| MAX_EDIT_SIZE | 10MB | Maximum editable file size. |
| WORKSPACE_BASE | /opt/data/workspace | Base directory for workspace browsing. |
| HERMES_HOME | platform default | Hermes data home. Windows uses %LOCALAPPDATA%\hermes; macOS/Linux uses ~/.hermes. |
| HERMES_BIN | hermes | Custom Hermes CLI binary path. |
| HERMES_AGENT_ROOT | auto-discovered | Hermes Agent source checkout containing run_agent.py. |
| HERMES_AGENT_BRIDGE_PYTHON | auto-discovered | Python interpreter used to launch the agent bridge. |
| HERMES_AGENT_BRIDGE_UV | auto-discovered | uv executable used to launch the agent bridge when available. |
| UV | auto-discovered | Fallback uv executable path. |
| PYTHON | auto-discovered | Fallback Python executable for the agent bridge. |
| HERMES_AGENT_BRIDGE_ENDPOINT | platform default | Agent bridge broker endpoint. Windows defaults to tcp://127.0.0.1:18765; macOS/Linux defaults to ipc:///tmp/hermes-agent-bridge.sock. |
| HERMES_AGENT_BRIDGE_TIMEOUT_MS | 120000 | Timeout for Node requests to the bridge broker. |
| HERMES_AGENT_BRIDGE_CONNECT_RETRY_MS | 5000 | Short retry window for connecting to the bridge socket. |
| HERMES_AGENT_BRIDGE_STARTUP_TIMEOUT_MS | 120000 | Timeout while waiting for the Python bridge to become ready. |
| HERMES_AGENT_BRIDGE_AUTO_RESTART | enabled | Auto-restart the bridge broker after unexpected exit. Set 0, false, no, or off to disable. |
| HERMES_AGENT_BRIDGE_RESTART_DELAY_MS | 1000 | Base delay for bridge auto-restart backoff. |
| HERMES_AGENT_BRIDGE_PLATFORM | cli | Platform identity passed to Hermes Agent. |
| HERMES_AGENT_BRIDGE_WORKER_TRANSPORT | platform default | Profile worker transport. Set tcp for loopback TCP or ipc/unix for Unix domain sockets; defaults to Windows TCP and macOS/Linux IPC. |
| HERMES_AGENT_BRIDGE_WORKER_PORT_BASE | 18780 | Base port for TCP worker endpoints. |
| HERMES_BRIDGE_PROVIDER | profile/default | Provider override for bridge runs. |
| HERMES_BRIDGE_TOOLSETS | profile/default | Toolset override for bridge runs. |
| HERMES_BRIDGE_MAX_TURNS | profile/default | Maximum turn override for bridge runs. |
| HERMES_BRIDGE_SUPPRESS_PLATFORM_HINT | cli | Controls bridge platform hint suppression passed to Hermes Agent. |
| HERMES_OPENROUTER_APP_REFERER | https://hermes-studio.ai | OpenRouter attribution referer sent by bridge runs. |
| HERMES_OPENROUTER_APP_TITLE | Hermes Web UI | OpenRouter attribution title sent by bridge runs. |
| HERMES_OPENROUTER_APP_CATEGORIES | cli-agent,personal-agent | OpenRouter attribution categories sent by bridge runs. |
| HERMES_WEB_UI_MANAGED_GATEWAY | platform/runtime dependent | Force managed legacy gateway process handling. Set 1, true, yes, or on to enable. |
| HERMES_WEB_UI_DISABLE_GATEWAY_AUTOSTART | unset | Skip startup gateway checks/autostart. Set 1, true, yes, or on for dashboard-only deployments where another service owns Hermes gateway lifecycle. |
| HERMES_WEB_UI_DISABLE_SKILL_INJECTION | unset | Skip startup bundled skill injection. Set 1, true, yes, or on when bundled skills are managed outside Web UI or target skill directories must not be overwritten. |
| HERMES_WEB_UI_STOP_GATEWAYS_ON_SHUTDOWN | enabled in production | Controls whether Web UI shutdown also stops managed gateway processes. Set 0 or false to detach them. |
| GATEWAY_HOST | 127.0.0.1 | Default gateway host written into profile config for legacy gateway compatibility. |
| HERMES_WEB_UI_PREVIEW_REPO | package repository | GitHub repository used by Version Preview. |
| HERMES_WEB_UI_PREVIEW_AGENT_BRIDGE_TRANSPORT | platform default | Version Preview broker transport. Set tcp to use loopback TCP for Preview on macOS/Linux; when unset, Preview follows HERMES_AGENT_BRIDGE_WORKER_TRANSPORT=tcp. |
| HERMES_WEB_UI_PREVIEW_AGENT_BRIDGE_ENDPOINT | isolated preview endpoint | Directly overrides the Version Preview broker endpoint. |
| HERMES_WEB_UI_BACKEND_PORT | 8648 | Backend port used by the Vite dev proxy. |
| HERMES_WEB_UI_FRONTEND_PORT | 8649 | Frontend Vite dev server port. |
| Command | Description |
| --------------------------------- | ---------------------------------- |
| hermes-web-ui start | Start in background (daemon mode) |
| hermes-web-ui start --port 9000 | Start on custom port |
| hermes-web-ui stop | Stop background process |
| hermes-web-ui restart | Restart background process |
| hermes-web-ui status | Check if running |
| hermes-web-ui update | Update to latest version & restart |
| hermes-web-ui upgrade | Alias for update |
| hermes-web-ui -v | Show version number |
| hermes-web-ui -h | Show help message |
update / upgrade first attempt npm cache clean --force, then run npm install -g hermes-web-ui@latest and restart. Cache cleanup is best-effort; if it fails, the updater continues with the install.
On startup the BFF server automatically:
/chat-rungit clone https://github.com/EKKOLearnAI/hermes-web-ui.git
cd hermes-web-ui
npm install
npm run dev
npm run build # outputs to dist/
See DEVELOPMENT.md for project development guidelines.
Browser → BFF (Koa, :8648) → Socket.IO /chat-run
↓
Hermes agent bridge → Hermes Agent runtime
↓
Hermes CLI / profiles
profile config.yaml (channel/provider behavior)
profile auth.json (credential pool)
Tencent iLink API (WeChat QR login)
The frontend is designed with multi-agent extensibility — all Hermes-specific code is namespaced under hermes/ directories (API, components, views, stores), making it straightforward to add new agent integrations alongside.
The BFF layer handles Socket.IO chat streaming, the Hermes agent bridge, profile-aware file upload and path-based download (multi-backend: local/Docker/SSH/Singularity), session CRUD, account- and profile-scoped management, config/credential management, WeChat QR login, model discovery, skills/memory management, log reading, and static file serving.
Frontend: Vue 3 + TypeScript + Vite + Naive UI + Pinia + Vue Router + vue-i18n + SCSS + markdown-it + highlight.js
Backend: Koa 2 (BFF server) + node-pty (web terminal)
Hermes WebUI – The Missing Web Interface for Hermes Agent (Full Setup & Features)
TechkySkills · 4K views
Hermes Agent WEB UI is INSANE 🤯 (FREE!)
Julian Goldie SEO · 34K views
Hermes Agent Web Dashboard Themes + Plugins: I Built My Own Plugin!
Tonbi's AI Garage · 10K views
agent
Give any AI agent full control over Word, Excel, and PowerPoint — in one line of code. Open-source. Single binary. No Office installation. No dependencies. Works everywhere. Built-in agent-friendly rendering engine — agents can see what they create, no Office required. Render .docx / .xlsx / .pptx to HTML or PNG, closing the render → look → fix loop anywhere the binary runs.
agent
Open-source AI Agent that autonomously writes, audits, and revises novels — with human review gates that keep you in control. Supports LitRPG, Progression Fantasy, Isekai, Romantasy, Sci-Fi, and more. Continuation, spinoff, fanfic, and style imitation workflows built in. InkOS Studio 2.0 is here! — run inkos to launch the local web workbench. Book management, chapter review & editing, real-time writing progress, market radar, analytics, AI detection, style analysis, genre management, daemon control, truth file editing — everything the CLI does, now visual. InkOS TUI is here! — run inkos tui to launch a full-screen interactive dashboard. Conversational creation, natural-language book operations, slash command autocomplete, themed animations — TUI, Studio, and OpenClaw share the same inter
agent
Learn Harness Engineering is a course dedicated to the engineering of AI coding agents. We have deeply studied and synthesized the most advanced Harness Engineering theories and practices in the industry. Our core references include: The repository now includes a PDF build pipeline for the course content. There's a hard truth most people learn the hard way: the strongest model in the world will still fail on real engineering tasks if you don't build a proper environment around it.
agent
A curated collection of production-ready Agent Skills for Claude Code, Cursor, Codex, and other AI coding agents. Category: Web Video / Presentation Engineering Best for: turning scripts, articles, lessons, product demos, and talks into click-driven 16:9 web presentations that can be screen-recorded as cinematic videos. web-video-presentation builds record-ready Vite + React + TypeScript presentations that behave like video production surfaces. The workflow turns raw articles into narration scripts, maps script beats to full-screen scenes, pauses at required checkpoints, and can optionally synthesize narration audio after the visual outline is approved.