--- title: "Agent Compatibility" description: "Supported agents, install methods, and streaming formats." --- ## Compatibility matrix | Agent | Provider | Binary | Install method | Session ID | Streaming format | |-------|----------|--------|----------------|------------|------------------| | Claude Code | Anthropic | `claude` | curl raw binary from GCS | `session_id` | JSONL via stdout | | Codex | OpenAI | `codex` | curl tarball from GitHub releases | `thread_id` | JSON-RPC over stdio | | OpenCode | Multi-provider | `opencode` | curl tarball from GitHub releases | `session_id` | SSE or JSONL | | Amp | Sourcegraph | `amp` | curl raw binary from GCS | `session_id` | JSONL via stdout | ## Agent modes - **OpenCode**: discovered via the server API. - **Claude Code / Codex / Amp**: hardcoded modes (typically `build`, `plan`, or `custom`). ## Capability notes - **Questions / permissions**: OpenCode natively supports these workflows. Claude plan approval is normalized into a question event (tests do not currently exercise Claude question/permission flows). - **Streaming**: all agents stream events; OpenCode uses SSE, Codex uses JSON-RPC over stdio, others use JSONL. Codex is currently normalized to thread/turn starts plus user/assistant completed items (deltas and tool/reasoning items are not emitted yet). - **User messages**: Claude CLI output does not include explicit user-message events in our snapshots, so only assistant messages are surfaced for Claude today. - **Files and images**: normalized via `UniversalMessagePart` with `File` and `Image` parts. See [Universal API](/universal-api) for feature coverage details.