Hermes Studio English
面向 Hermes Agent 的桌面应用、本地运行时和 Web 控制台。
聊天、模型与 Profile 管理、平台渠道接入、任务自动化、
文件查看、Coding Agent 和本地运行环境都在一个界面中完成。
下载 Hermes Studio 桌面版
·
npm install -g hermes-web-ui && hermes-web-ui start

移动端
| 模块 | Hermes Studio 能做什么 |
|---|---|
| Agent 聊天 | 运行 Hermes Agent 对话,支持流式回复、工具调用轨迹、文件上传下载和本地持久化会话。 |
| 本地控制台 | 在一个仪表盘中管理 Profile、Provider、模型、凭证、记忆、技能、插件、日志和运行时设置。 |
| 自动化 | 围绕同一套 Hermes Profile 配置平台渠道、Cron 任务、Kanban 任务、群聊房间和 MCP Server。 |
| 工作区工具 | 提供文件浏览器、Web 终端、语音输入输出、Coding Agent、设备发现和性能视图。 |
| 分发形态 | 支持 Windows/macOS/Linux 桌面应用、npm CLI 包和 Docker 镜像。 |
/chat-run 实时流式更新;聊天运行通过 Hermes agent bridge 执行在一个页面统一配置 8 个平台:
| 平台 | 功能 |
|---|---|
| Telegram | Bot Token、提及控制、表情回应、自由回复聊天 |
| Discord | Bot Token、提及、自动线程、表情回应、频道白名单/黑名单 |
| Slack | Bot Token、提及控制、Bot 消息处理 |
| 启用/禁用、提及控制、提及模式 | |
| Matrix | Access Token、Homeserver、自动线程、私信提及线程 |
| 飞书 | App ID / Secret、提及控制 |
| 微信 | 扫码登录(浏览器扫码,自动保存凭证) |
| 企业微信 | Bot ID / Secret |
~/.hermes/.env~/.hermes/config.yaml~/.hermes/auth.json)/v1/models)/v4).tar.gz)hermes-studio MCP Server 和 Profile 自动注入AUTH_TOKEN 环境变量设置)admin / 123456;登录后会提示尽快修改默认账户和密码CLI 维护命令:
# 删除持久化的登录 IP 锁记录
hermes-web-ui clear-login-locks
# 删除登录锁并重启正在运行的 Web UI 进程
hermes-web-ui clear-login-locks --restart
# 创建或重置默认超级管理员登录名/密码为 admin / 123456
hermes-web-ui reset-default-login
clear-login-locks 会删除 ${HERMES_WEB_UI_HOME:-~/.hermes-web-ui}/.login-lock.json。如果服务正在运行,需要重启服务才能清理内存中的锁定状态。reset-default-login 会更新 Web UI 账户数据库;如果已存在 admin 用户,则会把密码重置为 123456,并启用为超级管理员账户。
/audio/speech、自定义 OpenAI 兼容 TTS 端点、MiMo。.mp3/.wav,最大 10 MB),并可选择鉴权请求头模式(Authorization、api-key 或两者同时发送)。/api/hermes/tts/synthesize,停止/暂停状态一致,并会在可行时中断进行中的 fetch。docs/voice-dialogue.md。http/https 端点,不能指向 localhost 或私网。latest 资源从 GitHub Releases 下载最新的 Hermes Studio 桌面安装包。
桌面版会发布 macOS、Windows 和 Linux 构建;适用时会区分不同 CPU 架构。 桌面应用内置 Web UI 运行时,Hermes Agent 数据会保存到原生 Hermes 目录:
%LOCALAPPDATA%\hermes(找不到时回退到 %APPDATA%\hermes)~/.hermes桌面壳自身的 Web UI 状态会单独保存到 ~/.hermes-web-ui,除非设置了
HERMES_WEB_UI_HOME。
打包后的桌面应用启动后,会安装受管命令 shim,避免桌面应用、内置 Hermes Agent CLI 和内置 Web UI CLI 的命令互相冲突:
| 命令 | 说明 |
|---|---|
hermes-studio |
打开 Hermes Studio 桌面应用 |
hermes-studio cli ... |
运行内置 Hermes Agent CLI |
hermes-studio web ... |
运行内置 hermes-web-ui 命令 |
hermes-studio -h |
显示 wrapper 帮助 |
hermes-studio-mcp |
运行受管 Web UI MCP bridge |
使用 hermes-studio cli -h 查看 Hermes Agent CLI 帮助,使用
hermes-studio web -h 查看 Web UI CLI 帮助。
桌面自动更新会优先读取 https://download.ekkolearnai.com/latest。
如果该端点不可用,更新器会回退到
https://github.com/EKKOLearnAI/hermes-studio/releases/latest/download。
npm install -g hermes-web-ui
hermes-web-ui start
打开 http://localhost:8648
单容器部署,内置 Hermes Agent 运行时:
# 使用预构建镜像(推荐)
WEBUI_IMAGE=ekkoye8888/hermes-web-ui docker compose up -d
# 或从源码构建
docker compose up -d --build
docker compose logs -f hermes-webui
打开 http://localhost:6060
./hermes_data./hermes_data/hermes-web-ui/.tokendocker-compose.yml 环境变量驱动更详细的说明与排错见:docs/docker.md
Web UI 启动后端聊天能力时,会优先使用包含 run_agent.py 的源码目录,例如
~/.hermes/hermes-agent。如果找不到源码目录,会退回到已安装 hermes 命令所使用
的 Python 环境,再退到系统 Python。因此源码安装和 pip install hermes-agent 这类
包安装方式都可以兼容。
这些变量用于配置 Hermes Web UI、本地 Hermes runtime 集成以及开发/预览辅助能力。Provider API Key 和 Hermes Agent 相关设置通常仍通过 Hermes profile 管理;这里列出的变量是进程级覆盖项。
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
8648 |
Web UI 监听端口。 |
BIND_HOST |
0.0.0.0 |
Web UI 绑定地址。如需 IPv6,可显式设置为 ::。 |
HERMES_WEB_UI_HOME |
~/.hermes-web-ui |
Web UI 数据目录,用于认证 token、登录凭据、日志、数据库和默认上传目录。兼容支持 HERMES_WEBUI_STATE_DIR 作为别名。 |
HERMES_WEBUI_STATE_DIR |
未设置 | HERMES_WEB_UI_HOME 的兼容别名。 |
HERMES_WEB_UI_DISABLE_MCP_AUTOINJECT |
未设置 | 关闭启动时向 Hermes profile 配置自动注入托管的 hermes-studio MCP server。 |
HERMES_WEB_UI_ALLOW_TRANSIENT_MCP_AUTOINJECT |
未设置 | 当 HERMES_WEB_UI_HOME 位于临时目录(例如 Version Preview runtime)时,仍允许托管 MCP 自动注入。 |
UPLOAD_DIR |
$HERMES_WEB_UI_HOME/upload |
覆盖上传根目录。文件会保存在按 Profile 隔离的子目录下。 |
CORS_ORIGINS |
仅同 host | HTTP、Socket.IO、WebSocket 跨源 allowlist,支持逗号或空格分隔。只有明确需要旧版 wildcard CORS 时才设置为 *。 |
AUTH_TOKEN |
自动生成 | 显式指定 bearer token。未设置时,Web UI 会在 HERMES_WEB_UI_HOME 下自动生成。 |
AUTH_JWT_SECRET |
AUTH_TOKEN |
用户名/密码会话的 JWT 签名密钥覆盖。 |
HERMES_WEB_UI_AUTH_JWT_EXPIRES_IN |
30d |
用户名/密码会话 JWT 有效期。支持秒数或 s/m/h/d 后缀,例如 12h 或 7d。 |
PROFILE |
default |
启动/默认 Hermes profile。运行时请求使用前端当前选择且当前账号有权限访问的 Profile。 |
LOG_LEVEL |
info |
Server 日志级别。 |
BRIDGE_LOG_LEVEL |
$LOG_LEVEL 或 info |
Bridge 日志级别。 |
MAX_DOWNLOAD_SIZE |
200MB |
最大文件下载大小。 |
MAX_EDIT_SIZE |
10MB |
最大可编辑文件大小。 |
WORKSPACE_BASE |
当前用户 Home 目录 | Workspace 浏览根目录。 |
HERMES_HOME |
平台默认值 | Hermes 数据目录。Windows 使用 %LOCALAPPDATA%\hermes;macOS/Linux 使用 ~/.hermes。 |
HERMES_BIN |
hermes |
自定义 Hermes CLI 二进制路径。 |
HERMES_AGENT_ROOT |
自动发现 | 包含 run_agent.py 的 Hermes Agent 源码目录。 |
HERMES_AGENT_BRIDGE_PYTHON |
自动发现 | 用于启动 agent bridge 的 Python 解释器。 |
HERMES_AGENT_BRIDGE_UV |
自动发现 | 可用时用于启动 agent bridge 的 uv 可执行文件。 |
UV |
自动发现 | uv 可执行文件 fallback。 |
PYTHON |
自动发现 | agent bridge 的 Python 可执行文件 fallback。 |
HERMES_AGENT_BRIDGE_ENDPOINT |
平台默认值 | Agent bridge broker endpoint。Windows 默认 tcp://127.0.0.1:18765;macOS/Linux 默认 ipc:///tmp/hermes-agent-bridge.sock。 |
HERMES_AGENT_BRIDGE_TIMEOUT_MS |
120000 |
Node 请求 bridge broker 的响应超时。 |
HERMES_AGENT_BRIDGE_CONNECT_RETRY_MS |
5000 |
连接 bridge socket 失败时的短重试窗口。 |
HERMES_AGENT_BRIDGE_STARTUP_TIMEOUT_MS |
120000 |
等待 Python bridge ready 的超时。 |
HERMES_AGENT_BRIDGE_STOP_ON_SHUTDOWN |
开启 | Web UI 关闭和重启时是否停止 bridge broker;设为 0、false、no 或 off 才会在重启时保留 broker。 |
HERMES_AGENT_BRIDGE_AUTO_RESTART |
开启 | bridge broker 意外退出后是否自动重启;设为 0、false、no 或 off 可关闭。 |
HERMES_AGENT_BRIDGE_RESTART_DELAY_MS |
1000 |
bridge 自动重启退避的基础延迟。 |
HERMES_AGENT_BRIDGE_PLATFORM |
cli |
传给 Hermes Agent 的 platform 标识。 |
HERMES_AGENT_BRIDGE_WORKER_TRANSPORT |
平台默认值 | Profile worker transport。设为 tcp 使用 loopback TCP;设为 ipc/unix 使用 Unix domain socket;默认 Windows TCP、macOS/Linux IPC。 |
HERMES_AGENT_BRIDGE_WORKER_PORT_BASE |
18780 |
TCP worker endpoint 起始端口。 |
HERMES_BRIDGE_PROVIDER |
profile/默认值 | bridge 运行时的 provider 覆盖。 |
HERMES_BRIDGE_TOOLSETS |
profile/默认值 | bridge 运行时的 toolset 覆盖。 |
HERMES_BRIDGE_MAX_TURNS |
profile/默认值 | bridge 运行时的最大轮数覆盖。 |
HERMES_BRIDGE_SUPPRESS_PLATFORM_HINT |
cli |
控制传给 Hermes Agent 的 bridge platform hint suppression。 |
HERMES_OPENROUTER_APP_REFERER |
https://hermes-studio.ai |
bridge 运行发送给 OpenRouter 的 attribution referer。 |
HERMES_OPENROUTER_APP_TITLE |
Hermes Web UI |
bridge 运行发送给 OpenRouter 的 attribution title。 |
HERMES_OPENROUTER_APP_CATEGORIES |
cli-agent,personal-agent |
bridge 运行发送给 OpenRouter 的 attribution categories。 |
HERMES_WEB_UI_MANAGED_GATEWAY |
默认开启 | 控制 Web UI 托管 Hermes gateway 进程;设为 0、false、no 或 off 时改用 hermes gateway start。 |
HERMES_WEB_UI_DISABLE_GATEWAY_AUTOSTART |
未设置 | 跳过启动时的 gateway 检查/自动启动;dashboard-only 部署中如果由其它服务管理 Hermes gateway,可设为 1、true、yes 或 on。 |
HERMES_WEB_UI_DISABLE_SKILL_INJECTION |
未设置 | 跳过启动时的内置 skill 注入;如果内置 skills 由 Hermes Web UI 外部管理,可设为 1、true、yes 或 on。启用注入时,Web UI 只更新自己此前安装的 skills 或内容完全相同的既有内置副本;本地修改和用户拥有的同名 skills 会跳过。 |
HERMES_WEB_UI_STOP_GATEWAYS_ON_SHUTDOWN |
生产环境默认开启 | Web UI 关闭时是否同时停止托管的 gateway 进程;设为 0 或 false 可让 gateway 分离运行。 |
GATEWAY_HOST |
127.0.0.1 |
旧 gateway 兼容配置中写入 profile 的默认 gateway host。 |
HERMES_WEB_UI_PREVIEW_REPO |
package repository | Version Preview 使用的 GitHub 仓库。 |
HERMES_WEB_UI_PREVIEW_AGENT_BRIDGE_TRANSPORT |
平台默认值 | Version Preview broker transport。设为 tcp 可让预览环境在 macOS/Linux 上也使用 loopback TCP;未设置时会跟随 HERMES_AGENT_BRIDGE_WORKER_TRANSPORT=tcp。 |
HERMES_WEB_UI_PREVIEW_AGENT_BRIDGE_ENDPOINT |
隔离的预览 endpoint | 直接覆盖 Version Preview 的 broker endpoint。 |
HERMES_WEB_UI_BACKEND_PORT |
8648 |
Vite dev proxy 使用的后端端口。 |
HERMES_WEB_UI_FRONTEND_PORT |
8649 |
前端 Vite dev server 端口。 |
| 命令 | 说明 |
|---|---|
hermes-web-ui start |
后台启动(守护进程模式) |
hermes-web-ui start --port 9000 |
自定义端口启动 |
hermes-web-ui stop |
停止后台进程 |
hermes-web-ui restart |
重启后台进程;默认会关闭 bridge broker |
hermes-web-ui status |
查看运行状态 |
hermes-web-ui update |
更新到最新版本并重启 |
hermes-web-ui upgrade |
update 的别名 |
hermes-web-ui -v |
显示版本号 |
hermes-web-ui -h |
显示帮助信息 |
restart、update 和 upgrade 默认会停止 Agent Bridge broker,避免重启或更新后的服务复用旧 Python bridge 进程。只有明确希望保留 broker 和正在运行的 bridge session 时,才在重启前设置 HERMES_AGENT_BRIDGE_STOP_ON_SHUTDOWN=0。
update / upgrade 会先尝试执行 npm cache clean --force,再执行 npm install -g hermes-web-ui@latest 并重启。缓存清理是 best-effort;如果清理失败,只提示 warning,升级安装会继续执行。
启动时 BFF 服务器会自动:
/chat-run 使用的 Hermes agent bridgegit clone https://github.com/EKKOLearnAI/hermes-studio.git
cd hermes-web-ui
npm install
npm run dev
npm run build # 构建输出到 dist/
项目开发
$ claude mcp add hermes-studio \
-- python -m otcore.mcp_server <graph>