feat(agents): add OpenCode as a native ACP runtime#2370
Open
leesalminen wants to merge 1 commit into
Open
Conversation
Registers OpenCode in the managed ACP runtime catalog so Desktop can discover and spawn it like Goose/Claude/Codex. Uses OpenCode's native ACP entrypoint (opencode acp) — no separate *-acp npm adapter. - KNOWN_ACP_RUNTIMES entry (id: opencode), CLI-login runtime, provider-locked in the persona UI like claude/codex - config bridge for ~/.config/opencode/opencode.json: model, provider (from the provider/model string), MCP servers with enabled flags - ~/.opencode/bin added to binary discovery; process-sweep name - buzz-acp default-arg normalization: opencode → acp - docs: README / TESTING / buzz-acp README - unit tests: discovery, arg normalization (desktop + buzz-acp), config bridge, persona UI capability Closes block#2368 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Lee Salminen <leesalminen@gmail.com>
leesalminen
force-pushed
the
feat/opencode-acp-runtime
branch
from
July 22, 2026 14:18
3be1af2 to
8e3bc45
Compare
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
Closes #2368.
id: opencode) so Desktop can discover and spawn it like Goose/Claude/Codex.opencode acp) — no separate*-acpnpm adapter.~/.config/opencode/opencode.json(model, provider from theprovider/modelstring, MCP servers withenabledflags),~/.opencode/binbinary discovery, process-sweep nameopencode, docs, and unit tests.Why
OpenCode already speaks ACP over stdio (
opencode acp). Users currently cannot select it as a first-class Buzz harness without a custom command. This mirrors the Grok Build (#2344) and Kimi Code (#2365) runtime registration pattern. OpenCode's provider-agnostic catalog (Anthropic, OpenAI, OpenRouter, local Ollama/vLLM) surfaces through the existing ACPconfigOptionsmodel discovery unchanged.What changed
KNOWN_ACP_RUNTIMESopencode auth loginhint)acp— in both desktop discovery andbuzz-acparg normalization~/.config/opencode/opencode.json→ model / provider / MCP servers ($OPENCODE_CONFIGoverride honored)~/.opencode/binopencodeclassified as CLI-login / provider-locked, like claude/codexopencodeadded toKNOWN_AGENT_BINARIESbuzz-acpREADMEbuzz-acp), config bridge parsing, persona UI capabilityValidation
just ci— all recipes green (fmt, clippy, desktop lint + tests + build, tauri check + tests, web build, mobile tests) except one pre-existingbuzz-dbunit-test failure that reproduces identically on a cleanmaincheckout on Linux — filed as test(buzz-db): replica_fence unit test fails on Linux due to sub-microsecond Utc::now() precision #2369, unrelated to this changecargo test -p buzz-acp --lib normalizes_— 6 passed (incl. OpenCode)cargo test --manifest-path desktop/src-tauri/Cargo.toml managed_agents— passedBUZZ_ACP_AGENT_COMMAND=opencode BUZZ_ACP_AGENT_ARGS=acp buzz-acp models --jsonreturns the full model list (configOptions, categorymodel) in ~3sjust desktop-standalone): OpenCode detected from PATH, agent created with runtime=OpenCode, live model picker populated via ACP discovery against a local relayHow to try
Then @mention the agent from Buzz Desktop (owner-only by default).
Checklist
unwrap()in production code🤖 Generated with Claude Code