"command not found: hermes" after install
After Hermes moved into a virtualenv (PR #6526) the binary lives in /opt/hermes/venv/, so docker exec shells that skip the entrypoint never get it on PATH, and on bare metal your current shell hasn't reloaded the rc file the installer edited. In Docker call /opt/hermes/venv/bin/hermes directly; on a host run source ~/.bashrc, then verify with hermes doctor.
Likely cause
After the virtualenv migration (PR #6526) Hermes lives in /opt/hermes/venv/, so docker exec shells that skip the entrypoint never get it on PATH. On bare metal the installer adds ~/.local/bin to your shell rc file, but the current shell hasn't reloaded it.
The fix
- 1 In Docker, call the binary by absolute path: /opt/hermes/venv/bin/hermes.
- 2 On a host, reload your shell: source ~/.bashrc (or ~/.zshrc).
- 3 Verify with hermes doctor.
docker exec -it hermes /opt/hermes/venv/bin/hermes doctorHit a different error?
Paste any agent error and get the cause and fix in seconds.
Frequently asked questions
It works inside the container's entrypoint but not via docker exec. Why?
docker exec starts a fresh shell that skips the entrypoint where PATH is set, so the venv isn't on PATH. Call the binary by its absolute path: /opt/hermes/venv/bin/hermes.
The installer said it added Hermes to PATH, but the command still isn't found.
It edited your shell rc file, but your current shell hasn't reloaded it. Run source ~/.bashrc (or ~/.zshrc), or open a new terminal, and the command will resolve.
Where exactly is the Hermes binary now?
Since the virtualenv migration it's at /opt/hermes/venv/bin/hermes on standard installs. Pointing your scripts and cron jobs at that absolute path avoids PATH issues entirely.
Stop firefighting agent errors
Decoding errors one at a time is the manual version of what BetterClaw automates. Run your OpenClaw agents hosted with managed models, retries and config validation built in.
$19/month per agent · BYOK · 7-day money-back guarantee
