Files
hermes-ui/README.md
T
toor 1e9ea89d86
Build / build (push) Canceled after 0s
NPM Lockfile Check / npm ci --ignore-scripts (push) Canceled after 0s
Playwright / e2e (push) Canceled after 0s
chore: bootstrap hermes-ui skeleton from 0.6.29 snapshot
Import the client, server, skills, tests, and build scripts as the starting
point for the rebuild, then trim the surfaces this project does not ship:
Electron desktop packaging, the marketing website, and the ESP32 firmware
tree. CI keeps the web build, e2e, lockfile, release, and Docker workflows.

Rename the package and CLI entry points to hermes-ui, drop the prepare hook so
npm ci no longer triggers a build, and drop the removed tsconfig and nodemon
references. Rewrite AGENTS.md, ARCHITECTURE.md, DEVELOPMENT.md, and the READMEs
so the documented package map and hard rules match this repository.

reference_code/ is ignored: it is a read-only snapshot, not an input to the build.
2026-10-16 10:34:35 +08:00

93 lines
2.8 KiB
Markdown

# hermes-ui
Self-hosted web dashboard for [Hermes Agent](https://github.com/NousResearch) — chat, session
history, skills, MCP servers, model management, IM channels, file management, and usage analytics
in one browser UI.
> This project is under active rebuild. Feature work is being staged phase by phase; see
> `docs/phases/README.md` for the current plan.
## Prerequisites
hermes-ui runs as a plain Node.js server. It does **not** bundle a runtime.
- Node.js `>=23`
- Python with `hermes-agent` installed
Install `hermes-agent`, then either put `hermes` on your `PATH` or point `HERMES_BIN` at the
executable:
```bash
export HERMES_BIN=/path/to/hermes
```
If the CLI cannot be found, the UI shows an install hint instead of failing silently.
## Getting Started
```bash
npm ci --ignore-scripts
npm run build
npm start
```
Then open http://localhost:8648 and log in with the default credentials printed on first start.
For development with hot reload:
```bash
npm run dev
```
The client runs on http://localhost:8649 and the Koa server on port 8647.
## Layout
```
packages/client Vue 3 client: views, components, Pinia stores, i18n, API helpers
packages/server Koa API, Socket.IO chat runtime, SQLite stores, Hermes integration
packages/skills Built-in skills injected into the Hermes skills directory
tests Vitest unit/integration tests and Playwright browser tests
scripts Build and repository harness scripts
docs Architecture, harness docs, and the phased build plan
```
## Docker
```bash
docker compose up -d
```
The image is based on `nousresearch/hermes-agent`, so Python and the Hermes CLI are already
present in the container.
## Configuration
| Variable | Purpose |
| --- | --- |
| `HERMES_BIN` | Path to the `hermes` executable. Falls back to `hermes` on `PATH`. |
| `HERMES_HOME` | Hermes profile directory. Used to isolate profiles. |
| `HERMES_WEB_UI_HOME` | Web UI state directory. Defaults to `~/.hermes-web-ui`. |
| `HERMES_WEBUI_STATE_DIR` | Alternate override for the Web UI state directory. |
| `PORT` | Server port. |
The `HERMES_WEB_UI_*` prefixes and the `~/.hermes-web-ui` data directory are kept from the
0.6.x line on purpose, so existing deployments and data directories keep working.
## Commands
| Command | Description |
| --- | --- |
| `npm run dev` | Run client and server with hot reload. |
| `npm run build` | Type-check and build client and server bundles. |
| `npm start` | Serve the production build. |
| `npm run test` | Run Vitest tests. |
| `npm run test:coverage` | Run Vitest with coverage. |
| `npm run test:e2e` | Run Playwright browser tests. |
| `npm run harness:check` | Validate repository docs, workflows, and package scripts. |
| `npm run openapi:generate` | Regenerate `docs/openapi.json`. |
## License
BSL-1.1. See `LICENSE`.