Chat-first, secure, self-hosted frontend for Hermes Agent. Owner-first by default. Public-deployable when you want.
Hermes Agent WebUI puts conversations first. It focuses on the flow you actually use: sessions, chat, and a workspace that feels obvious instead of heavy.
Why it matters now:
- Chat-first UX instead of control-panel-first UI.
- Owner-first security: sensible defaults, fewer knobs, safer public deploys.
- Standalone and modern: a clean frontend that invites contributors and fast iteration.
- Plays well with Hermes core: extends it, not replaces it.
Why not just use X?
- Built-in admin surfaces are powerful but not chat-first for daily use.
- Open WebUI is great for LLMs; this targets Hermes-specific workflows (sessions, approvals, run reviews) with native integration.
- Community WebUIs exist; this one prioritizes safe public deployment and a contributor-friendly stack from day one.
Already real:
- session list and session hydration path
- chat-oriented sessions surface
- config/env/cron/skills integration path
- Hermes-backed MVP adapter for session/chat flows
- roadmap / architecture / devlog / CI discipline
Still actively being transformed:
- app shell is being refocused from control-center framing to chat-first product framing
- public-safe auth and deployment flow
- stronger workspace panel and runtime stream UX
- better GitHub presentation with screenshots, demo polish, and contributor onboarding
Primary product priorities:
- chat-first session workflow
- workspace-aware Hermes usage
- owner-first secure deployment
- contributor-friendly modern stack
- fast iteration in a standalone repo, with stable pieces upstreamed later when proven
Run in Docker:
docker build -t hermes-agent-webui .
docker run --rm -p 8088:80 hermes-agent-webuiOr with Compose:
docker compose up --buildGHCR container publishing is wired through GitHub Actions.
npm install
npm run backend:mvp
npm run devBy default Vite proxies /api and /v1 to http://127.0.0.1:9119.
cd /root/hermes-agent-webui
npm run backend:mvpCurrent adapter endpoints:
GET /api/statusGET /api/sessionsGET /api/sessions/:id/messagesPOST /api/session/newPOST /api/chatDELETE /api/sessions/:id
The current adapter shells out to the installed hermes CLI for replies and stores adapter session state under ~/.hermes/control-center-mvp/.
npm run build
npm run lint
npm run typecheckdocs/DEVLOG.mdrecords continuous project activity in public, human-readable form.docs/ROADMAP.mdcaptures staged execution.docs/ARCHITECTURE.mdrecords system boundaries and design constraints.docs/plans/contains implementation plans detailed enough for parallel subagents.
The near-term goal is simple:
- copy what users already love from strong Hermes web frontends
- fix the pain points they still complain about
- build original advantages around public-safe deployment, owner-first flow, and cleaner product UX
If you try the project and hit a problem, open an issue immediately:
- bug report:
https://github.com/laolaoshiren/hermes-agent-webui/issues/new/choose - feature request:
https://github.com/laolaoshiren/hermes-agent-webui/issues/new/choose
Current operating principle:
- ship fast
- let users touch the product early
- fix visible problems quickly
- keep the public repo looking alive and responsive
Primary inspirations and lessons incorporated into this project:
- Hermes official web/admin surfaces
- Open WebUI
- nesquena/hermes-webui
- OpenClaw
- Poco
- Mission Control
- OpenHands
- LibreChat