Get a free key at agents.t2000.ai/manage (sign in with Google — same Passport + balance as Audric). Every account gets a free daily allowance on
moonshotai/kimi-k2.7-code; paid models are metered per token and fail closed at a $0 balance. Browse models + pricing any time with GET /v1/models (public, no key).One command: t2 connect
If you have the t2 CLI installed, t2 connect <client> writes the provider config for you — paste the key once and it’s saved for later connects:
--print shows what would be written without touching anything. Clients whose config is GUI-managed (Cline, Cursor) get a paste-ready walkthrough instead of a file write. The manual setup for every client follows below.
Which model id to set
t2000/auto— the default for coding agents. Routine steps run on a cheap open model; long-context, planning, and retry-after-failure steps escalate to a frontier one. You pay the price of the model that served (x-t2000-served-modelheader names it).t2000/auto-open— the same router, open models only. Your prompts never reach a closed-model provider.- A pinned id — any id from
GET /v1/models, e.g.phala/glm-5.2for hardware-verified confidential inference.
Environment variables (the universal swap)
Almost every OpenAI client reads these two variables. Set them once and the tool is repointed at t2000:OpenAI SDK
Cursor
Cursor can route its chat models through any OpenAI-compatible endpoint:- Settings → Models → API Keys → OpenAI API Key.
- Paste your
sk-…key, expand Override OpenAI Base URL, and set it tohttps://api.t2000.ai/v1. - Under Models, add
t2000/auto(plus any pinned ids you want), then Verify.
Cursor’s agentic features are tuned for specific frontier models. For a drop-in private chat model, add
t2000/auto (or a pinned id like anthropic/claude-sonnet-5) and select it in the chat model picker.Coding CLIs (custom OpenAI-compatible provider)
Most open-source coding CLIs take a custom OpenAI-compatible provider — give it the base URL, your key, andt2000/auto as the model. Tool calls (file edits, shell) pass through /v1 natively — the router escalates hard steps, and the free daily allowance applies when the served model is kimi-k2.7-code.
OpenAI Codex CLI
Add t2000 as a model provider in~/.codex/config.toml:
export T2000_API_KEY=sk-… first):
Grok Build
xAI’s Grok Build TUI takes BYOK custom models in~/.grok/config.toml — the same pattern (t2 connect grok writes this for you):
export T2000_API_KEY=sk-… first):
Vercel AI SDK
Use the OpenAI-compatible provider:LangChain
Other OpenAI-compatible clients
The same base URL + key works in any tool that targets OpenAI Chat Completions — coding agents like Kilo Code, Cline, Continue, and Aider (--openai-api-base), frameworks like LiteLLM (openai/<model>) and LlamaIndex, and most “bring your own OpenAI key” apps and agents. If a tool has an “OpenAI base URL” or “custom endpoint” field, point it at https://api.t2000.ai/v1, set the model to t2000/auto (or pick a pinned id from GET /v1/models), and every call is private by default — billed from your one balance.
Anthropic-format tools (Claude Code)
Tools that speak the Anthropic Messages format (/v1/messages) — such as Claude Code — don’t talk to an OpenAI Chat Completions endpoint directly. Two options:
- A translation proxy today — run LiteLLM (or a similar Anthropic↔OpenAI shim) pointed at
https://api.t2000.ai/v1, and set the tool’sANTHROPIC_BASE_URLto the proxy. - Native
/v1/messagesis on the roadmap (the additional-endpoints item) — when it ships, Anthropic-format tools will work with the base-URL swap alone.
Good to know
- Streaming works everywhere SSE does — set
stream: true; passstream_options: { include_usage: true }for a final usage chunk. - Model IDs are namespaced (
provider/model); the live list is whateverGET /v1/modelsreturns, each taggedprivateorconfidential. - Keys are secrets — keep them server-side, one per app/environment so you can revoke independently. Don’t ship a raw key in a browser bundle.
- Spend is bounded by your balance (and your auto-recharge threshold, if enabled). Each key is capped at 120 requests/minute.
