hermes-agent/hermes_cli/subcommands
ethernet 694bd9ab2e feat(update): install manifest, release channels, and eject
.hermes-install.json marks a checkout as source-managed or
desktop-bundled and records its update channel. A missing file means
source mode on the main channel, so no existing install changes.

`hermes update` reads the manifest:
- On a bundled install it refuses and points at the in-app updater.
- On the stable channel it fast-forwards the checkout to the newest
  final release tag (vX.Y.Z, three-digit major cap so legacy CalVer
  tags never match) instead of origin/main. The ZIP fallback resolves
  the tag through the GitHub API because that path runs when git file
  I/O is broken.
- `update.channel` in config.yaml overrides the channel for source
  installs. "auto" defers to the manifest.

`hermes update --eject` is the exit from desktop management. On a
bundled install it downloads Hermes Setup and launches it pinned to
the exact commit the bundle was built from; the installer creates a
normal source checkout at ~/.hermes/hermes-agent. Hermes Setup accepts
the new `--pin-commit <sha>` argument for this flow. On a
source-managed install, --eject with --channel only switches the
channel. The "ejected" manageStyle is the permanent opt-out that stops
future auto-adoption.
2026-08-10 02:34:50 -04:00
..
__init__.py
…
_shared.py
…
acp.py
…
approvals.py
…
auth.py
…
backup.py
…
claw.py
…
config.py
…
console.py
…
cron.py feat(cron): per-job durable notepad — KV scratchpad surviving scheduled runs 2026-08-07 08:57:48 -07:00
dashboard.py
…
debug.py
…
doctor.py feat(doctor): add opt-in `hermes doctor --live` real-call backend probes 2026-08-07 09:07:48 -07:00
dump.py
…
gateway.py
…
gui.py
…
hooks.py
…
import_agent.py
…
import_cmd.py
…
insights.py
…
login.py
…
logout.py
…
logs.py
…
mcp.py
…
memory.py
…
model.py
…
monitoring.py
…
pairing.py
…
pause.py feat(cli): global emergency stop — `hermes pause` / `hermes resume` 2026-08-07 08:58:14 -07:00
plugins.py feat(plugins): load portable agent components 2026-08-07 09:44:21 -07:00
profile.py
…
prompt_size.py
…
security.py
…
setup.py
…
skills.py
…
skin.py
…
slack.py
…
status.py
…
sync.py
…
tools.py
…
uninstall.py
…
update.py feat(update): install manifest, release channels, and eject 2026-08-10 02:34:50 -04:00
verify.py Port from superagent-ai/grok-cli: verify subsystem (run-recipe detection + environment manifest + hermes verify smoke runner) 2026-08-07 10:11:05 -07:00
version.py
…
webhook.py
…
whatsapp.py
…