Repository navigation
Description
Feature request: ACP client mode — drive external ACP agents (Codex, Claude Code) from OpenCode
Summary
OpenCode currently implements the agent side of the Agent Client Protocol: opencode acp lets any ACP-compatible editor (Zed, JetBrains AI Assistant, VS Code ACP client) drive OpenCode as an agent.
This request is for the complementary client side: let OpenCode connect to external ACP agents — e.g. Codex via @agentclientprotocol/codex-acp and Claude Code via @agentclientprotocol/claude-agent-acp — and delegate work to them, the same way an editor delegates to OpenCode today.
Motivation
The ACP agent ecosystem is consolidating under the agentclientprotocol org, with officially maintained adapters:
- Codex:
@agentclientprotocol/codex-acpwraps the Codex App Server as an ACP agent (auth, model/sandbox config, streamed events, subagent sessions). - Claude Code:
@agentclientprotocol/claude-agent-acpexposes the Claude Agent SDK as an ACP agent (edit review, permission requests, todo lists, subagent transcripts).
Other harnesses are already building ACP-client orchestration on top of these adapters (e.g. QwenPaw's dual server/client ACP support, Hermes' ACP client proposals, Warp's ACP roadmap).
For OpenCode users this unlocks agent-level integrations that MCP alone doesn't cover well today:
- Cross-model-ecosystem second opinions: ask Codex or Claude Code to review a plan/diff from inside an OpenCode session.
- Delegating specialized subtasks to an external agent while OpenCode orchestrates.
- A uniform delegation surface: ACP already models sessions, streaming, permissions, and edit review — semantics OpenCode's own agent-side implementation already speaks, so the client side would reuse the same primitives from the opposite end.
For context, the MCP-based alternatives for this use case are narrowing: OpenAI removed the codex mcp-server (host-as-MCP) command (the migration target is the app-server protocol — which is what codex-acp wraps), and claude mcp serve exposes tool-level rather than agent-level semantics. ACP is the standardized agent-level option, and its adapters are officially maintained.
What it could look like
Rough sketch, purely for discussion:
{
"acp": {
"agents": {
"codex": { "command": ["npx", "-y", "@agentclientprotocol/codex-acp"] },
"claude": { "command": ["claude-agent-acp"] }
}
}
}External agents could then appear as invocable agents (delegable from the orchestrator, usable as council members, etc.), with OpenCode acting as the ACP client: creating sessions, streaming events, handling permission requests, and rendering edits for review.
Concrete use case
I run OpenCode as my primary harness and keep Codex installed alongside (authenticated via the desktop app). I'd like to say "ask Codex to review this refactor" in an OpenCode session, have the orchestrator delegate to codex-acp, stream its reasoning, surface its edits for approval, and fold the conclusion back into the session — without leaving OpenCode and without a hand-rolled wrapper around codex exec.
Thanks for considering!
Activity
[-][FEATURE]: ACP client mode — drive external ACP agents (Codex, Claude Code) from OpenCode[/-][+][FEATURE]: ACP client mode - drive external ACP agents (Codex, Claude Code) from OpenCode[/+]github-actions commentedon Sep 27, 2026
This issue doesn’t fully meet our contributing guidelines.
What needs to be fixed:
Please edit this issue to address the above within 2 hours, or it will be automatically closed.
This issue might be a duplicate of existing issues. Please check:
If you believe this was flagged incorrectly, please let a maintainer know.
github-actions commentedon Sep 27, 2026
This issue has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.
Feel free to open a new issue that follows our issue templates.