hermes - 💡(How to fix) Fix Installer symlinks node/npm/npx into ~/.local/bin ahead of nvm, but uninstall leaves them behind [2 pull requests]

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…

Root Cause

Because the installer also prepends ~/.local/bin to PATH, these symlinks take precedence over nvm's active Node version. This silently changes the user's default node, npm, and npx outside Hermes.

Fix Action

Fixed

Code Example

~/.local/bin/node -> ~/.hermes/node/bin/node
~/.local/bin/npm  -> ~/.hermes/node/bin/npm
~/.local/bin/npx  -> ~/.hermes/node/bin/npx

---

which node
node --version

---

readlink ~/.local/bin/node ~/.local/bin/npm ~/.local/bin/npx
which -a node npm npx
node --version

---

hermes uninstall --full

---

ln -sf "$HERMES_HOME/node/bin/node" "$HOME/.local/bin/node"
ln -sf "$HERMES_HOME/node/bin/npm"  "$HOME/.local/bin/npm"
ln -sf "$HERMES_HOME/node/bin/npx"  "$HOME/.local/bin/npx"
RAW_BUFFERClick to expand / collapse

Bug Description

On macOS with an existing nvm-managed Node.js installation, the Hermes installer creates these global user-level symlinks:

~/.local/bin/node -> ~/.hermes/node/bin/node
~/.local/bin/npm  -> ~/.hermes/node/bin/npm
~/.local/bin/npx  -> ~/.hermes/node/bin/npx

Because the installer also prepends ~/.local/bin to PATH, these symlinks take precedence over nvm's active Node version. This silently changes the user's default node, npm, and npx outside Hermes.

The uninstall path does not appear to clean these symlinks up. Locally, hermes uninstall --help advertises --full and --yes, and the uninstaller removes the hermes wrapper, but it does not remove ~/.local/bin/node, ~/.local/bin/npm, or ~/.local/bin/npx when they point into ~/.hermes/node.

Steps to Reproduce

  1. On macOS, have nvm installed and an active Node version, for example:
which node
node --version
  1. Install Hermes with the documented installer.
  2. Open a new shell and inspect command resolution:
readlink ~/.local/bin/node ~/.local/bin/npm ~/.local/bin/npx
which -a node npm npx
node --version
  1. Run a full uninstall:
hermes uninstall --full
  1. Inspect ~/.local/bin/node, ~/.local/bin/npm, and ~/.local/bin/npx again.

Expected Behavior

Hermes should not globally shadow an existing Node manager such as nvm unless the user explicitly opts in.

If Hermes does create user-level node, npm, or npx symlinks pointing into ~/.hermes/node, then hermes uninstall --full should remove those symlinks, after verifying that they still point into the Hermes-managed Node directory.

Actual Behavior

Hermes-managed node, npm, and npx symlinks can remain in ~/.local/bin, continuing to take precedence over nvm after uninstall and leaving the shell environment in a surprising state.

Affected Component

Setup / Installation, CLI uninstall

Operating System

macOS

Notes / Proposed Fix

The installer code appears to create the symlinks in scripts/install.sh and scripts/lib/node-bootstrap.sh using:

ln -sf "$HERMES_HOME/node/bin/node" "$HOME/.local/bin/node"
ln -sf "$HERMES_HOME/node/bin/npm"  "$HOME/.local/bin/npm"
ln -sf "$HERMES_HOME/node/bin/npx"  "$HOME/.local/bin/npx"

The uninstaller should symmetrically remove these only when they resolve under the current Hermes home, e.g. ~/.hermes/node/bin/*, so it does not affect unrelated user-managed tools.

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 - 💡(How to fix) Fix Installer symlinks node/npm/npx into ~/.local/bin ahead of nvm, but uninstall leaves them behind [2 pull requests]