Coding tools
Coding tools & IDEs
xKiro does not ship an integration per tool. It exposes the two wire formats those tools already speak, so anything that lets you set a base URL and an API key works. Pick your tool below for its exact configuration.
Pick your tool#
Claude Code
Anthropic format. Two variables in a settings file, or exported in a shell.
VS Code
Custom Endpoint provider. Works without a Copilot plan.
Cursor
What it really supports, and the surcharge Cursor adds on top.
JetBrains IDEs
Built-in OpenAI-Compatible provider — no plugin needed.
Cline, Roo Code, Kilo Code
Configured in the extension UI. Pick OpenAI Compatible, not OpenAI.
Continue
YAML, where each model declares which roles it is allowed to serve.
opencode
A provider block in opencode.json, plus the models you want in the picker.
Hermes Agent
Interactive setup — run hermes model and choose the custom endpoint.
OpenClaw
Long-running agent with its own memory. Speaks both of our formats.
Codex CLI
Responses API. Three config details fail silently — read them first.
Not listed? Read the two shapes below — most tools are one of them under a different label.
There are only two configurations#
Every tool reduces to one of two shapes. Once you know which shape a tool uses, the rest is filling in three values.
| Field | Type | Description |
|---|---|---|
Anthropic format | Claude Code | Base URL https://api.xkiro.com — no /v1. The tool appends /v1/messages itself. |
OpenAI format | everything else | Base URL https://api.xkiro.com/v1 — with /v1. The tool appends /chat/completions, or /responses for Codex CLI. |
The single most common setup mistake
Getting the /v1 suffix wrong. A doubled path (/v1/v1/chat/completions) returns 404, and so does a missing one. If a tool fails instantly and never reaches a model, check this before anything else — it causes more failed setups than every other mistake combined.
Model IDs always carry the vendor prefix
Use anthropic/claude-opus-5, openai/gpt-5.6-sol, z-ai/glm-5.2 — never a bare claude-opus-5 or gpt-5.6-sol. The current list is at GET /v1/models.
Anything else#
Aider, Zed, Void, LibreChat, Open WebUI and most VS Code AI extensions expose the same three fields under a "custom" or "OpenAI-compatible" provider. Many read the standard environment variables directly:
export OPENAI_BASE_URL="https://api.xkiro.com/v1"
export OPENAI_API_KEY="sk-xt-..."Naming varies, the fields do not
Different tools call the same field "Base URL", "API Base", "Endpoint" or "Custom provider URL". If a tool offers an "OpenAI-compatible" or "custom" provider option, that is the one to pick — not the "OpenAI" preset, which usually pins the base URL.
If your tool is not listed here
Ask one question: does it let you set a base URL and an API key? If yes, it works — pick the OpenAI-compatible or Anthropic-compatible shape above depending on which format it speaks. If no, it has hardcoded a provider and no gateway can help.
Verify before you debug the tool#
Send one request by hand first. If it works, the URL and key are fine and whatever is left is in the tool's own configuration — which narrows the search a great deal.
curl https://api.xkiro.com/v1/chat/completions \
-H "Authorization: Bearer $XKIRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-5.6-sol","messages":[{"role":"user","content":"ping"}],"max_tokens":8}'A reply confirms endpoint and key. An error naming an unknown model still proves both work, because the request was authenticated before the model was rejected.
Confirming the tool really goes through xKiro
Tools fail quietly when misconfigured — many fall back to their own defaults and answer normally, so the only reliable check is on our side.
- Send one request from the tool, then open Usage in the console. If nothing appears, the tool is not reaching xKiro.
- Use a separate API key per tool. Usage is attributed per key, so this turns "is it working?" into a glance at a table.
- Ask for a model only xKiro has, such as a
z-ai/orminimax/ID. If the tool answers, it definitely went through us.
Troubleshooting#
| Field | Type | Description |
|---|---|---|
404, immediately | wrong base URL | /v1 doubled or missing. Anthropic-format tools want https://api.xkiro.com; OpenAI-format tools want https://api.xkiro.com/v1. |
401 | bad key | xKiro accepts the key in either header, so a 401 means the key itself is wrong, revoked, or carries a stray space or newline. |
Model not found | missing vendor prefix | gpt-5.6-sol is not a valid ID; openai/gpt-5.6-sol is. |
Claude Code keeps asking you to log in | credential not visible at startup | A reachable base URL is not a credential. Put ANTHROPIC_AUTH_TOKEN in a shell export or ~/.claude/settings.json — a project-level .claude/settings.json is only read after the first-run wizard. |
Codex ignores your provider | wrong config file | model_providers in a project-local .codex/config.toml is ignored by design. Move it to ~/.codex/config.toml. |
Tool hangs and never streams | buffering proxy | A corporate proxy that buffers server-sent events stalls every streaming client. Run the curl above from the same machine to confirm. |
Settings worth checking in any tool#
- Streaming on. Non-streaming requests are cut off at 95 seconds, and agentic tools routinely exceed that on large contexts. See Streaming.
- Request timeout above 120 seconds. Client defaults are often tuned for short completions and will abandon a healthy long generation.
- Retries at two or three, not ten. xKiro already fails over between routes internally; extra client retries mostly add latency. Identical blocking requests are de-duplicated, so a retry does not double-charge — see Idempotency.
- Reasoning set deliberately. Several models default to reasoning on, which agentic tools amplify by making many calls. See Reasoning.
- A spending limit on the key. An agent in a loop is the most common cause of an unexpected bill; a per-key monthly cap turns that into a capped incident.
Details of the two formats are on OpenAI SDK and Anthropic SDK; raw HTTP is on HTTP / cURL.






