Beautiful WebUI for Hermes Agent
Install • Features • Screenshots • Configuration • Development • Changelog
Pan is a self-hosted web dashboard for Hermes Agent. It now ships a calmer, chat-first workspace with stronger discovery, clearer integrations information architecture, denser optional navigation, and more product-grade onboarding. Chat with your agent, manage skills from skills.sh, control MCP integrations, inspect memory, and operate profiles — all from one place.

~/.hermes)npx @euraika-labs/pan-ui
A setup wizard runs on first launch to connect Pan to your Hermes instance. After setup, open localhost:3199.
First time? The wizard auto-detects your Hermes home directory, API server, and installed binary. Just press Enter through the defaults to get started.
npx @euraika-labs/pan-ui start --daemon # Fork to background
npx pan-ui status # Check if running
npx pan-ui logs # Tail log output
npx pan-ui stop # Stop the daemon
npx @euraika-labs/pan-ui service install # Creates a systemd user service
npx pan-ui service remove # Uninstall it
The service starts on login and survives logout. Manage it with standard systemctl --user commands.
npx @euraika-labs/pan-ui@latest
Your configuration in ~/.pan-ui/ is preserved across updates.
| Feature | Description |
|---|---|
| Chat | SSE streaming connected to a live Hermes runtime, with a chat-first workspace, calmer empty states, starter prompts, tool timelines, approval cards, and authenticated chat/session APIs |
| Sessions | Unified session sidebar with source badges, source filtering, stronger selected states, cross-platform resumption, and optional compact density mode |
| Marketplace | Discover-first /marketplace view for skills, MCP servers, and plugins with hero content, grouped global search, and clearer discovery vs installed inventory separation |
| Skills | Browse installed skills, discover and install more from skills.sh, and load skills into active sessions |
| Extensions / MCP | Clearer integrations IA for live integrations, MCP servers, tools, approvals, diagnostics, and runtime availability |
| Plugins | Dedicated plugin workspace with stronger install validation, repo requirements guidance, enable/disable flows, and plugin detail APIs |
| Memory | Inspect and edit global and profile-scoped agent memory |
| Profiles | Isolated workspaces — each with its own sessions, skills, memory, and API keys |
| Operations | Approvals, run history, audit trails, telemetry, health monitoring, and exports |
| Daemon | Background process with PID management, log tailing, and systemd integration |
Login

Chat
Streaming chat with session sidebar, tool timelines, and runtime-aware composer.

Skills
Installed skills with search and category filters. Discover tab for the skills.sh hub.

Marketplace

Extensions & MCP

Plugins

Memory

Profiles

Settings

| Command | Description |
|---|---|
pan-ui / pan-ui start |
Start in foreground |
pan-ui start --daemon |
Start in background |
pan-ui start --port 8080 |
Override port |
pan-ui stop |
Stop daemon |
pan-ui status |
Show running state |
pan-ui logs |
Tail daemon logs |
pan-ui setup |
Re-run setup wizard |
pan-ui update |
Check for and install updates |
pan-ui sync-hermes |
Update vendored Hermes to pinned version |
pan-ui version |
Show current version |
pan-ui service install |
Install systemd service |
pan-ui service remove |
Remove systemd service |
pan-ui help |
Show CLI usage |
The setup wizard writes these to .env.local. You can also edit them directly or re-run npx pan-ui setup.
| Variable | Default | Description |
|---|---|---|
HERMES_HOME |
~/.hermes |
Hermes home directory |
HERMES_API_BASE_URL |
http://127.0.0.1:8642 |
Hermes API endpoint |
HERMES_API_KEY |
— | API key (if Hermes requires one) |
HERMES_WORKSPACE_USERNAME |
admin |
Login username |
HERMES_WORKSPACE_PASSWORD |
changeme |
Login password |
HERMES_WORKSPACE_SECRET |
(auto-generated) | Cookie signing secret |
HERMES_MOCK_MODE |
false |
Use mock data when runtime is unavailable |
PORT |
3199 |
Server port |
| Path | Purpose |
|---|---|
~/.pan-ui/pan-ui.pid |
Daemon PID file |
~/.pan-ui/pan-ui.log |
Daemon log output |
~/.config/systemd/user/pan-ui.service |
Systemd service unit (when installed) |
.env.local (in package dir) |
Configuration from setup wizard |
Pan runs as a standalone Next.js server that bridges your browser to the Hermes runtime. On startup it automatically launches the Hermes gateway if it isn't already running — no manual gateway setup required.
Browser ──── fetch / SSE ────▶ Pan (Next.js API routes)
│ │
▼ ▼
Hermes Gateway Hermes Filesystem
:8642 ~/.hermes/
(auto-managed) (skills, memory, profiles, state.db)
│
▼
Hermes Agent sessions
(tools, streaming, full agent capabilities)
hermes gateway run as a child process with health monitoring and auto-restart. The gateway uses the active Hermes profile — no hardcoded names or paths.hermes.version.json. On first launch, if no hermes binary is found, the setup wizard installs it from the Euraika-Labs/hermes-agent fork. Use pan-ui sync-hermes to update.~/.hermes/skills/ with YAML frontmatter parsingUSER.md and MEMORY.md at global and profile scope~/.hermes/profiles/<name>/ directoriesAlready running a gateway? Pan detects it and skips auto-launch. This works with systemd services, manual
hermes gateway run, or any external process on the configured port.
Want to contribute or run from source? See CONTRIBUTING.md for full setup instructions.
git clone https://github.com/Euraika-Labs/pan-ui.git
cd pan-ui
npm install
npm run dev
| Command | Description |
|---|---|
npm run dev |
Dev server with hot reload |
npm run build |
Production build |
npm run lint |
ESLint |
npm run test |
Vitest unit tests |
npm run test:e2e |
Playwright end-to-end tests |
ai.memestack/mcp and dev-fentz-envcp-envcp, plus release readiness with lint, tests, build, and dry-run packagingmain: chat-first workspace redesign, marketplace discovery refresh, integrations IA cleanup, compact navigation mode, and stronger login/onboarding guidancenpm run lint, npm run test (24/24), npm run build, Playwright suite enumeration (23 tests), and a clean npm pack --dry-runmain) in Python bridge).dockerignorehermes.version.json), auto-install wizard, sync-hermes / update / version CLI commands, update bannerSee SECURITY.md for reporting vulnerabilities.
$ claude mcp add pan-ui \
-- python -m otcore.mcp_server <graph>