Files
command-center/agent/managed-skills/hermes-live-config-edit/SKILL.md
T
Frank 9bfa0be85d chore(skills): promote runbook skills to managed-skills; drop superseded SKILL.md
- 31 new managed skills (anubis/arr/authentik/hermes/freetoken/podman/llm-swap
  runbooks etc.) now tracked.
- Removed superseded skills: omp_harness_config, peon_ping_integration
  (replaced by user-authored peon-ping-* managed skills),
  rocmfp4-strix-benchmark-orchestration.
- New memory-root skills: niri_compositor_ops, omp_git_workflow,
  omp_model_config, quadlet-media-migration, homelab-service-triage,
  hermes-dankclaw-ops, frank-default-large-ops, caddy-auth-dns-playbook.
2026-09-09 16:20:28 -07:00

2.5 KiB

name, description
name description
hermes-live-config-edit Runbook for changing Hermes (Dankclaw) live config.yaml — model routing, providers, aux routes — including backup, apply, restart, and verification steps

Editing live Hermes config on Dankclaw

Hermes-webui/gateway read /home/dank/Containers/hermes/data/config.yaml (dir is drwx------ uid 109999; all reads/edits need sudo). The repo file dankclaw/hermes/config.yaml.example is a sanitized backup and can lag live — always diff the live file first; never treat the example as truth.

Procedure

  1. Backup first: sudo cp -a .../config.yaml .../config.yaml.bak-YYYYMMDD (in-dir trash .AGENTTRASH/ also exists for removals).
  2. Apply change with surgical sudo sed -i or full-file write; YAML comments in the live file are tool-generated — preserve them.
  3. Sweep stale references across the whole data dir, not just config.yaml: sudo grep -rln "<old-id>" /home/dank/Containers/hermes/data --include="*.yaml" --include="*.json". Session files/MEMORY.md are historical — leave them.
  4. Derived caches: webui/models_cache.json is keyed by a config fingerprint (_source_fingerprint.config_yaml mtime/size); after edits it's stale. Either let it regenerate lazily or trash it (mv to data dir .AGENTTRASH/) — never hand-edit.
  5. Restart the model-consuming units (they parse config at startup): systemctl --user restart hermes-webui.service hermes.service. hermes-dashboard.service is unaffected by routing changes.
  6. Verify behaviorally, not by status codes: one tiny completion per endpoint with the exact served id — POST /v1/chat/completions on 7770 (Dankclaw, llama.cpp serves alias frank-large), on Dankserver 7770 (FreeToken REQUIRES an explicit model field), and on 7771/v1 (FLM routes by exact registry tag, e.g. gemma4-it:e4b; unknown tags answer HTTP 200 with {"error":"Failed to load <tag> model!"} — status-code checks silently pass).
  7. Sync the repo backup (dankclaw/hermes/config.yaml.example) to the live shape, redacting secrets (password_hash, phone account stay live-only), then run ./tests/run.sh before commit.

Gotchas

  • provider: custom + base_url entries route by base_url and send the model id verbatim; named providers (dankclaw-large, dankserver-small, dankclaw-npu) resolve via their api: URL.
  • Renaming a served alias anywhere (serve scripts, env ALIAS) MUST propagate to this config in the same change or Hermes requests 404 on nonexistent models — this exact gap caused the 2026-09-05 outage.