Wires Hermes Agent to OpenCode over ACP (JSON-RPC over stdio). One persistent process and session — streaming, tool calls, and model switching all stay in place. 200+ models across Anthropic, OpenAI, Google, DeepSeek and more, with OpenCode handling auth and fallbacks.
OpenCode is the backend, so you inherit its agentic loop — model selection, tool use, plugin fallbacks — while Hermes drives the ACP wire.
Install OpenCode, copy the plugin into your Hermes checkout, apply the patch set, then pick a model.
# 1. OpenCode CLI + auth (skip if already installed) npm i -g opencode-ai@latest opencode auth login # 2. Clone this repo git clone https://github.com/jovylle/hermes-opencode-acp.git cd hermes-opencode-acp # 3. Copy plugin + apply patches (skip if already patched) cp plugin/opencode_acp_client.py ~/.hermes/hermes-agent/agent/ mkdir -p ~/.hermes/hermes-agent/plugins/model-providers/opencode-acp cp plugin/opencode_acp_provider.py ~/.hermes/hermes-agent/plugins/model-providers/opencode-acp/__init__.py cd ~/.hermes/hermes-agent git apply $(pwd)/../../hermes-opencode-acp/patches/*.patch # 4. Pick a model — shows the live OpenCode catalog hermes model # OpenCode → OpenCode ACP → pick (e.g. opencode/deepseek-v4-flash) # 5. Restart and use hermes gateway restart hermes chat
Either run hermes model and pick from the live catalog, or set it directly.
model: provider: opencode-acp model: opencode/deepseek-v4-flash base_url: acp://opencode api_mode: chat_completions # fallback chain — free models first, paid when exhausted fallback_providers: - provider: opencode-acp model: opencode/mimo-v2.5-free base_url: acp://opencode - provider: opencode-acp model: opencode/kimi-k2.6 base_url: acp://opencode
Hermes core is planning a generalized ACP client — and OpenCode is already on their list.
Core proposes a generic ACPClient + registry of 14 agents (Claude Code, Codex, Gemini, Cursor, Copilot, OpenCode, Kimi, Qwen…). When it lands, this patch set gets absorbed upstream and config stays compatible — provider: opencode-acp keeps working as-is. The migration checklist lives in UPSTREAM.md.