Client support
opencodex is one local gateway for your AI coding tools and models. Some tools it configures natively; for the others it exports or manages a config file that points the tool at the local proxy. This page is generated from the code registries, so it lists exactly what the current release ships.
Support levels
Section titled “Support levels”- implemented: the client is in the registry. For exported configs, the protocol shown is read from the config opencodex generates, and generation fails if it changes. A protocol marked curated names an endpoint that comes from a review instead of the config itself (native clients, and clients that turn a setting into a specific endpoint); the generator checks that the reviewed code is still in place. “OpenAI-compatible” rows make no endpoint claim.
- test-covered: implemented, and a test case chosen in review that exercises this client is linked. The generator checks only that the test still exists and is enabled; read it to see what it asserts.
- Runtime verified: a historical observation: a person ran the exact client product and version shown against the opencodex version shown, for the stated scenario, on that date, and linked the evidence. It says nothing about other versions or products. The evidence is reviewed when a result is added; the generator does not re-run it. A dash means no result is recorded.
Clients
Section titled “Clients”| Client | Native | Config export | Managed file integration | Inbound protocol | Support level | Runtime verified | Notes |
|---|---|---|---|---|---|---|---|
| Codex (CLI, app, SDK) | Yes | — | — | Responses (curated) | test-covered (test) | — | Set up by opencodex itself; no exported config file. guide |
| Claude Code | Yes | — | — | Anthropic Messages (curated) | test-covered (test) | — | Set up by opencodex itself; no exported config file. guide |
| Claude Desktop | Yes | — | — | Anthropic Messages (curated) | implemented | — | Set up by opencodex itself; no exported config file. |
| Grok Build | Yes | — | — | Responses (curated) | test-covered (test) | — | Set up by opencodex itself; no exported config file. guide |
| Qoder | — | JSON | Yes | OpenAI-compatible (endpoint chosen by the client) | test-covered (test) | — | Local listener only. |
| Qoder CN | — | JSON | Yes | OpenAI-compatible (endpoint chosen by the client) | implemented | — | Local listener only. |
| WorkBuddy | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. Apply runs a client-specific check first and can refuse. |
| WorkBuddy AI | — | JSON | Yes | Chat Completions | implemented | — | Local listener only. Apply runs a client-specific check first and can refuse. |
| OpenCode | — | JSON | Yes | Chat Completions | test-covered (test) | — | The exporter also supports a remote listener (it adds the API key header). guide |
| Pi | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. guide |
| Oh My Pi (omp) | — | YAML | Yes | Chat Completions; Responses (native OpenAI models only) | test-covered (test) | — | Local listener only. Edits only its own YAML block. |
| Hermes | — | YAML | Yes | Chat Completions | test-covered (test) | — | The exporter also supports a remote listener (it adds the API key header). Edits only its own YAML block. |
| OpenClaw | — | JSON5 | Yes | Chat Completions | test-covered (test) | — | The exporter also supports a remote listener (it adds the API key header). |
| Kimi CLI | — | TOML | Yes | OpenAI-compatible (endpoint chosen by the client) | test-covered (test) | — | Local listener only. |
| Gajae | — | YAML | Yes | Chat Completions | test-covered (test) | — | Local listener only. |
| DSH | — | YAML | Yes | Responses | test-covered (test) | — | Local listener only. Writes the client’s current provider store. Edits only its own YAML block. Writes are coordinated through a lock file next to the config. |
| MCode | — | YAML | Yes | Anthropic Messages | implemented | — | Local listener only. Writes are coordinated through a lock file next to the config. |
| ZCode | — | JSON | Yes | Responses (curated) | test-covered (test) | — | Local listener only. Writes the client’s current provider store. The client picks the endpoint from this setting (reviewed against the client’s documented behavior). |
| Command Code | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. Writes are coordinated through a lock file next to the config. |
| Prime | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. |
| Aside | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. |
| Raycast | — | YAML | Yes | Chat Completions (curated) | test-covered (test) | — | Local listener only. The client picks the endpoint from this setting (reviewed against the client’s documented behavior). |
| omo | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. |
| Cline | — | JSON | Yes | Responses | test-covered (test) | — | Local listener only. Writes are coordinated through a lock file next to the config. |
| Kilo Code | — | JSON | Yes | Chat Completions | test-covered (test) | — | The exporter also supports a remote listener (it adds the API key header). |
| Factory Droid | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. guide |
| Gentle Shell | — | JSON | Yes | Chat Completions | test-covered (test) | — | Local listener only. |
| T3 Code | — | JSON | Yes | Anthropic Messages | test-covered (test) | — | Local listener only. Apply runs a client-specific check first and can refuse. |
Inbound endpoints
Section titled “Inbound endpoints”The proxy accepts these protocols. A tool that is not listed above can still connect if it lets you set a custom endpoint for one of them.
POST /v1/responses: ResponsesPOST /v1/chat/completions: Chat CompletionsPOST /v1/messages: Anthropic Messages
Keeping this page current
Section titled “Keeping this page current”This page is generated by scripts/generate-client-support-matrix.ts from the export, managed-integration and native-integration registries. To add a client, add its entry in scripts/client-support-matrix/metadata.ts and run bun run docs:clients; bun run docs:clients:check fails while the committed page is stale.

