Vibeleaderboard
Index / app
Visit github.com
Category
AI Agents
Rank

Previous survey · No. 734 ·

Type
APP
Builder
nesquena
Latest release
exp-v0.52.303
Date

About

A web and mobile interface for the Hermes autonomous agent.

What it does

Hermes WebUI turns an existing Hermes Agent installation into a browser workbench. It combines streaming chat, session navigation, workspace browsing, model and profile controls, token context feedback, and settings. By default, the Python server runs the agent inside its own process and reads the existing Hermes configuration directly.

Why it's ranked here

This is a strong choice for self-hosters who want terminal-level Hermes control without living in a terminal. Its value comes from broad workflow coverage, modest runtime dependencies, responsive access, and several deployment options. The catch is equally clear: it depends on Hermes Agent, and some operational features require additional services or setup.

What's good

The interface keeps chat, sessions, and workspace files visible in a practical three-panel layout. Responses stream as they arrive, messages can queue during processing, and earlier prompts can be edited and regenerated. The implementation avoids a frontend framework, bundler, and mandatory JavaScript build step. Existing Hermes models and configuration remain authoritative.

Tradeoffs

This is not a standalone agent. The actual runtime, memory, skills, credentials, and scheduled jobs belong to Hermes Agent. Native Windows bootstrap is unsupported, with WSL2 as the supported route. Scheduled jobs do not fire offline unless a gateway daemon ticks them. Gateway chat still lacks full agent-loop delegation, and optional voice, system metrics, and Office previews need extra packages.

How to use it well

Use it for a personal server, homelab, Mac, Linux machine, or WSL2 environment where Hermes Agent already owns your state. Start with the local bootstrap or single-container Docker setup, then add a gateway when unattended schedules matter. It earns a place as the daily visual console, not as an agent runtime replacement or multi-tenant security boundary.

Technical notes+

server.py uses Python's ThreadingHTTPServer, HTTP/1.1 keep-alive, bounded request-worker slots, overflow rejection, optional TLS wrapping, and route handlers from the api package. pyproject.toml packages api, static, bootstrap, server, and mcp_server, requires Python 3.11 or newer, and sources dependencies from requirements.txt. That dependency file keeps PyYAML and cryptography mandatory while leaving Edge TTS, psutil, and Office parsers optional. package.json is private dev tooling containing only ESLint; it explicitly is not an application build step. docs/docker.md documents single-, two-, and three-container layouts, with the single-container path running chat in-process and gateway-backed scheduling requiring a separate daemon. docs/EXTENSIONS.md defines same-origin CSS and JavaScript injection with full browser-session authority, constrained local asset serving, optional loopback sidecars, and no facility for registering arbitrary backend routes.

Observed

License
MIT
Languages
Python server with vanilla JavaScript browser runtime
Python support
Python 3.11, 3.12, and 3.13 are declared
Install surfaces
Source bootstrap, shell launchers, Docker Compose, and Nix flake or NixOS module
Interface
Browser web application with HTTP APIs and SSE response streaming
Packaging
Standard setuptools package metadata; frontend requires no framework, bundler, or build step
Platform support
Bootstrap supports Linux, macOS, and WSL2; native Windows bootstrap is unsupported
Core dependencies
PyYAML and cryptography, with voice, system metrics, and Office parsers optional

Read from README.md, package.json, pyproject.toml, requirements.txt, server.py, docs/ISSUES.md, docs/docker.md, docs/CONTRACTS.md, docs/EXTENSIONS.md, docs/GUIDELINES.md, docs/UIUX-GUIDE.md, docs/onboarding.md.

Tech Stack

Node.jsPythonDocker

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.