freshcrate
Skin:/
Home > MCP Servers > hermes-ui

hermes-ui

Glassmorphic web interface for Hermes Agent โ€” your self-hosted AI assistant

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

Glassmorphic web interface for Hermes Agent โ€” your self-hosted AI assistant

README

Artifact Panel

Artifact Panel

Midnight (default)

Midnight Theme

Twilight

Twilight Theme

Dawn

Dawn Theme


Features

Chat Interface

  • SSE streaming with real-time token display
  • Tool call visualization with expandable results
  • Message editing and re-sending
  • Image paste/drop with Gemini vision analysis
  • Pause, interject, and stop controls mid-stream
  • Multiple personality modes (default, technical, creative, pirate, kawaii, and more)
  • PDF and HTML chat export
  • Markdown rendering with syntax-highlighted code blocks

Dashboard

  • Live auto-refreshing stats (sessions, messages, tools, tokens)
  • System info panel (model, provider, uptime)
  • Hermes configuration overview

Artifact Panel

  • 5th tab in the live terminal panel (alongside Gateway, Errors, Web UI, All)
  • Auto-detects HTML, SVG, and code blocks in Hermes responses and renders them live
  • Auto-detects file paths Hermes saves to disk (e.g. ~/Desktop/page.html) and loads them automatically โ€” no need to copy-paste code
  • Panel dynamically widens from 320px to 600px when Artifacts tab is active
  • Sandboxed iframe rendering for HTML/SVG with full animation and JavaScript support
  • Syntax-highlighted code blocks for Python, JS, CSS, and other languages
  • Per-artifact Copy and close (โœ•) buttons
  • Manual "Load File" button to open any local HTML/SVG/code file directly in the panel
  • Scroll position preserved when switching between tabs

Terminal

  • Tabbed interface: Gateway, Errors, Web UI, All โ€” real-time log streaming via SSE
  • Live connection indicator with line count

File Browser

  • Browse ~/.hermes directory tree
  • View and edit config files, logs, and memory files in-place
  • Image preview support

Memory Inspector

  • View and edit Hermes internal memory (MEMORY.md, USER.md)
  • Live memory usage stats

Skills Browser

  • Search and browse all installed Hermes skills
  • Sort by newest, oldest, or name โ€” see what Hermes has been creating
  • Relative timestamps on each skill (e.g. "2h ago", "3d ago")
  • View skill descriptions, tags, and trigger phrases

Jobs Monitor

  • Track active and recent Hermes sessions
  • Message, tool call, and token counts per session
  • Auto-refresh every 10 seconds

MCP Tool Browser

  • Browse all connected MCP servers and their tools
  • View tool descriptions and status

UI/UX

  • Glassmorphism design with ambient animated glow
  • Collapsible sidebar and right panel
  • System status bar (connection, model, memory count, sessions)
  • Inter + JetBrains Mono typography
  • Keyboard shortcuts
  • Theme switcher (Midnight, Twilight, Dawn)
  • Responsive layout for tablets and mobile phones
  • Bottom navigation bar on small screens with quick access to key views
  • Touch-optimized targets and safe-area inset support for notched devices

Quick Start

Prerequisites

Install & Run

# 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.

Open http://localhost:3333/hermes-ui.html in your browser.

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:

inference:
  base_url: https://openrouter.ai/api/v1
  api_key: sk-or-v1-your-openrouter-key
  model: anthropic/claude-sonnet-4-20250514

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.

  1. 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
  2. Install Tailscale on your phone/other devices โ€” download the app (iOS/Android) and sign in with the same account.

  3. Connect โ€” find your server's Tailscale IP (tailscale ip) and open:

    http://100.x.x.x:3333/hermes-ui.html
    
  4. 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.


Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Browser     โ”‚โ”€โ”€โ”€โ–ถโ”‚  serve_lite.py โ”‚โ”€โ”€โ”€โ–ถโ”‚  Hermes Agent    โ”‚
โ”‚  (React 18)  โ”‚    โ”‚  port 3333     โ”‚    โ”‚  port 8642       โ”‚
โ”‚              โ”‚โ—€โ”€โ”€โ”€โ”‚  proxy +       โ”‚โ—€โ”€โ”€โ”€โ”‚  (WebAPI)        โ”‚
โ”‚  Single HTML โ”‚    โ”‚  log stream    โ”‚    โ”‚                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • 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:

compression:
  summary_base_url: https://api.minimax.io/anthropic

Then restart Hermes: hermes restart


Chat hangs, times out silently, or returns 404 on /api/chat/start

Two common causes:

  1. 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:

    ExecStart=/usr/bin/python3 /path/to/hermes-ui/serve_lite.py
    
  2. 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.


License

MIT โ€” see LICENSE.


Credits

Built by Pyrate Llama with help from Claude (Anthropic).

Powered by Hermes Agent.

Release History

VersionChangesUrgencyDate
v3.3.16## 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 serHigh5/14/2026
v3.3.14Hermes 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.High5/13/2026
v3.3.2Hermes 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 transfHigh5/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 High5/3/2026
v3.0Hermes 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 falHigh4/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 toHigh4/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 pickHigh4/12/2026
0.0.0No release found โ€” using repo HEADHigh4/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.