hermes - 💡(How to fix) Fix [Bug]: venv/bin/hermes entrypoint is a self-referencing bash wrapper, causing infinite recursion

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…

Error Message

The hermes command hangs silently with no output. No error message, no CPU spike — just Running hermes hangs silently with no output, no error, and no CPU activity. The process forks indefinitely because venv/bin/hermes is a bash wrapper that execs into itself in an infinite loop. The process must be killed manually (Ctrl+C or kill).

Additional Logs / Traceback (optional)

Root Cause

Root Cause

Fix Action

Fix / Workaround

Workaround

Code Example

Report     https://paste.rs/hOgCV
agent.log  https://paste.rs/fOHH9

---
RAW_BUFFERClick to expand / collapse

Bug Description

Bug

After installing via the recommended command:

curl -fsSL
https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh |
bash

The hermes command hangs silently with no output. No error message, no CPU spike — just a frozen process.

Root Cause

The installed ~/.local/bin/hermes is a bash wrapper that execs into venv/bin/hermes:

#!/usr/bin/env bash
unset PYTHONPATH
unset PYTHONHOME
exec "/path/to/.hermes/hermes-agent/venv/bin/hermes" "$@"

But venv/bin/hermes is also a bash wrapper with the exact same content — it execs into
itself, causing infinite recursion:

venv/bin/hermes (broken)

#!/usr/bin/env bash
unset PYTHONPATH
unset PYTHONHOME
exec "/path/to/.hermes/hermes-agent/venv/bin/hermes" "$@" # ← calls itself!

The correct venv/bin/hermes should be a Python script generated by pip, like
venv/bin/hermes-agent already is:

#!/path/to/venv/bin/python3
import sys
from hermes_cli.main import main
sys.exit(main())

Workaround

Reinstall the package to let pip regenerate the entrypoint:

cd ~/.hermes/hermes-agent && uv pip install -e ".[all]"

After this, hermes works correctly.

Environment

  • macOS Darwin 25.3.0 (Apple Silicon)
  • Python 3.11.13
  • Hermes Agent v0.13.0
  • Shell: zsh

Steps to Reproduce

  1. Run the install command: curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
  2. Reload shell: source ~/.zshrc (or ~/.bashrc)
  3. Run: hermes
  4. The command hangs with no output — process must be killed manually.

Expected Behavior

Running hermes should launch the interactive TUI and start a conversation immediately. The venv/bin/hermes entrypoint should be a Python script (as generated by pip) that calls hermes_cli.main:main, not a bash wrapper.

Actual Behavior

Running hermes hangs silently with no output, no error, and no CPU activity. The process forks indefinitely because venv/bin/hermes is a bash wrapper that execs into itself in an infinite loop. The process must be killed manually (Ctrl+C or kill).

Affected Component

CLI (interactive chat)

Messaging Platform (if gateway-related)

No response

Debug Report

Report     https://paste.rs/hOgCV
agent.log  https://paste.rs/fOHH9

Operating System

mac 26.3.1

Python Version

3.13.2

Hermes Version

Hermes Agent v0.13.0 (2026.5.7)

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

No response

Proposed Fix (optional)

No response

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

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