Persistent Shells

Idea

A background shell session that survives across separate Hermes turns/requests, instead of spawning and tearing down a fresh shell each time — so state (working directory, exported variables, long-running processes) carries over.

How this install implements it

  • Verified (~/.hermes/config.yaml): terminal.persistent_shell: true
  • Backend: local (not containerized separately from the agent process)
  • Working directory: /home/hermes/workspace
  • Timeout: 180s
  • Home mode: auto
  • Container CPU: 1

Why it matters here

Enables multi-step CLI workflows (e.g. a long git operation, a build, a watch process) to be resumed across turns without Hermes re-establishing context each time. The tradeoff is a shell can be left in a bad state (stuck process, wrong directory) that silently affects the next turn — see troubleshoot-tool-loop for the related tool-loop guardrails that catch some of this.