Skip to content

nesquena/hermes-webui

⭐ 6,485  ·  Python  ·  GitHub Repo

Hermes WebUI: The best way to use Hermes Agent from the web or from your phone!

agent ai-agents hermes hermes-agent nous-research

1-Sentence Summary

Self-hosted AI agent web UI with persistent memory, offline scheduling, and full CLI parity.

🔥 Key Capabilities & USP

  • Persistent Memory & Self-Improving Skills — Solves the fundamental pain point of AI agents forgetting everything between sessions. Automatically builds a user profile, retains agent notes, and writes reusable procedures from experience. No marketplace or plugin ecosystem required—the agent improves itself over time.
  • Self-Hosted Scheduling — Run cron jobs that execute even when your browser is closed. Results deliver to Telegram, Discord, Slack, Signal, email, and 10+ other platforms. This turns the agent from a chat companion into a truly autonomous background worker.
  • Provider-Agnostic Architecture — Not locked into a single LLM provider. Supports OpenAI, Anthropic, Google, DeepSeek, OpenRouter, and more. Can even delegate heavy coding tasks to specialized agents like Claude Code or Codex, acting as an orchestration layer.
  • Three-Panel Web UI with Composer — Left sidebar for session management, center chat panel, and right workspace file browser. The composer footer includes model/profile/workspace controls and a circular context ring showing real-time token usage. No build step, no framework, no bundler—just Python and vanilla JavaScript.
  • Docker & Multi-Container Deployments — Pre-built images for amd64 and arm64. Choose from single-container, two-container (agent + WebUI), or three-container (agent + dashboard + WebUI) setups. SSH tunnel support for secure remote access.

USP: Hermes WebUI delivers 1:1 parity with the Hermes CLI experience through a lightweight, dark-themed web interface that requires zero configuration beyond running a bootstrap script or pulling a Docker image.

Architecture

Technical Architecture

ComponentDetail
LanguagePython (backend), vanilla JavaScript (frontend)
Build SystemNone required—no bundlers, no frameworks, no build step
DeploymentBootstrap script (bootstrap.py), Docker (GHCR-published images), or manual start.sh
StorageBind-mount or named volumes for persistent state at ~/.hermes
Process Managementctl.sh script for daemon control (start, stop, status, logs)
NetworkingSSH tunnel support; password protection required when exposing outside localhost
Container ConfigsMulti-container compose files for agent, dashboard, and WebUI separation
ArchitectureThree-panel layout (sessions, chat, workspace) with composer footer and Hermes Control Center launcher

Quick Start Guide

Bootstrap (Linux, macOS, or WSL2):

bash
git clone https://github.com/nesquena/hermes-webui.git hermes-webui
cd hermes-webui
python3 bootstrap.py

Start the server:

bash
./start.sh

Daemon management with ctl.sh:

bash
./ctl.sh start              # background daemon, PID at ~/.hermes/webui.pid
./ctl.sh status             # PID, uptime, bound host/port, log path, /health
./ctl.sh logs --lines 100   # tail ~/.hermes/webui.log
./ctl.sh restart
./ctl.sh stop

Docker deployment:

bash
git clone https://github.com/nesquena/hermes-webui
cd hermes-webui
cp .env.docker.example .env
# Edit .env if your host UID isn't 1000 (e.g. macOS where UIDs start at 501)
docker compose up -d
# Open http://localhost:8787

Add password protection:

bash
echo "HERMES_WEBUI_PASSWORD=change-me-to-something-strong" >> .env
docker compose up -d --force-recreate

Manual Docker run:

bash
docker pull ghcr.io/nesquena/hermes-webui:latest
docker run -d \
  -e WANTED_UID=$(id -u) -e WANTED_GID=$(id -g) \
  -v ~/.hermes:/home/hermeswebui/.hermes \
  -e HERMES_WEBUI_STATE_DIR=/home/hermeswebui/.hermes/webui \
  -v ~/workspace:/workspace \
  -p 127.0.0.1:8787:8787 \
  ghcr.io/nesquena/hermes-webui:latest

Pros, Cons & Use Cases

Pros

  • Full CLI parity — Every Hermes Agent feature is available through the web UI, no feature gaps
  • Zero model setup — Provider-agnostic; bring your own API keys for OpenAI, Anthropic, Google, etc.
  • Self-hosted privacy — All data stays on your infrastructure
  • Persistent memory — Agent remembers you, your preferences, and your procedures across sessions
  • Offline scheduling — Cron jobs run even when you're not watching
  • 10+ messaging platforms — Results deliver to Telegram, Discord, Slack, Signal, email, and more
  • No build step — Python + vanilla JavaScript means instant startup

Cons

  • No native Windows bootstrap — Requires Linux, macOS, or WSL2 for the bootstrap process
  • Two-container limitation — Tools run in the WebUI container, not the agent container, which can cause path or permission issues
  • Password required for external access — Must set HERMES_WEBUI_PASSWORD before exposing the port outside localhost
  • Vanilla JS frontend — No React/Vue means less ecosystem support for UI customization

Who should NOT use this?

  • Windows-only users who cannot or will not use WSL2
  • Users who want a managed, cloud-hosted agent with zero infrastructure responsibility
  • Teams needing multi-user authentication and role-based access control — This is a single-user tool
  • Anyone expecting a plugin ecosystem or marketplace — Skills are self-written, not downloaded

Ideal Use Cases

  • Solo developers who want a persistent, always-on AI coding assistant with workspace access
  • Power users who need scheduled tasks (scraping, monitoring, report generation) delivered to their phone
  • Privacy-conscious users who want full control over their agent's data and model choices
  • Hermes CLI users who want mobile access or a more visual interface without losing functionality
  • Self-hosters running homelab environments who want to orchestrate multiple AI agents

Community & Activity

Hermes WebUI has 6,485 stars on GitHub, signaling strong interest in the self-hosted AI agent space. The project is actively maintained with the latest update on May 10, 2026, showing ongoing development momentum. This is a project that's clearly resonating with the developer community—the combination of persistent memory, offline scheduling, and provider-agnostic design hits a sweet spot for anyone who's felt the frustration of AI agents that forget everything between conversations. The active maintenance cadence suggests this isn't a side project that's been abandoned; it's a tool that's being refined and improved in real-time.

Project data from GitHub API, updated in real-time