hermes-webui
Applicationnesquena/hermes-webui
Web UI for Hermes autonomous AI agent with persistent memory and scheduling.
Overview
Hermes WebUI provides a browser-based interface to the Hermes Agent, an autonomous AI agent with persistent memory, cross-session recall, scheduling, and multi-platform messaging. It offers full parity with the CLI experience in a three-panel dark-themed layout. No additional setup required beyond existing Hermes Agent installation.
README Preview
# Hermes Web UI\n\n[Hermes Agent](https://hermes-agent.nousresearch.com/) is a sophisticated autonomous agent that lives on your server, accessed via a terminal or messaging apps, that remembers what it learns and gets more capable the longer it runs.\n\nHermes WebUI is a lightweight, dark-themed web app interface in your browser for [Hermes Agent](https://hermes-agent.nousresearch.com/).\nFull parity with the CLI experience - everything you can do from a terminal,\nyou can do from this UI. No build step, no framework, no bundler. Just Python\nand vanilla JS.\n\nLayout: three-panel. Left sidebar for sessions and navigation, center for chat,\nright for workspace file browsing. Model, profile, and workspace controls live in\nthe **composer footer** — always visible while composing. A circular context ring\nshows token usage at a glance. All settings and session tools are in the\n**Hermes Control Center** (launcher at the sidebar bottom).\n\n\n\n\n \n \n \n Light mode with full profile support\n \n \n \n Customize your settings, configure a password\n \n \n\n\n\n \n \n \n Workspace file browser with inline preview\n \n \n \n Session projects, tags, and tool call cards\n \n \n\n\nThis gives you nearly **1:1 parity with Hermes CLI from a convenient web UI** which you can access securely through an SSH tunnel from your Hermes setup. Single command to start this up, and a single command to SSH tunnel for access on your computer. Every single part of the web UI uses your existing Hermes agent and existing models, without requiring any additional setup.\n\n---\n\n## Contents\n\n- [Why Hermes](#why-hermes) — what it is and how it compares\n- [Quick start](#quick-start) — clone + `bootstrap.py` / `start.sh` / `ctl.sh`\n- [Features](#features) — chat, sessions, workspace, voice, profiles, security, themes, panels, mobile\n- [Configuration & access](#configuration--access) — auto-discovery, overrides, remote/Tai
FAQ (5)
TroubleshootingWhy do models from a named custom provider appear twice in the model dropdown?
This is caused by a bug in the _normId function in static/ui.js, which only strips the first provider prefix using indexOf(':'). For named providers like 'custom:alibaba-bailian', the resulting normalized key doesn't match the static list, causing deduplication to fail. The fix is to use lastIndexOf(':') to strip all nested prefixes. This was resolved in version v0.51.254. Update to that version or apply the patch manually.
TroubleshootingHow to fix scroll jumping to top during streaming in Hermes WebUI on iOS Safari?
Update Hermes WebUI to version v0.51.254 or later. This release includes a fix (PR #3541) that corrects the scroll position restoration logic so the viewport no longer jumps during live token streaming on iPhone Safari. It also resolves a related issue where the clarify/approval card would overlay and obscure the conversation on mobile. After updating, clear the browser cache and re-add the PWA to the home screen if necessary.
TroubleshootingWhy does the web app hard reload when returning from background on Android PWA?
This is a known bug in versions before v0.51.254: the offline recovery logic triggers a full page reload after a transient connectivity loss when the app is backgrounded. Upgrade to v0.51.254 or later to get a soft reattach that reconnects without reloading the page.
TroubleshootingWhy does my tool call history disappear when I interrupt the agent in Hermes WebUI?
This is a known bug in versions prior to v0.51.254. Interrupting the agent (e.g., clicking 'Stop Generation') could cause partial tool calls and response history to be lost, leaving only a generic 'Task cancelled' message. Update to v0.51.254 (Release HV) or later to preserve partial tool calls after cancellation.
TroubleshootingHow to fix chat view snapping to bottom after manual scroll during streaming?
Update to v0.51.253 or later. This release includes a fix for streaming scroll-snap (#3529) that preserves your reading position after manually scrolling up.