Skip to content

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镜像即可完成配置,零额外配置成本。

Architecture

技术架构

组件详情
编程语言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 stop

Docker部署:

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代理在对话间遗忘一切的用户的痛点。积极的维护节奏表明,这并非一个被遗弃的副项目,而是一款正在实时打磨和进化的工具。

热点项目数据来自 GitHub API,实时更新