spawn/packages/cli/src
Ahmed Abushagur c6287b9194
Some checks are pending
CLI Release / Build and release CLI (push) Waiting to run
Lint / ShellCheck (push) Waiting to run
Lint / Biome Lint (push) Waiting to run
Lint / macOS Compatibility (push) Waiting to run
feat(cli): hermes web dashboard tunnel support (#3295)
* feat(cli): hermes web dashboard tunnel support

Hermes Agent v0.9.0 ships a local web dashboard (hermes dashboard, default
127.0.0.1:9119) for config / session / skill / gateway management. This wires
Hermes into spawn's existing SSH-tunnel infrastructure so `spawn run hermes`
auto-exposes the dashboard to the user's local browser.

- agent-setup.ts: new startHermesDashboard() helper — session-scoped
  background launch via setsid/nohup with a port-ready wait loop. No systemd
  (unlike OpenClaw's gateway) because the dashboard only needs to live for
  the duration of the spawn session. Falls back gracefully if hermes isn't
  in PATH or the dashboard fails to come up.
- Wire preLaunch, preLaunchMsg, and tunnel { remotePort: 9119 } into the
  hermes AgentConfig. Mirrors the OpenClaw tunnel pattern at
  orchestrate.ts:628 — startSshTunnel + openBrowser happen automatically.
- manifest.json: update hermes notes to mention the dashboard.
- hermes-dashboard.test.ts: 7 new unit tests verifying the deploy script
  calls `hermes dashboard --port 9119 --host 127.0.0.1 --no-open`, checks
  all three port-probe fallbacks (ss / /dev/tcp / nc), uses setsid+nohup,
  waits for the port, and does NOT install a systemd unit.
- Bump cli version 1.0.6 -> 1.0.7.

Closes #3293

* chore: bump cli to 1.0.8 to leave 1.0.7 for #3296

---------

Co-authored-by: L <6723574+louisgv@users.noreply.github.com>
2026-04-14 08:43:27 +07:00
..
__tests__ feat(cli): hermes web dashboard tunnel support (#3295) 2026-04-14 08:43:27 +07:00
aws fix(security): shell-quote package names in cloud-init scripts (#3220) 2026-04-07 15:35:44 +07:00
commands fix: resolve 4 production TypeScript type errors (#3266) 2026-04-11 17:16:47 +07:00
daytona fix(security): replace eval-style interpolation with env var in allowOpenClawPreviewOrigin (#3217) 2026-04-06 23:09:45 -07:00
digitalocean fix(security): shell-quote package names in cloud-init scripts (#3220) 2026-04-07 15:35:44 +07:00
gcp fix(security): shell-quote package names in cloud-init scripts (#3220) 2026-04-07 15:35:44 +07:00
hetzner fix(security): shell-quote package names in cloud-init scripts (#3220) 2026-04-07 15:35:44 +07:00
local fix: resolve 4 production TypeScript type errors (#3266) 2026-04-11 17:16:47 +07:00
shared feat(cli): hermes web dashboard tunnel support (#3295) 2026-04-14 08:43:27 +07:00
sprite fix(security): expand $HOME before path validation in downloadFile (#3080) 2026-03-30 19:56:05 +00:00
flags.ts fix(cli): add --flat to KNOWN_FLAGS so spawn list --flat works (#3137) 2026-04-01 16:33:45 +07:00
guidance-data.ts refactor: remove dead exports only used within their own files (#2431) 2026-03-10 08:51:15 -04:00
history.ts feat: recursive spawn (--beta recursive) (#2978) 2026-03-25 10:42:09 -07:00
index.ts feat: --beta skills — pre-install MCP servers and skills on VMs (#3258) 2026-04-10 09:02:16 -07:00
manifest.ts fix: always fetch manifest from GitHub, 3s timeout for bad wifi (#3272) 2026-04-12 07:54:40 +07:00
picker.ts refactor: remove dead exported types from picker.ts and spawn-config.ts (#2553) 2026-03-12 21:43:05 -04:00
security.ts fix(test): check sensitive paths before lstat to fix macOS permission error (#3157) 2026-04-03 10:12:20 +07:00
unicode-detect.ts feat: Bun workspace monorepo — packages/cli + packages/shared (#1853) 2026-02-23 22:07:05 -08:00
update-check.ts fix(security): pipe install script via temp file instead of bash -c to prevent command injection (#3292) 2026-04-13 15:55:24 +07:00