Here’s the scenario: You have OpenCode running as your ACP agent. IntelliJ IDEA connects via one plugin. AgentBridge connects via another. Both work fine individually. Run them at the same time? One breaks.
This isn’t a bug in your IDE plugin. It’s not a bug in AgentBridge. It’s an architectural property of how OpenCode’s ACP transport works.
OpenCode’s opencode acp command uses stdio transport — JSON-RPC 2.0 messages flow over a single stdin/stdout pipe. The relevant code in packages/opencode/src/cli/cmd/acp.ts creates one WritableStream for stdout and one ReadableStream for stdin. These are wrapped by ndJsonStream from the @agentclientprotocol/sdk for newline-delimited JSON framing.
Two Rust-native AI coding agent harnesses. One cross-agent message bus. The question: is it better to stitch together hcom + ante for inter-agent messaging and offline coding, or run a single jcode all-in-one binary?
hcom is a cross-agent messaging layer (SQLite-based). It’s a bus that lets different agents talk to each other — Hermes hands off a coding task to hcom, which routes it to whichever agent instance is available.