feat(hermes): promote Hermes Agent to plugin install from repo subdirectory#71
Merged
spencercharest merged 2 commits intoJul 20, 2026
Conversation
…ectory Hermes >= v2026.6.19 installs plugins from a repo subdirectory (hermes plugins install owner/repo/path --enable), so the plugin ships from plugins/zero-hermes/hermes/ directly — no dedicated mirror repo. The shared ensure-runner hook and skill are vendored into the plugin directory by scripts/sync-hermes.sh (subdir installs ship only that directory); CI fails on drift. Native 'hermes plugins update' does not apply to subdir installs (no .git is kept), so the --force reinstall is the documented update path. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nvironments Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
spencercharest
marked this pull request as ready for review
July 20, 2026 15:17
spencercharest
deleted the
spencer/zero-469-promote-hermes-agent-to-plugin-install
branch
July 20, 2026 15:18
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.
Promotes Hermes Agent from a standalone skills-only install to a native plugin install — without a dedicated mirror repo. Hermes >= v2026.6.19 installs plugins straight from a repo subdirectory:
Closes ZERO-469.
What's in here
plugins/zero-hermes/hermes/— the installable plugin (recovered from feat(hermes): add ZERO-294 Hermes Agent adapter #55, verified against Hermes v2026.7.7.2's plugin API):on_session_start→ ensure-runner,pre_llm_call→ Zero context,pre_tool_call→ blockszero fetchwithout--max-pay(Hermes hooks can block, not approve),/zerocommand, plugin-namespaced skill.ensure-runner.shand skill are vendored in byscripts/sync-hermes.sh(replaces feat(hermes): add ZERO-294 Hermes Agent adapter #55's dist-assemblybuild-hermes.sh);.github/workflows/hermes-plugin-sync.ymlfails PRs on drift (same pattern ashooks-fragment-sync).hermesentry gains aninstallblock (minCli 1.14.0); standalone skills fallback stays (plugin skills are explicit-load only in Hermes, so the flat~/.hermes/skillscopy remains the discoverable one).guides/hermes-agent.md(new), Hermes row inguides/agent-install.md, README link.make minor→ 1.11.0; the two new Hermes manifests joinMANIFESTS, with the bump recipe extended to handle the YAML manifest.Why no dedicated repo
A CI-synced mirror would be a permanent maintenance + trust liability (second agent-installed repo, push credentials, silent-staleness failure mode) and its only unique win is native
hermes plugins update— which doesn't matter: subdir installs keep no.git, so the--forcereinstall is the update path (same end state as a pull of main), to be driven by ZERO-466's sweep. Details in the ticket comment.Verification (e2e, Hermes v2026.7.7.2 from PyPI, isolated
HERMES_HOME)hermes plugins install "file://<this branch>#plugins/zero-hermes/hermes" --enable— non-interactive, lands as~/.hermes/plugins/zero(name fromplugin.yaml), enabled inconfig.yaml, shown aszero / enabled / 1.11.0inhermes plugins list.--force --enablere-run converges (the update path).hermes plugins update zerofails with "not installed from git" — expected and documented in the guide.owner/repo/subdirshorthand verified over the network (NousResearch/hermes-agent/plugins/platforms/teams).register(ctx)smoke-tested against a stub context: hooks/command/skill all register; guardrail blocks caplesszero fetch, passes capped.Note: the exact
officialzeroxyz/...install command only works after this merges (subdir installs clone the default branch), so the doc'd command is unverifiable pre-merge by construction — thefile://+ shorthand tests above cover both halves of it.🤖 Generated with Claude Code