mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-18 09:51:59 +00:00
docs(tui): correct HERMES_TUI_GATEWAY_URL — dashboard-internal, not remote-attach (#42162)
The TUI docs presented HERMES_TUI_GATEWAY_URL + /api/ws as a supported 'attach the TUI to a standalone running gateway' workflow. It isn't. /api/ws exists only inside the dashboard's FastAPI server (hermes_cli/web_server.py), which spawns its own embedded TUI child and injects the var as an internal wiring detail. The OpenAI-compat API server (api_server platform) deliberately does not serve /api/ws, so the documented ws://host:port/api/ws workflow 404s — the cause of #32882 and the two PRs (#32904, #32955) that tried to add the route to the wrong surface. Rewrites the section in en + zh-Hans to describe the var accurately and point users at shared state.db / dashboard embedded chat for multi-surface session sharing.
This commit is contained in:
parent
399b8ee5f0
commit
74744795af
2 changed files with 10 additions and 28 deletions
|
|
@ -271,24 +271,15 @@ Sessions are shared between the TUI and the classic CLI — both write to the sa
|
|||
|
||||
See [Sessions](sessions.md) for lifecycle, search, compression, and export.
|
||||
|
||||
## Attaching to a running gateway
|
||||
## How the TUI talks to its gateway
|
||||
|
||||
By default the TUI spawns its own in-process gateway, so each TUI instance is self-contained. If you already have a long-lived gateway running (e.g. `hermes gateway run` in tmux, or the systemd / launchd service), you can point the TUI at that gateway instead — the TUI then becomes a thin client and shares state with every other surface (messaging platforms, web dashboard, other TUI sessions) that's attached to the same gateway.
|
||||
By default the TUI spawns its own in-process gateway, so each TUI instance is self-contained — there's nothing to configure.
|
||||
|
||||
Set the websocket URL via env before launching:
|
||||
You may see a `HERMES_TUI_GATEWAY_URL` env var referenced in the codebase or logs. This is an **internal wiring detail of the web dashboard**, not a user-facing remote-attach knob. When you open the dashboard's "Chat" tab (`hermes dashboard` → `/chat`), the dashboard's web server spawns an embedded TUI child process and injects `HERMES_TUI_GATEWAY_URL` so that child attaches to the dashboard's own in-process `tui_gateway` over a loopback WebSocket (`/api/ws`). The `/api/ws` endpoint exists only inside the dashboard server (`hermes_cli/web_server.py`) and is bound to that process's lifetime and auth.
|
||||
|
||||
```bash
|
||||
export HERMES_TUI_GATEWAY_URL="ws://localhost:8765/api/ws?token=<auth-token>"
|
||||
hermes --tui
|
||||
```
|
||||
There is no general "point any TUI at any standalone gateway port" mode. In particular, the OpenAI-compatible API server (`hermes gateway` / the `api_server` platform) does **not** serve `/api/ws` — it's the model-backend surface (`/v1/chat/completions`, `/v1/models`, …) and deliberately does not expose the TUI's JSON-RPC control channel. Setting `HERMES_TUI_GATEWAY_URL` to that port will 404.
|
||||
|
||||
The token comes from the gateway's API auth configuration (see [API Server](features/api-server.md)). When the env var is set, the TUI:
|
||||
|
||||
- Skips spawning a local gateway entirely — no duplicate platform adapters, no port conflicts.
|
||||
- Routes every action (slash commands, image attach, browser progress, voice events, …) over the websocket to the shared gateway.
|
||||
- Reconnects automatically if the gateway URL rotates (new token) between requests.
|
||||
|
||||
This is the same channel the web dashboard's embedded TUI uses (see [Web Dashboard](features/web-dashboard.md#chat)) — one gateway, many clients.
|
||||
If you want multiple surfaces to share one set of sessions, use the shared `~/.hermes/state.db` (see [Sessions](sessions.md)) or the web dashboard's embedded chat (see [Web Dashboard](features/web-dashboard.md#chat)) — not a hand-set gateway URL.
|
||||
|
||||
## Reverting to the classic CLI
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue