SDKs
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.
There are only two configurations#
Every tool below is one of these two. Once you know which format a tool speaks, you know how to configure it — and the same applies to tools not named on this page.
| Field | Type | Description |
|---|---|---|
OpenAI-compatible | base URL ends in /v1 | https://api.xkiro.com/v1 with Authorization: Bearer. Used by anything built on the openai packages. |
Anthropic-compatible | base URL has NO /v1 | https://api.xkiro.com with x-api-key. The Anthropic SDKs append /v1/messages themselves. |
The single most common setup mistake
Getting /v1 wrong. OpenAI-style tools need it on the base URL; Anthropic-style tools must not have it. A doubled /v1/v1/messages in the error is the giveaway.
Claude Code and the Claude CLI#
Two environment variables, nothing else:
export ANTHROPIC_BASE_URL="https://api.xkiro.com"
export ANTHROPIC_AUTH_TOKEN="sk-xt-..."
claudeModel IDs still carry the vendor prefix, so set the model to something like anthropic/claude-opus-5 or z-ai/glm-5.2 rather than a bare Anthropic name.
anthropic/* models behave differently outside Claude Code
Claude models run on subscription accounts that are only served to Anthropic's own clients. A request for an anthropic/* model from a different tool is not rejected — it is served by a comparable model instead, billed at the price of the model you asked for, and the response still reports the model you requested. If you specifically need Claude itself, use Claude Code. Everything else on the catalog behaves identically in every tool.
Tools that speak the OpenAI format#
Cline, Roo Code, Kilo Code, Continue, Aider, OpenCode, Zed and most VS Code AI extensions all expose the same three fields under a "custom" or "OpenAI-compatible" provider. Fill them in like this:
| Field | Type | Description |
|---|---|---|
Base URL / Endpoint | string | https://api.xkiro.com/v1 |
API key | string | Your xKiro key (sk-xt-…) |
Model | string | Full ID with vendor prefix, e.g. openai/gpt-5.6-sol. Some tools fetch the list automatically from GET /v1/models. |
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.
Verifying a tool is really talking to 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.
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.
If a 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.
Details of the two formats are on OpenAI SDK and Anthropic SDK; raw HTTP is on HTTP / cURL.
