# Tool Compatibility Overview

> **Last verified**: 2026-09-18 · 📄 Per official docs (the 26 tool pages below verified the same day; protocol capabilities derived from [Endpoints and API paths](/docs/getting-started/endpoints-and-api-paths))

## How to read this table

The rule of the four protocol legs: **Claude models only work on the Anthropic leg (base URL `https://api.qcode.cc/api`)**; GPT models use the OpenAI Chat (`https://api.qcode.cc/openai/v1`) and Responses legs; GLM / Kimi / DeepSeek / Qwen use the Anthropic or OpenAI Chat legs; Gemini models use the native Gemini leg. A client that only implements the OpenAI protocol **cannot use Claude** on QCode. The "Claude" column follows exactly that derivation; details live on each tool's page.

## Compatibility matrix

| Tool | Protocols supported | Claude | Where to configure | Last verified | Docs |
|---|---|:--:|---|---|---|
| CC Switch | manages all the CLI configs above | ✅ | in-app (writes `~/.claude/`, `~/.codex/`) | 2026-09-18 | [CC Switch](/docs/ide/cc-switch) |
| Codex CLI | OpenAI Responses / Chat | ❌ | `~/.codex/config.toml` | 2026-09-18 | [Codex](/docs/ide/codex) |
| Claude Desktop | Anthropic | ✅ | in-app Configure Third-Party Inference | 2026-09-18 | [Claude Desktop](/docs/ide/claude-desktop) |
| OpenCode | Anthropic / OpenAI / Gemini | ✅ | `~/.config/opencode/opencode.json` | 2026-09-18 | [OpenCode](/docs/ide/opencode) |
| OpenClaw | Anthropic / OpenAI Chat / Responses | ✅ | `~/.openclaw/openclaw.json` | 2026-09-18 | [OpenClaw](/docs/ide/openclaw) |
| Hermes Agent | Anthropic / OpenAI Chat / Responses | ✅ | `~/.hermes/config.yaml` | 2026-09-18 | [Hermes Agent](/docs/ide/hermes-agent) |
| WorkBuddy | OpenAI Chat only | ❌ | in-app custom model | 2026-09-18 | [WorkBuddy](/docs/ide/workbuddy) |
| Antigravity CLI | native Gemini | ❌ | settings.json + environment variables | 2026-09-18 | [Antigravity](/docs/ide/antigravity) |
| CodeWhale (formerly DeepSeek-TUI) | Anthropic / OpenAI Chat | ✅ | `~/.codewhale/config.toml` | 2026-09-18 | [CodeWhale](/docs/ide/deepseek-tui) |
| Zed | ACP / Anthropic-compat / OpenAI-compat | ✅ | `settings.json` (language_models) | 2026-09-18 | [Zed](/docs/ide/zed) |
| ACP hosts (generic path) | depends on the mounted agent | ✅ | the agent's own env / config | 2026-09-18 | [ACP Overview](/docs/ide/acp) |
| VS Code | per extension: Claude Code extension (Anthropic), Copilot Custom Endpoint (three protocols) | ✅ | `~/.claude/config.json` / `chatLanguageModels.json` | 2026-09-18 | [VS Code](/docs/ide/vscode) |
| GitHub Copilot (VS Code / CLI) | Messages / Chat Completions / Responses | ✅ | `chatLanguageModels.json` / environment variables | 2026-09-18 | [GitHub Copilot](/docs/ide/github-copilot) |
| Trae | custom models in the built-in AI: Anthropic Messages / OpenAI Chat Completions; plus the Claude Code extension | ✅ | Settings → Models (add model) / extension settings + `~/.claude/` | 2026-09-18 | [Trae](/docs/ide/trae) |
| Cursor | Override OpenAI / Anthropic Base URL (fields not listed in the help centre, confirmed by Cursor staff on the official forum) | ✅ | Settings → Models → API Keys | 2026-09-18 | [Cursor](/docs/ide/cursor) |
| Cline | Anthropic / OpenAI Compatible | ✅ | extension settings panel | 2026-09-18 | [Cline](/docs/ide/cline) |
| Cherry Studio | OpenAI / Anthropic / Responses / Gemini | ✅ | Settings → Model Services | 2026-09-18 | [Cherry Studio](/docs/ide/cherry-studio) |
| JetBrains IDEs | Claude Code plugin (Anthropic) | ✅ | shared with the `claude` CLI config | 2026-09-18 | [JetBrains](/docs/ide/jetbrains) |
| Devin Desktop (formerly Windsurf) | ACP hosting Claude Code | ✅ | host settings + agent env vars | 2026-09-18 | [Devin Desktop](/docs/ide/devin-desktop) |
| Gemini CLI (enterprise paid) | native Gemini | ❌ | environment variable base URL | 2026-09-18 | [Gemini CLI](/docs/ide/gemini) |
| Kilo Code | Provider API: Anthropic Messages / OpenAI Compatible / OpenAI Responses | ✅ | Settings → Providers → Custom provider | 2026-09-18 | [Kilo Code](/docs/ide/kilo-code) |
| Crush | Anthropic / OpenAI | ✅ | `~/.config/crush/crush.json` | 2026-09-18 | [Crush](/docs/ide/crush) |
| Droid (Factory) | Anthropic / OpenAI | ✅ | `~/.factory/settings.json` | 2026-09-18 | [Droid](/docs/ide/droid) |
| Aider | Anthropic / OpenAI (LiteLLM routing) | ✅ | CLI flags / `~/.aider.conf.yml` | 2026-09-18 | [Aider](/docs/ide/aider) |
| SillyTavern | Anthropic Messages (proxy URL) + OpenAI-compatible | ✅ | in-app API connection settings | 2026-09-18 | [SillyTavern](/docs/ide/sillytavern) |
| Roo Code | Anthropic / OpenAI (repo archived) | ✅ | extension settings panel | 2026-09-18 | [Roo Code](/docs/ide/roo-code) |

## Tools that cannot take a custom endpoint

These products expose **no** field for an arbitrary Base URL, so QCode cannot be connected and we publish no setup guide for them:

- **Qoder**: only vendor keys from its official catalogue, no third-party Base URL ([official docs](https://docs.qoder.com/ja/user-guide/chat/custom-models)).
- **Devin (cloud)**: closed SaaS, no custom Base URL; the desktop Devin Desktop goes through the ACP route (in the table).
- **iFlow CLI**: shut down by its vendor on 2026-04-17.

## Accepts a custom URL, but has no page yet

- **Junie** (JetBrains' agent): BYOK inside the IDE does list only fixed vendors — OpenAI / Anthropic / Google / xAI / OpenRouter / Copilot ([official page](https://junie.jetbrains.com/docs/byok.html)) — but **custom model profiles in the Junie CLI accept any `baseUrl`**: the JSON file goes into `$JUNIE_HOME/models/*.json` or the project's `.junie/models/*.json`, and `apiType` is one of `Anthropic` / `OpenAICompletion` / `OpenAIResponses` / `Google` ([official docs](https://junie.jetbrains.com/docs/custom-llm-models.html)). Its `baseUrl` must be the **complete request URL** — Junie appends no path. We have not written a dedicated page for it yet; endpoints and model IDs are in [Endpoints and API formats](/docs/getting-started/endpoints-and-api-paths).

## GPT / Chinese models only, no Claude

Clients that implement only the OpenAI Chat Completions protocol work fine with GPT and the GLM / Kimi / DeepSeek / Qwen families, but calling Claude models returns `model_not_available_on_endpoint` (validated before authentication). Every row with ❌ in the Claude column is of this kind (WorkBuddy, Codex…). In addition: **CodeBuddy**'s `models.json` supports only OpenAI Chat and demands the full `/chat/completions` URL; **Warp**'s custom inference endpoint is OpenAI-Chat-only and its requests are relayed through Warp servers; **Chatbox** is primarily OpenAI-compatible and likewise cannot serve Claude models.

## Related docs

- [Endpoints and API paths](/docs/getting-started/endpoints-and-api-paths) — the protocol × model-family source of truth
- [Subscriptions vs API Keys vs QCode Keys](/docs/reference/subscription-vs-api-key)
- [Troubleshooting](/docs/reference/troubleshooting)
- [FAQ](/docs/reference/faq)