Hermes Agent upstream is building its own generalized ACP client. When it lands, this project's purpose gets absorbed into core and these patches can be deleted. This file tracks what to watch and how to migrate.
The successor: NousResearch/hermes-agent#5257
"feat: Generalized ACP client for multi-agent CLI orchestration" (open, needs-decision, P4 — created 2026-04-05, untouched for months).
Proposal:
agent/acp_client.py— genericACPClientrefactored fromcopilot_acp_client.pyagent/acp_agent_registry.py— registry mapping 14 agents (Claude Code, Codex, Gemini, Cursor, Copilot, Kiro, KiloCode, OpenCode, Kimi, Qwen, Cline, Amp, Droid, iFlow) to ACP launch commands, withHERMES_ACP_{NAME}_COMMANDenv overrides- Provider overlays per agent (
claude-acp,codex-acp, ...) - Any
acp://{agent}URL routes to the generic client copilot_acp_client.pybecomes a thin backwards-compatible wrapper
OpenCode is already on their 14-agent list.
- #19493 (open, P3) — Auto-detect
opencode acpcommand syntax fordelegate_tasksubagents. Upstream already verified OpenCode ACP works end-to-end with Hermes viaCopilotACPClient; proposal is to make_resolve_args()return["acp"]when the command basename isopencode. - #16282 (closed, sweeper:not-planned) — Generic ACP-harness request was closed; their chosen route is #5257, not per-harness feature requests. This is why we are NOT filing PRs or new issues — nothing to join.
- Check whether upstream's registry names the provider slug
opencode-acp.- If yes:
config.yamlkeeps working as-is (provider: opencode-acp,base_url: acp://opencode). Just delete the patch set and the local client/provider files, and upstream handles the rest. - If no (e.g.
opencodeoroc-acp): one-line change inconfig.yamlplus any fallback-chain entries — no client changes needed.
- If yes:
git -C ~/.hermes/hermes-agent pull— nothing of this project lives in that tree anymore (v1.2.0+ is user-dir only), so updates are safe.- Replace this repo's
plugin/opencode_acp_client.py+plugin/__init__.pywith a thin profile pointing at upstream's client (or remove the plugin dir entirely if upstream shipsopencode-acpitself). - Verify:
hermes chat(model through OpenCode ACP) +hermes model(pick a model, switch live) — same smoke tests as the original rollout. - Archive this repo (or repurpose as the migration guide); update this file to point at the final upstream state.
- v1.2.0 (2026-09) removed the core-patch flow entirely: the plugin now
supplies its own ACP client via the
create_clientprovider seam (same as Hermes's built-incopilot-acp). No files in~/.hermes/hermes-agentare touched, so upstream drift can no longer break the install. The history below is kept for context. - Patches were originally built against hermes-agent @ 222465d; by the time they were re-verified the local tree had moved to bdc5b1f74 (thousands of commits later) and patch 010 (models.py) had already needed context rescue once. Upstream moves fast (~125 merged PRs per release window) — that drift is exactly why the patch flow was retired.
- Live install =
~/.hermes/plugins/model-providers/opencode-acp/(user-dir plugin, updates never touch it), in sync with this repo.