nesquena/hermes-webui
⭐ 6,485 · Python · GitHub 仓库
Hermes WebUI:通过网页或手机使用Hermes Agent的最佳方式!
agent ai-agents hermes hermes-agent nous-research
一句话总结
一款自托管AI代理Web UI,具备持久化记忆、离线调度功能,并完整实现了CLI的同等体验。
🔥 核心能力与独特卖点
- 持久化记忆与自我进化技能 — 彻底解决AI代理在会话间遗忘一切的根本痛点。自动构建用户画像,保留代理笔记,并根据经验自动编写可复用的操作流程。无需市场或插件生态,代理会随时间推移自我进化。
- 自托管调度系统 — 即使关闭浏览器,Cron任务也能照常执行。结果可推送至Telegram、Discord、Slack、Signal、电子邮件等10余个平台。这使代理从聊天伴侣蜕变为真正的自主后台工作者。
- 供应商无关架构 — 不受限于单一LLM提供商。支持OpenAI、Anthropic、Google、DeepSeek、OpenRouter等。甚至可将繁重的编码任务委托给Claude Code或Codex等专业代理,充当编排层。
- 三面板Web UI与编辑器 — 左侧边栏管理会话,中央聊天面板,右侧工作区文件浏览器。编辑器底部包含模型/配置/工作区控制,以及显示实时Token使用量的环形上下文指示器。无需构建步骤、无需框架、无需打包工具——仅需Python和原生JavaScript。
- Docker与多容器部署 — 提供amd64和arm64预构建镜像。可选择单容器、双容器(代理+WebUI)或三容器(代理+仪表盘+WebUI)部署方案。支持SSH隧道实现安全远程访问。
独特卖点: Hermes WebUI通过轻量级深色主题Web界面,实现了与Hermes CLI体验的1:1完全对等,只需运行引导脚本或拉取Docker镜像即可完成配置,零额外配置成本。

技术架构
| 组件 | 详情 |
|---|---|
| 编程语言 | Python(后端),原生JavaScript(前端) |
| 构建系统 | 无需——无打包工具、无框架、无构建步骤 |
| 部署方式 | 引导脚本(bootstrap.py)、Docker(GHCR发布镜像)或手动start.sh |
| 存储方案 | 绑定挂载或命名卷,持久化状态存储于~/.hermes |
| 进程管理 | ctl.sh脚本控制守护进程(启动、停止、状态、日志) |
| 网络配置 | 支持SSH隧道;暴露至localhost之外时需密码保护 |
| 容器配置 | 多容器编排文件,支持代理、仪表盘、WebUI分离部署 |
| 架构设计 | 三面板布局(会话、聊天、工作区),配编辑器底部栏和Hermes控制中心启动器 |
快速入门指南
引导安装(Linux、macOS或WSL2):
bash
git clone https://github.com/nesquena/hermes-webui.git hermes-webui
cd hermes-webui
python3 bootstrap.py启动服务器:
bash
./start.sh使用ctl.sh管理守护进程:
bash
./ctl.sh start # 后台守护进程,PID存储于~/.hermes/webui.pid
./ctl.sh status # 显示PID、运行时长、绑定主机/端口、日志路径、/health状态
./ctl.sh logs --lines 100 # 查看~/.hermes/webui.log最后100行
./ctl.sh restart
./ctl.sh stopDocker部署:
bash
git clone https://github.com/nesquena/hermes-webui
cd hermes-webui
cp .env.docker.example .env
# 如果主机UID不是1000(例如macOS的UID从501开始),请编辑.env文件
docker compose up -d
# 打开 http://localhost:8787添加密码保护:
bash
echo "HERMES_WEBUI_PASSWORD=请替换为强密码" >> .env
docker compose up -d --force-recreate手动Docker运行:
bash
docker pull ghcr.io/nesquena/hermes-webui:latest
docker run -d \
-e WANTED_UID=$(id -u) -e WANTED_GID=$(id -g) \
-v ~/.hermes:/home/hermeswebui/.hermes \
-e HERMES_WEBUI_STATE_DIR=/home/hermeswebui/.hermes/webui \
-v ~/workspace:/workspace \
-p 127.0.0.1:8787:8787 \
ghcr.io/nesquena/hermes-webui:latest优势、局限与使用场景
优势
- 完整CLI对等 — Hermes Agent的所有功能均可在Web UI中使用,无功能缺失
- 零模型配置 — 供应商无关;自带OpenAI、Anthropic、Google等API密钥即可
- 自托管隐私 — 所有数据保留在自有基础设施中
- 持久化记忆 — 代理能记住你的身份、偏好和操作流程,跨会话不丢失
- 离线调度 — Cron任务无需实时监控即可执行
- 10+消息平台 — 结果可推送至Telegram、Discord、Slack、Signal、电子邮件等
- 无需构建步骤 — Python + 原生JavaScript,即刻启动
局限
- 无原生Windows引导 — 引导过程需要Linux、macOS或WSL2环境
- 双容器限制 — 工具在WebUI容器中运行而非代理容器,可能导致路径或权限问题
- 外部访问需密码 — 在暴露端口至localhost之外前,必须设置
HERMES_WEBUI_PASSWORD - 原生JS前端 — 无React/Vue支持,UI定制化生态支持有限
不适合人群
- 仅使用Windows且无法或不愿使用WSL2的用户
- 希望使用托管式云端代理、无需管理基础设施的用户
- 需要多用户认证和基于角色的访问控制的团队——本工具为单用户设计
- 期待插件生态或应用市场的用户——技能需自行编写,非下载获取
理想使用场景
- 独立开发者,需要持久化、全天候在线的AI编码助手,并具备工作区访问权限
- 高级用户,需要定时任务(爬取、监控、报告生成)并推送至手机
- 注重隐私的用户,希望完全掌控代理数据和模型选择
- Hermes CLI用户,希望获得移动端访问或更直观的界面,同时不损失功能
- 自托管爱好者,在家庭实验室环境中运行,希望编排多个AI代理
社区与活跃度
Hermes WebUI在GitHub上拥有6,485颗星标,彰显了自托管AI代理领域的强烈关注度。该项目保持积极维护,最新更新日期为2026年5月10日,展现出持续的发展动力。这个项目显然引起了开发者社区的共鸣——持久化记忆、离线调度和供应商无关设计的组合,精准击中了那些厌倦了AI代理在对话间遗忘一切的用户的痛点。积极的维护节奏表明,这并非一个被遗弃的副项目,而是一款正在实时打磨和进化的工具。