A sleek, glassmorphic web interface for Hermes Agent โ your self-hosted AI assistant.
Built as a single-file HTML application with React 18, Hermes UI provides a full-featured chat interface, real-time log streaming, file browsing, memory inspection, and more โ all through a lightweight Python proxy server.
# Clone the repo
git clone https://github.com/pyrate-llama/hermes-ui.git
cd hermes-ui
# Start the proxy server
python3 serve_lite.py
# Or specify a custom port
python3 serve_lite.py --port 8080
Note:serve.py still exists as a backwards-compatibility shim that prints a deprecation notice and execs serve_lite.py. Existing systemd units and launchers that reference serve.py will keep working, but new setups should invoke serve_lite.py directly.
That's it โ no npm install, no build step, no dependencies beyond Python's standard library.
Configuration
The proxy server connects to Hermes at http://127.0.0.1:8642 by default. To change this, edit the HERMES variable at the top of serve_lite.py.
For image analysis (paste/drop images in chat), add your Gemini API key in the Settings modal within the UI.
Using OpenRouter or Custom Inference Endpoints
Hermes supports any OpenAI-compatible API endpoint, which means you can use OpenRouter to access Claude, GPT-4, Llama, Mistral, and dozens of other models through a single API key.
In your ~/.hermes/config.yaml, set your inference endpoint and API key:
This also works with other compatible providers like LiteLLM (self-hosted proxy), Ollama (http://localhost:11434/v1), or any endpoint that speaks the OpenAI chat completions format.
Remote Access (Tailscale)
Access Hermes UI from your phone, tablet, or any device using Tailscale โ a zero-config mesh VPN built on WireGuard. No ports exposed to the internet, no DNS to configure, all traffic encrypted end-to-end.
Install Tailscale on your server (the machine running Hermes):
brew install tailscale # macOS# or: curl -fsSL https://tailscale.com/install.sh | sh # Linux
tailscale up
Install Tailscale on your phone/other devices โ download the app (iOS/Android) and sign in with the same account.
Connect โ find your server's Tailscale IP (tailscale ip) and open:
http://100.x.x.x:3333/hermes-ui.html
Optional: HTTPS via Tailscale Serve โ get a real certificate and clean URL:
tailscale serve --bg 3333
# Accessible at https://your-machine.tail1234.ts.net
A built-in setup guide is also available in the app under Settings > Remote Access.
hermes-ui.html โ The entire frontend in a single file: React components, CSS, and markup. Uses Babel standalone for JSX compilation in the browser.
serve_lite.py โ A lightweight Python proxy (stdlib only, no pip dependencies) that serves static files, proxies the /api/chat/* two-step SSE flow to the Hermes agent, streams logs via SSE, provides shell/Claude CLI execution, and enables file browsing/editing within ~/.hermes. This is the canonical server.
serve.py โ Backwards-compatibility shim. Prints a deprecation notice and execs serve_lite.py. Kept so existing systemd units and launchers don't break.
CDN Dependencies
All loaded from cdnjs.cloudflare.com at runtime:
Library
Version
Purpose
React
18.2.0
UI framework
React DOM
18.2.0
DOM rendering
Babel Standalone
7.23.9
JSX compilation
marked
11.1.1
Markdown parsing
highlight.js
11.9.0
Code syntax highlighting
Inter
โ
UI typography (Google Fonts)
JetBrains Mono
โ
Code/terminal typography (Google Fonts)
Keyboard Shortcuts
Shortcut
Action
Enter
Send message
Shift+Enter
New line in input
?
Show keyboard shortcuts
Ctrl/Cmd+K
Focus search
Ctrl/Cmd+N
New chat
Ctrl/Cmd+\
Toggle sidebar
Ctrl/Cmd+E
Export chat as markdown
Escape
Close modals / dismiss
Themes
Hermes UI ships with three built-in themes, accessible via the theme switcher in the header:
Midnight (default) โ Deep indigo/purple glassmorphism with ambient purple and green glow
Twilight โ Warm amber/gold tones with copper accents
Dawn โ Soft light theme with blue-gray tones for daytime use
Troubleshooting
Hermes stops responding / hangs after a few messages
If Hermes responds once or twice then goes silent, check your ~/.hermes/config.yaml for this bug in the context compression config:
compression:
summary_base_url: null # โ this causes a 404 and hangs the agent
Fix it by setting summary_base_url to match your inference provider's base URL. For MiniMax:
Chat hangs, times out silently, or returns 404 on /api/chat/start
Two common causes:
You're running the old serve.py directly from a stale checkout or a systemd unit. The current client (hermes-ui.html) talks to the two-step /api/chat/* SSE API, which only serve_lite.py implements. If your launcher calls python3 serve.py, pull the repo โ the new serve.py is a shim that forwards to serve_lite.py and will keep working. If you're on an older checkout, update your unit to call serve_lite.py directly:
The Hermes agent itself (port 8642) isn't reachable.serve_lite.py on 3333 is only a proxy โ it needs the agent running on 8642. Check curl http://127.0.0.1:8642/health.
If you still see silent hangs, open the browser console โ the client now surfaces SSE errors as visible chat messages rather than stalling.
## What's fixed - Startup now bypasses browser cache when loading the sidebar conversation list. - Conversation state updates are normalized through the activity sorter so recently active chats stay at the top after refreshes and state rewrites. - JSON responses now send no-store headers so browser resets do not reuse old sidebar data. ## Verification - Confirmed the live Chrome sidebar shows the May 14 conversations at the top after loading the patched file. - Ran Python syntax check for ser
High
5/14/2026
v3.3.14
Hermes UI v3.3.14 fixes duplicate conversation rows in the sidebar and repairs persisted duplicate chat entries on load/save. Also includes the v3.3.13 discussion feedback fixes for Firefox performance mode, model picker cleanup, reasoning spacing, plugin skills in slash commands, and Dawn theme slash-menu readability.
High
5/13/2026
v3.3.2
Hermes UI v3.3.2 is a live-work reliability patch.\n\nHighlights:\n- Composer work banner keeps active Hermes work and task follow-ups visible directly above the message box.\n- Tool honesty guard flags local file/process claims when no tool call ran.\n- Tasks board now tracks running tool calls, background follow-ups, and promised local work that needs a real tool.\n- README now includes the Tasks / Live Work screenshot.\n\nValidation:\n- Python server syntax check passed.\n- React/Babel transf
High
5/6/2026
v3.1
## What's new - Adds Spaces/workspaces for saved project roots, active workspace switching, workspace-aware chats, and workspace-aware file browsing. - Adds a cross-platform folder picker for Spaces, including Home/Desktop/Documents/Downloads, OneDrive, drives, and computer root discovery where available. - Adds composer slash commands, including /workspace switching. - Adds chat profile routing, Mermaid rendering, helper model controls, and subagent/delegation cards. - Improves restart/update
High
5/3/2026
v3.0
Hermes UI 3.0 is the release where the web client fully catches up to the broader Hermes Agent 0.11 experience. Highlights: - Provider and API-key management directly in Settings - Live model capability pills for vision, steer, reasoning, tools, and live model discovery - Composer reasoning effort control (`Off`, `Low`, `Med`, `High`, `XHigh`, `Auto`) - Mid-stream steer support without pausing or canceling the run - Native image passthrough for vision-capable models, with Gemini kept as the fal
High
4/25/2026
v2.5
## What's new since v2.0 ### Chat & composer - **Command palette** (Ctrl/Cmd+K) for fast navigation - **Document upload** in the composer (.txt, .md, .pdf, .json, .csv, .py, .js, .ts) - Composer unstick helper โ no more stuck "sending" state - Compaction marker surfaced over SSE so the UI knows when the backend compacted ### Tools & skills - **MCP Tools modal** โ browse, inspect, and toggle every MCP tool in one place - Skills: delete, edit, and view full details from the UI - Karpathy-mode to
High
4/22/2026
v2.0
## What's New in v2.0 A major update with new features, reliability fixes, and a significantly improved chat experience. ### โจ New Features **Concurrent Multi-Chat Streaming** Work in multiple chats simultaneously โ start a prompt in one chat, switch to another, and both run in parallel. Each chat has its own independent pause/stop controls. **Pause & Resume Streaming** Pause a response mid-stream to interject context, then resume. Smart resume includes the last 300 characters so Hermes pick
High
4/12/2026
0.0.0
No release found โ using repo HEAD
High
4/9/2026
Dependencies & License Audit
Loading dependencies...
Similar Packages
tekmetric-mcp๐ Ask questions about your shop data in natural language and get instant answers about appointments, customers, and repair orders with Tekmetric MCP.main@2026-06-05
hyperframesWrite HTML. Render video. Built for agents.v0.6.76
studioOpen-source control plane for your AI agents. Connect tools, hire agents, track every token and dollarv2.396.1
mcp-ts-coreAgent-native TypeScript framework for building MCP servers. Build tools, not infrastructure.v0.10.0
aptevaAI agent platform with multi-thread orchestration, MCP integrations, and dashboardv0.24.1
More in MCP Servers
agentroveYour own Claude Code UI, sandbox, in-browser VS Code, terminal, multi-provider support (Anthropic, OpenAI, GitHub Copilot, OpenRouter), custom skills, and MCP servers.
ProxmoxMCP-PlusEnhanced Proxmox MCP server with advanced virtualization management and full OpenAPI integration.
node9-proxyThe Execution Security Layer for the Agentic Era. Providing deterministic "Sudo" governance and audit logs for autonomous AI agents.
mcp-compressorAn MCP server wrapper for reducing tokens consumed by MCP tools.