33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
---
|
|
title: Persistent Shells
|
|
type: concept
|
|
status: active
|
|
created: 2026-07-22
|
|
updated: 2026-07-22
|
|
verified_on: 2026-07-22
|
|
confidence: high
|
|
tags: [concept, terminal]
|
|
sources: [raw/configs/hermes-config-sanitized.txt]
|
|
---
|
|
|
|
# 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 [[runbooks/troubleshoot-tool-loop]] for the related tool-loop guardrails that catch some of this.
|
|
|
|
## Related
|
|
- [[systems/terminal-backend]]
|
|
- [[systems/hermes-agent]]
|
|
- [[concepts/tool-calling]]
|