|
1 | | -[](https://mseep.ai/app/outsourc-e-hermes-workspace) |
2 | | - |
3 | 1 | <div align="center"> |
4 | 2 |
|
5 | 3 | <img src="./public/claude-avatar.webp" alt="Hermes Workspace" width="80" style="border-radius: 16px" /> |
|
9 | 7 |
|
10 | 8 | **Your AI agent's command center — chat, files, memory, skills, and terminal in one place.** |
11 | 9 |
|
12 | | -[](CHANGELOG.md) |
| 10 | +[](CHANGELOG.md) |
13 | 11 | [](LICENSE) |
14 | 12 | [](https://nodejs.org/) |
15 | 13 | [](CONTRIBUTING.md) |
@@ -312,6 +310,74 @@ All workspace features unlock automatically once both services are reachable — |
312 | 310 |
|
313 | 311 | --- |
314 | 312 |
|
| 313 | +## 🤝 Pair an Agent with the Workspace |
| 314 | + |
| 315 | +Workspace is the UI. **Hermes Agent** is the brain. They talk over two HTTP services on localhost (or any reachable network). |
| 316 | + |
| 317 | +``` |
| 318 | +┌───────────────┐ :8642 gateway ┌────────────────┐ |
| 319 | +│ Workspace │ ─────────────────────▶ │ Hermes Agent │ |
| 320 | +│ :3000 (UI) │ ◀───────────────────── │ CLI / brain │ |
| 321 | +└───────────────┘ :9119 dashboard └────────────────┘ |
| 322 | +``` |
| 323 | +
|
| 324 | +### Two services, three commands |
| 325 | +
|
| 326 | +```bash |
| 327 | +hermes gateway run # terminal 1 · :8642 · chat, models, streaming, jobs |
| 328 | +hermes dashboard # terminal 2 · :9119 · sessions, skills, config, MCP |
| 329 | +cd ~/hermes-workspace && pnpm dev # terminal 3 · :3000 · the UI |
| 330 | +``` |
| 331 | + |
| 332 | +> **Tip:** `pnpm start:all` starts gateway + dashboard + workspace in one shot if you've installed via the one-liner. |
| 333 | +
|
| 334 | +### Verify the pairing |
| 335 | + |
| 336 | +```bash |
| 337 | +curl http://127.0.0.1:8642/health # → {"status":"ok","platform":"hermes-agent"} |
| 338 | +curl http://127.0.0.1:9119/api/status # → {"status":"ok", ...} |
| 339 | +``` |
| 340 | + |
| 341 | +Both must return `200`. If either fails, the workspace will fall back to **portable mode** (chat works, sessions/skills/memory show "Not Available"). |
| 342 | + |
| 343 | +### `.env` settings the workspace cares about |
| 344 | + |
| 345 | +```env |
| 346 | +# Required: where the gateway is |
| 347 | +HERMES_API_URL=http://127.0.0.1:8642 |
| 348 | +
|
| 349 | +# Recommended: where the dashboard is (unlocks sessions/skills/config/MCP/jobs) |
| 350 | +HERMES_DASHBOARD_URL=http://127.0.0.1:9119 |
| 351 | +
|
| 352 | +# Only if your gateway was started with API_SERVER_KEY=... — paste the same value: |
| 353 | +# HERMES_API_TOKEN=*** |
| 354 | +
|
| 355 | +# Optional: password-protect the web UI itself |
| 356 | +# HERMES_PASSWORD=*** |
| 357 | +``` |
| 358 | + |
| 359 | +### Common pairing scenarios |
| 360 | + |
| 361 | +| Scenario | Set this | |
| 362 | +|---|---| |
| 363 | +| Workspace + gateway on the same machine | `HERMES_API_URL=http://127.0.0.1:8642`, `HERMES_DASHBOARD_URL=http://127.0.0.1:9119` | |
| 364 | +| Gateway on a remote server (Tailscale / VPN) | Set both URLs to the reachable IP (e.g. `http://100.x.y.z:8642`) and add `API_SERVER_HOST=0.0.0.0` to the gateway's `~/.hermes/.env` | |
| 365 | +| Already-running `hermes-agent` from upstream installer | Just set `HERMES_API_URL` + `HERMES_DASHBOARD_URL` and skip the one-liner installer | |
| 366 | +| Multiple agent profiles | Profiles live under `~/.hermes/profiles/<name>` — the dashboard switches between them at runtime; workspace follows automatically | |
| 367 | + |
| 368 | +### Live re-pairing (no restart) |
| 369 | + |
| 370 | +If you've already started the workspace, change either URL from **Settings → Connection** without restarting. Values persist to `~/.hermes/workspace-overrides.json` and gateway capabilities are reprobed on save. |
| 371 | + |
| 372 | +### Troubleshooting |
| 373 | + |
| 374 | +- **`Could not reach Hermes gateway on 8645, 8642, or 8643`** — gateway isn't running, or `HERMES_API_URL` points somewhere unreachable. Run `hermes gateway run` and re-check. |
| 375 | +- **Workspace shows "portable mode" / extended APIs missing** — dashboard isn't running. Start `hermes dashboard` in another terminal and refresh. |
| 376 | +- **`Unauthorized` on every API call** — gateway has `API_SERVER_KEY` set but workspace is missing `HERMES_API_TOKEN`. Match them. |
| 377 | +- **`Could not connect` from your phone over Tailscale** — gateway is bound to loopback. Set `API_SERVER_HOST=0.0.0.0` in `~/.hermes/.env` and restart it. |
| 378 | + |
| 379 | +--- |
| 380 | + |
315 | 381 | ## 🐳 Docker Quickstart |
316 | 382 |
|
317 | 383 | [](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=outsourc-e/hermes-workspace) |
|
0 commit comments