hermes-agent: onboard Nous-Hermes-on-Goose to homelab clients #1

Merged
dtoro merged 1 commits from hermes-onboarding into main 2026-06-01 22:27:09 +02:00
Owner

Summary

  • bootstrap.sh --with-hermes installs Goose, drops ~/.config/goose/config.yaml, symlinks bin/hermes, HERMES.md, and .goosehints.
  • New bin/hermes wrapper decrypts the OpenRouter key (via homelab secret) and execs goose session.
  • New sops secret secrets/openrouter-api-key.yaml (placeholder; seed real sk-or-... via sops before first use).
  • homelab client add --with-hermes grants the secret to the new host at finalize time; client remove revokes.
  • operations/hermes-agent.md covers onboarding, verification, troubleshooting.

Test plan

  • Seed secrets/openrouter-api-key.yaml with a real OpenRouter key.
  • homelab client add republic-laptop --finalize-pubkey <pubkey> --with-hermes from hubris.
  • On republic-laptop: sudo bash /tmp/bootstrap.sh --with-mcp --with-hermes (or rerun existing bootstrap).
  • Verify which goose && which hermes, goose info -v.
  • hermes "what LXCs are running?" — should hit list_lxcs MCP tool (only after MCP server migrates to streamable_http; see follow-up #1 in hermes-agent.md).
  • hermes "create /tmp/hello.txt with content world" — exercises the developer extension's editor tool.

Known follow-up

The homelab MCP server at mcp/server.py:336 still runs SSE-only. Goose 1.x deprecated SSE, so the homelab extension in the Goose config (typed as streamable_http) won't connect until the FastMCP transport is migrated. Tracked in operations/hermes-agent.md follow-ups.

🤖 Generated with Claude Code

## Summary - `bootstrap.sh --with-hermes` installs Goose, drops `~/.config/goose/config.yaml`, symlinks `bin/hermes`, HERMES.md, and `.goosehints`. - New `bin/hermes` wrapper decrypts the OpenRouter key (via `homelab secret`) and execs `goose session`. - New sops secret `secrets/openrouter-api-key.yaml` (placeholder; seed real `sk-or-...` via `sops` before first use). - `homelab client add --with-hermes` grants the secret to the new host at finalize time; `client remove` revokes. - `operations/hermes-agent.md` covers onboarding, verification, troubleshooting. ## Test plan - [ ] Seed `secrets/openrouter-api-key.yaml` with a real OpenRouter key. - [ ] `homelab client add republic-laptop --finalize-pubkey <pubkey> --with-hermes` from hubris. - [ ] On republic-laptop: `sudo bash /tmp/bootstrap.sh --with-mcp --with-hermes` (or rerun existing bootstrap). - [ ] Verify `which goose && which hermes`, `goose info -v`. - [ ] `hermes "what LXCs are running?"` — should hit `list_lxcs` MCP tool (only after MCP server migrates to streamable_http; see follow-up #1 in hermes-agent.md). - [ ] `hermes "create /tmp/hello.txt with content world"` — exercises the developer extension's editor tool. ## Known follow-up The homelab MCP server at `mcp/server.py:336` still runs SSE-only. Goose 1.x deprecated SSE, so the `homelab` extension in the Goose config (typed as `streamable_http`) won't connect until the FastMCP transport is migrated. Tracked in `operations/hermes-agent.md` follow-ups. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
dtoro added 1 commit 2026-05-31 01:19:34 +02:00
`bootstrap.sh --with-hermes` installs the Goose CLI, drops a Goose
config pinning the OpenRouter provider + Nous Hermes model + the
homelab MCP extension, symlinks `bin/hermes` and HERMES.md, and links
HERMES.md as `.goosehints` so the persona is injected as the system
prompt every session.

`bin/hermes` decrypts `secrets/openrouter-api-key.yaml` via the existing
`homelab secret` flow and execs `goose session`.

`homelab client add --with-hermes` grants the new sops secret to the
host's age_pubkey at finalize time (parallel to the existing
shared-secrets grant). `client remove` revokes it.

`operations/hermes-agent.md` covers the end-to-end flow, verification,
troubleshooting, and queues one follow-up: the MCP server still runs
SSE-only but Goose 1.x deprecated SSE — the Goose config targets
`streamable_http` and the `homelab` extension won't connect until
`mcp/server.py` migrates. The `developer` extension (shell + edit +
`homelab` CLI) carries the agent in the meantime.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dtoro merged commit ce6df85bb5 into main 2026-06-01 22:27:09 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dtoro/oikos#1