Coding tools

Any other tool

If your tool lets you set a base URL and an API key, it already works. Here is how to decide which two.

xKiro speaks two wire formats. Almost every AI coding tool speaks one of them, so the setup is the same everywhere: choose the format your tool expects, point it at the matching base URL, and give it your key. Nothing else about the tool changes.

Pick the format your tool expects#

Your toolFormatBase URL
Asks for an “OpenAI-compatible” endpoint, or mentions /v1/chat/completionsOpenAIhttps://api.xkiro.com/v1
Is a Claude Code fork, or reads ANTHROPIC_BASE_URLAnthropichttps://api.xkiro.com
Is Codex CLI, or targets the Responses APIOpenAI Responseshttps://api.xkiro.com/v1

The /v1 is not decoration — it moves

OpenAI-format clients append /chat/completions to whatever you give them, so the base URL ends in /v1. Anthropic-format clients append /v1/messagesthemselves, so the base URL omits it. Getting this backwards produces 404 on a URL like /v1/v1/messages — the one failure here that at least tells you what went wrong.

Two variables, whichever format#

# OpenAI format
export OPENAI_BASE_URL="https://api.xkiro.com/v1"
export OPENAI_API_KEY="sk-xt-..."

# Anthropic format
export ANTHROPIC_BASE_URL="https://api.xkiro.com"
export ANTHROPIC_AUTH_TOKEN="sk-xt-..."

Model IDs always carry the vendor prefix — anthropic/claude-opus-5, openai/gpt-5.6-terra, minimax/minimax-m3. Fetch the live list any time from GET /v1/models; that endpoint is public, so you can browse it before you have a key.

Clear the variables that would silently win#

This is the failure that wastes an afternoon

Most tools read several environment variables in a fixed order, and a leftover one from a previous provider usually outranks the file you just edited. The tool starts, answers normally, and bills someone else — nothing in its output says which endpoint it used. If your config looks right and requests never appear in your xKiro logs, this is almost always why.

# Before configuring an Anthropic-format tool
unset ANTHROPIC_API_KEY ANTHROPIC_AUTH_TOKEN ANTHROPIC_BASE_URL ANTHROPIC_MODEL

# Before configuring an OpenAI-format tool
unset OPENAI_API_KEY OPENAI_BASE_URL OPENAI_ORGANIZATION

# Then set only the two you actually want (see above).

Check the tool's own config file too — a key stored there survives your shell entirely. Common spots: ~/.claude/settings.json, ~/.codex/config.toml, ~/.config/<tool>/config.json, and any .env in the project you opened.

Verify before you debug the tool#

Run this first. If it answers, the endpoint and key are fine and anything still broken lives in the tool's config — which saves you from debugging the wrong layer.

curl https://api.xkiro.com/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.6-terra",
    "messages": [{"role": "user", "content": "reply with OK"}]
  }'

Then open your usage log — the request should be there within a second or two. A tool that “works” while your log stays empty is not talking to xKiro.

If the tool still refuses#

Three limitations account for nearly every remaining case, and none of them are fixed by changing the base URL:

  • The tool hard-codes its model list. Look for a “custom model” or “add model” field; if there is none, the tool only ever talks to its own vendor.
  • The tool sends a vendor-only field. You will see a 400 naming the field. Send us that message — absorbing per-vendor quirks is our job, not yours.
  • The tool requires an OAuth login rather than an API key. There is no base URL to point at in that case.

Got one working that is not listed here? Tell us and we will add a page for it — that is how most of the guides in this section started.

Was this page helpful?