hermes - ✅(Solved) Fix [Setup]: profile wrapper dir /opt/data/.local/bin not on PATH in Docker image, and no ~/.bashrc to edit [2 pull requests, 1 participants]

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…
GitHub stats
NousResearch/hermes-agent#13739Fetched 2026-04-22 08:04:24
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Participants
Timeline (top)
labeled ×3cross-referenced ×2

Fix Action

Fixed

PR fix notes

PR #13755: fix(docker): put profile-wrapper dir /opt/data/.local/bin on PATH

Description (problem / solution / changelog)

Summary

Fixes #13739. `hermes profile create <name>` writes a wrapper script to `/opt/data/.local/bin` (derived from `$HERMES_HOME`), but that path is not on the container's `PATH`. Additionally the `hermes` user has no personal `~/.bashrc` — only `/etc/skel/.bashrc` exists — so the tool's suggested remediation ('add to ~/.bashrc') does not apply cleanly inside the official image.

Repro per the issue: ``` docker run -it nousresearch/hermes-agent:latest bash /opt/hermes/.venv/bin/hermes profile create hermes-test hermes-test # command not found ```

Fix

One-line Dockerfile `ENV` after the existing `HERMES_HOME` line:

```dockerfile ENV PATH="/opt/data/.local/bin:${PATH}" ```

Since the Dockerfile already pins `HERMES_HOME=/opt/data`, the derived wrapper directory is known at build time.

Relationship to other open PRs

Orthogonal to #12199 (adds `/opt/hermes/.venv/bin` to PATH so the `hermes` binary is callable in `docker exec` shells). Different directory, different concern — both can coexist as additive `ENV PATH=...` lines.

Test

Behavior change is a single ENV directive in the image — verified locally by building the image and running: ``` $ docker run --rm -it <built-image> bash -c 'echo $PATH | tr : \n | grep ".local/bin"' /opt/data/.local/bin ```

Closes #13739.

Changed files

  • Dockerfile (modified, +5/-0)

PR #13778: fix: add /opt/data/.local/bin to PATH in Docker image (Closes #13739)

Description (problem / solution / changelog)

Summary

Inside the official Docker image, hermes profile create creates wrappers at /opt/data/.local/bin but that directory is not on PATH, causing command not found.

Add ENV PATH="/opt/data/.local/bin:${PATH}" so wrappers are discoverable out of the box without touching shell configs.

Changes

  • Dockerfile: Add ENV PATH="/opt/data/.local/bin:${PATH}"

Closes #13739

Changed files

  • Dockerfile (modified, +1/-0)

Code Example

/opt/data/.local/bin is not in your PATH.
  Add to your shell config (~/.bashrc or ~/.zshrc):
    export PATH="$HOME/.local/bin:$PATH"

---

hermes@<container>:/$ find / -name .bashrc 2>/dev/null
   /etc/skel/.bashrc

---

ENV PATH="/opt/data/.local/bin:${PATH}"
RAW_BUFFERClick to expand / collapse

What's Going Wrong?

Running hermes profile create <name> inside the official Docker image creates a wrapper at /opt/data/.local/bin/<name> and prints:

⚠ /opt/data/.local/bin is not in your PATH.
  Add to your shell config (~/.bashrc or ~/.zshrc):
    export PATH="$HOME/.local/bin:$PATH"

Two problems specific to the Docker image:

  1. /opt/data/.local/bin is not on PATH by default, so the wrapper the tool just created isn't callable without manual setup.
  2. The hermes user has no ~/.bashrc — only /etc/skel/.bashrc exists, so the suggested remediation doesn't apply cleanly:
    hermes@<container>:/$ find / -name .bashrc 2>/dev/null
    /etc/skel/.bashrc

Since HERMES_HOME=/opt/data and the wrapper path is derived from it, the Dockerfile already knows where this dir will be. It should be on PATH out of the box.

Reproduce

  1. docker run -it nousresearch/hermes-agent:latest bash
  2. /opt/hermes/.venv/bin/hermes profile create hermes-test
  3. hermes-testcommand not found

Suggested Fix

In Dockerfile, add near the other ENV lines (e.g., after ENV HERMES_HOME=/opt/data):

ENV PATH="/opt/data/.local/bin:${PATH}"

That keeps the wrapper discoverable for both hermes and root, and removes the need for users to touch shell configs that don't exist in the image. The warning message from profile create could also suppress the shell-config hint when it detects it's running inside the official image (e.g., a marker env var set by the Dockerfile), though the PATH fix alone resolves the functional issue.

Related

  • #12541 — PATH mismatch between hermes user shell and hermes agent process (different symptom, same general area).

Environment

  • Official image: nousresearch/hermes-agent:latest (Debian 13.4 base per Dockerfile)
  • User: hermes (UID 10000)

extent analysis

TL;DR

Adding ENV PATH="/opt/data/.local/bin:${PATH}" to the Dockerfile resolves the issue by ensuring the wrapper is discoverable.

Guidance

  • The problem arises because /opt/data/.local/bin is not in the default PATH within the Docker image, making the created wrapper inaccessible.
  • To verify the fix, run the reproduction steps and check if the hermes-test command is recognized after adding the ENV line to the Dockerfile.
  • The suggested fix modifies the PATH environment variable to include the wrapper directory, making it discoverable without requiring manual shell configuration changes.
  • Consider suppressing the shell-config hint in the warning message when running inside the official image to improve user experience.

Example

ENV HERMES_HOME=/opt/data
ENV PATH="/opt/data/.local/bin:${PATH}"

Notes

This solution assumes that the Dockerfile has the flexibility to modify environment variables and that the HERMES_HOME environment variable is set as described.

Recommendation

Apply the workaround by adding the ENV PATH line to the Dockerfile, as it directly addresses the issue without requiring version upgrades or complex changes.

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

hermes - ✅(Solved) Fix [Setup]: profile wrapper dir /opt/data/.local/bin not on PATH in Docker image, and no ~/.bashrc to edit [2 pull requests, 1 participants]