Coding tools
go2llm speaks three standard protocols: Anthropic Messages (/v1/messages), OpenAI Chat Completions (/v1/chat/completions) and OpenAI Responses (/v1/responses). Any tool that lets you set a custom base URL and API key for one of these formats connects without modification. Below are exact steps for specific coding agents, with an honest status for each.
What we actually verified
| Tool | Protocol | Status |
|---|---|---|
| Claude Code | Anthropic Messages | ✅ verified with a live request |
| OpenCode | OpenAI Chat Completions | ✅ verified with a live request |
| Kilo Code | OpenAI Chat Completions | 📄 from Kilo Code's own docs, not hands-on tested |
| Codex CLI | OpenAI Responses | ✅ verified with a live request on 2026-09-14: codex exec 0.151.0, wire_api = "responses", model qwen3-8-flash |
Claude Agent SDK, LangChain ChatAnthropic | Anthropic Messages | 📄 POST /v1/messages/count_tokens answers, so context management no longer raises; we have not built a full agent hands-on |
| Cursor | — | not tested with a live request, we claim no status |
| Other OpenAI-compatible clients (Cline, RooCode, Continue.dev, Aider, etc.) | OpenAI Chat Completions | 📄 works if the client supports a custom base URL |
| Other Anthropic-compatible clients | Anthropic Messages | 📄 works if the client supports a custom base URL |
Claude Code
export ANTHROPIC_BASE_URL=https://go2llm.tech
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
export ANTHROPIC_MODEL=claude-haiku-4-5
claude
Use ANTHROPIC_AUTH_TOKEN, not ANTHROPIC_API_KEY. If Claude Code is already signed in with a personal account (claude.ai or Anthropic Console) on the same machine, ANTHROPIC_API_KEY can lose to that stored login and the request never reaches go2llm — you get a 401 instead. ANTHROPIC_AUTH_TOKEN always routes through the ANTHROPIC_BASE_URL you set.
Before running it, confirm the chosen model lists messages in endpoints from GET /v1/models.
OpenCode
Add a provider to opencode.json (project file or ~/.config/opencode/opencode.json):
{
"provider": {
"go2llm": {
"npm": "@ai-sdk/openai-compatible",
"name": "go2llm",
"options": { "baseURL": "https://go2llm.tech/v1" },
"models": { "claude-haiku-4-5": {}, "gpt-5.6-luna": {} }
}
}
}
Provide the key via opencode auth login (stored in ~/.local/share/opencode/auth.json, not in your repo) or add "apiKey": "YOUR_API_KEY" to options for a local test. Run it with:
opencode run "..." -m go2llm/claude-haiku-4-5
Kilo Code
Kilo Code is a VS Code extension with no standalone CLI, so the steps below come from Kilo Code's own documentation and were not tested by us hands-on.
- Settings → Providers → Custom provider.
- Provider API — OpenAI Compatible.
- Base URL —
https://go2llm.tech/v1. - API key — your go2llm key.
- You don't need to type models by hand: Kilo Code queries
GET /v1/modelsitself and offers a picker.
Codex CLI
go2llm's POST /v1/responses endpoint is published and was verified by a live Codex CLI run on 2026-09-14: CLI version 0.151.0, codex exec read a file in a test project, executed tools, applied the edit and printed a correct diff — 21,432 tokens. The run used the qwen3-8-flash model; /v1/responses serves the same models as /v1/chat/completions. We did not exercise the interactive codex TUI — only codex exec.
model = "gpt-5.3-codex"
model_provider = "go2llm"
[model_providers.go2llm]
name = "go2llm"
base_url = "https://go2llm.tech/v1"
env_key = "GO2LLM_API_KEY"
wire_api = "responses"
model and model_provider are top-level keys of ~/.codex/config.toml and must sit above any […] table. The key travels through the environment variable named in env_key — never put it in the file:
export GO2LLM_API_KEY=gk_sk_YOUR_KEY
codex
The shim is stateless: previous_response_id and store: true are rejected with 400 stateful_responses_unsupported, background: true with 400 background_unsupported. The same models are served as on /v1/chat/completions. usage.cost_usd is returned.
The full walkthrough, a curl you can use to check the endpoint without Codex, and the "why this was broken for a year" write-up live on the Codex API page (in Russian). The other coding agents verified with a live request are OpenCode and Claude Code from this page.
Claude Agent SDK and LangChain
POST /v1/messages/count_tokens answers in Anthropic's shape: the body matches /v1/messages, the response is {"input_tokens": N}. This route did not exist before, and the Anthropic SDK, Claude Agent SDK and LangChain ChatAnthropic raised on context management before they ever reached a model. They no longer do.
The count is an estimate, not a vendor tokenizer, and the response says so out loud: next to input_tokens there is a go2llm block with "exact": false and the method name. SDKs read input_tokens and ignore the extra fields. The call needs a key but costs nothing.
We have not built a full agent hands-on — the status in the table above reflects exactly that.
Cursor
No live test has been done, so we claim neither that Cursor works nor that it doesn't. Once it is tested, this section will carry either instructions or a write-up of why it fails — the same way we handled Codex CLI.
Any other OpenAI Chat Completions-compatible client
Covers tools like Cline, RooCode, Continue.dev, Aider and similar — we haven't verified each one individually, but go2llm's protocol is standard:
- Base URL:
https://go2llm.tech/v1 - Key:
Authorization: Bearer YOUR_API_KEYheader - Model catalog:
GET https://go2llm.tech/v1/models - Requests:
POST /v1/chat/completions
Any other Anthropic Messages-compatible client
- Base URL:
https://go2llm.tech - Key:
x-api-key: YOUR_API_KEYheader - Requests:
POST /v1/messages
Before treating a client as compatible, send a test request and check usage.cost_usd in the dashboard.
CI and servers
- Keep the key in CI secrets, not in YAML or the repository.
- Use a separate key with a minimal quota and an explicit allowed-model list.
- Before real workloads, check
/status,/v1/modelsand a short test request. - Never print the
Authorizationorx-api-keyheader in logs.
Prices for every model are on the billing page; the technical reference is in the docs.
Get a key and make your first request in 3 minutes → https://go2llm.tech/