Repository navigation
fix(install): put hermes-acp on PATH — install.sh launcher (salvage #73477) + hermes update self-heal + Buzz docs - #73501
Merged
Conversation
setup_path() wrote a `hermes` launcher to ~/.local/bin but nothing for `hermes-acp`. That console script exists only inside the venv, which is not on the login-shell PATH. ACP hosts resolve the agent by command name against that PATH, so an otherwise healthy install looks absent to them. Buzz Desktop ships a Hermes preset that spawns `hermes-acp` and reports the runtime as unavailable; Zed and JetBrains configs that name the bare command have the same problem. Write a hermes-acp launcher next to the hermes one, dispatching to the acp subcommand. Same PYTHONPATH/PYTHONHOME clearing, and the same rm -f before cat > so an older symlink into the venv cannot be followed and stomp the console script (#21454). Uninstall removes both launchers. tests/test_install_sh_acp_launcher.py drives the block out of install.sh rather than asserting on a copy, covering the venv and non-venv branches plus the symlink-stomp case. Reverting the install.sh change turns all three red. Signed-off-by: SHL0MS <[email protected]>
…op as an ACP host Existing installs predate the install.sh hermes-acp launcher, and hermes update never re-runs setup_path, so ACP hosts (Zed, JetBrains, Buzz) still resolve Hermes as unavailable until a reinstall. _ensure_acp_launcher() writes the launcher next to an existing hermes command in ~/.local/bin or /usr/local/bin during hermes update — delegating to the sibling launcher so it is correct for every install layout. Never follows symlinks (#21454), skips unwritable dirs, no-op on Windows (venv Scripts is already on PATH). Docs: add a Buzz Desktop section to the ACP page (en + zh-Hans).
teknium1
force-pushed
the
salvage/73477-hermes-acp-launcher
branch
from
July 28, 2026 17:27
c300cf9 to
81a1ffc
Compare
૮ >ﻌ< ა ci reviewran on 82c49ac ℹ️ InfoDesktop E2E visual evidence · View test artifacts · View job1 visual diff. inline evidence upload failed. Failed to upload diff-665a0833239e-onboarding-overlay-diff.png with gh image (exit code 1): Error uploading /home/runner/work/_temp/e2e-evidence/diff-665a0833239e-onboarding-overlay-diff.png: step 0 (get upload token): uploadToken not found on repo page — do you have write access to NousResearch/hermes-agent? (or, if NousResearch enforces SAML SSO, authorize at https://github.com/orgs/NousResearch/sso) |
The Buzz Desktop section covered discovery only. The combination that actually needs stating: the hermes-acp toolset carries terminal and execute_code, and buzz-acp answers session/request_permission itself with allow_once instead of surfacing it. A Hermes agent in Buzz runs shell commands on the host unattended. Buzz defaults every agent to owner-only and that default holds through to the spawned process env, so nobody reaches the open state by accident. But Anyone is one dropdown change away with no warning shown, and it hands channel-wide shell access to the host. Also record that the two obvious mitigations do not work: approvals.mode manual raises the request but Buzz auto-approves it anyway, and platform_toolsets.acp does not narrow the ACP toolset. Both verified by running rm -rf through the ACP path under each setting. Amend the Approvals section too — it promised prompts route back to the editor, which is only true for hosts that choose to surface them. en + zh-Hans. Signed-off-by: SHL0MS <[email protected]>
This was referenced Jul 28, 2026
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ACP hosts (Buzz Desktop, Zed, JetBrains) can now resolve Hermes by the
hermes-acpcommand name on the login-shell PATH — on fresh installs via install.sh, and on existing installs viahermes updateself-heal.Root cause: the
hermes-acpconsole script only exists inside the install venv, which is not on the login-shell PATH, so ACP hosts that spawnhermes-acpby name (including Buzz's Hermes preset) reported Hermes as not installed on healthy installs.Salvages #73477 by @SHL0MS (commit cherry-picked with authorship preserved), plus follow-ups from us.
Changes
scripts/install.sh: write ahermes-acplauncher next to thehermesone (venv + non-venv variants, Bug: Re-running install.sh on prior install creates infinite-loop shim (CLI hangs) #21454 symlink-stomp guard) — @SHL0MShermes_cli/uninstall.py: remove the new launcher on uninstall — @SHL0MStests/test_install_sh_acp_launcher.py: 3 tests executing the real install.sh block — @SHL0MShermes_cli/main.py:_ensure_acp_launcher()—hermes updateself-heals the launcher for installs that predate it (delegates to the siblinghermeslauncher, so it's correct for every install layout; never follows symlinks; skips unwritable dirs; no-op on Windows where venv\Scripts is already on user PATH)tests/hermes_cli/test_ensure_acp_launcher.py: 9 tests covering write, idempotency, symlink guards, Windows no-op, unwritable dirswebsite/docs/user-guide/features/acp.md(+ zh-Hans): Buzz Desktop sectionValidation
env -ilogin-shellcommand -v hermes-acphermes update)_ensure_acp_launcher()run against temp HOME; shim executed,acp --check extra argargv passthrough verifiedCompanion Buzz-side fix (works for installs that exist today): block/buzz#3334.
Infographic