hermes - 💡(How to fix) Fix TERMINAL_ENV in ~/.hermes/.env overrides terminal.backend in config.yaml

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

When a user switches terminal backends via hermes config set terminal.backend local (or by editing config.yaml directly), the change appears to take effect — hermes config show confirms terminal.backend: local — but the gateway, scheduler, and some agent sessions continue executing tools against the previously configured backend (e.g. docker). The root cause is a leftover TERMINAL_ENV=<backend> line in ~/.hermes/.env, but this wasn't set explicitly. Result is a flaky docker vs local backend behaviour.

This is a footgun specifically for users who set up Hermes with docker, then later switch to local.

Error Message

subprocess.CalledProcessError: Command '['/usr/local/bin/docker', 'run', '-d', '--init', ...

Root Cause

When a user switches terminal backends via hermes config set terminal.backend local (or by editing config.yaml directly), the change appears to take effect — hermes config show confirms terminal.backend: local — but the gateway, scheduler, and some agent sessions continue executing tools against the previously configured backend (e.g. docker). The root cause is a leftover TERMINAL_ENV=<backend> line in ~/.hermes/.env, but this wasn't set explicitly. Result is a flaky docker vs local backend behaviour.

Fix Action

Workaround

Manually edit ~/.hermes/.env and comment out the TERMINAL_ENV=... line, then restart the gateway.

Code Example

subprocess.CalledProcessError: Command '['/usr/local/bin/docker', 'run', '-d', '--init', ...
RAW_BUFFERClick to expand / collapse

Bug: TERMINAL_ENV in ~/.hermes/.env overrides terminal.backend in config.yaml

Summary

When a user switches terminal backends via hermes config set terminal.backend local (or by editing config.yaml directly), the change appears to take effect — hermes config show confirms terminal.backend: local — but the gateway, scheduler, and some agent sessions continue executing tools against the previously configured backend (e.g. docker). The root cause is a leftover TERMINAL_ENV=<backend> line in ~/.hermes/.env, but this wasn't set explicitly. Result is a flaky docker vs local backend behaviour.

This is a footgun specifically for users who set up Hermes with docker, then later switch to local.

Repro

  1. Install Hermes, run setup with terminal backend = docker. .env ends up with TERMINAL_ENV=docker.
  2. Later: hermes config set terminal.backend local (or edit config.yaml directly).
  3. hermes config showterminal.backend: local
  4. Restart the gateway. Restart the Mac. (Both done — no effect.)
  5. Interact with hermes for 30mins
  6. Send a message that triggers local access, agent's terminal tool call fails with:
    subprocess.CalledProcessError: Command '['/usr/local/bin/docker', 'run', '-d', '--init', ...
    because Docker Desktop isn't running.
  7. Scheduled cron jobs hit the same error; daily digests silently fail or run in degraded mode.

Workaround

Manually edit ~/.hermes/.env and comment out the TERMINAL_ENV=... line, then restart the gateway.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING