About this project

Hermes WebUI is a lightweight, dark-themed web interface for the Hermes Agent, an autonomous agent that runs on your own server and is normally accessed through a terminal or messaging apps. The project describes itself as offering near 1:1 parity with the Hermes CLI: anything you can do from the terminal can reportedly be done from this UI. It is built with Python and vanilla JavaScript, with no build step, framework or bundler. The layout is a three-panel design: a left sidebar for sessions and navigation, a center chat area, and a right panel for workspace file browsing. Model, profile and workspace controls sit in the composer footer, and a circular context ring shows token usage. Settings and session tools live in a "Hermes Control Center" launcher at the bottom of the sidebar. Key capability areas described in the README: - Chat and agent: streaming responses over SSE, multi-provider model support (OpenAI, Anthropic, Google, DeepSeek, OpenRouter and others), message queuing, inline editing and regeneration of past messages, retry, cancel, inline tool-call cards, subagent delegation cards, Mermaid diagram rendering, collapsible thinking/reasoning cards, approval cards for dangerous shell commands, SSE auto-reconnect, file attachments, timestamps, code copy buttons, syntax highlighting and a context usage indicator. - Sessions: create, rename, duplicate, delete and search; pinning, archiving, projects and tags; grouped sidebar by date; export to Markdown or JSON and import; public read-only share links; persistence across reloads; a CLI session bridge that imports sessions from the agent's SQLite store; and token/cost display. - Workspace file browser: directory tree, breadcrumbs, inline preview of text, code, Markdown and images, file editing and management, binary downloads, git branch and dirty-file detection, and a resizable panel. - Voice input via the Web Speech API, with live interim transcription and silence auto-stop. - Profiles: create, switch and delete agent profiles without restarting the server, with gateway status, model info and skill counts, plus optional custom endpoint fields for local model servers. - Authentication and security: optional password auth, optional passkeys/WebAuthn, optional native OIDC login, signed HMAC HTTP-only cookies, security headers, a POST body size limit and SRI-pinned CDN resources. - Themes: separate theme (system/dark/light) and skin axes, switchable live and persisted. - Settings, slash commands, panels (Chat, Tasks, Skills, Memory, Profiles, Todos, Spaces) and a mobile-responsive layout with a slide-in sidebar and file panel. Installation is via cloning the repository and running `python3 bootstrap.py`, or the `start.sh` shell launcher. A `ctl.sh` wrapper provides daemon lifecycle commands (start, status, logs, restart, stop) for self-hosted VM or homelab installs. The bootstrap detects the Hermes Agent, prepares a Python environment, starts the server, waits for a health endpoint and opens the browser, then presents a first-run onboarding wizard. Native Windows is not supported by the bootstrap; Linux, macOS or WSL2 are recommended, with a community-maintained native Windows guide referenced. Docker and a Nix flake/module are also documented. Configuration is largely auto-discovered, with environment variable overrides for the agent directory, Python executable, host, port, state directory, default workspace, default model and password. The README notes that chat runs the agent in-process by default, and that an external Hermes Gateway can optionally be used as a chat backend. The project is open source and self-hosted, and the README includes a comparison table against other agentic tools, though such comparative claims are the project's own and not independently verified here.