Compatibility Matrix
Tool and SDK compatibility
Find the right TokenLab setup for coding tools, chat apps, SDKs, and frameworks
Most tools connect to TokenLab by changing an API key and base URL. The exact setup depends on which API format the tool can use.
| API format | Base URL | Common clients |
|---|---|---|
| Chat Completions (OpenAI-compatible) | https://api.tokenlab.sh/v1 | OpenAI SDKs, many chat apps and frameworks |
| OpenAI Responses | https://api.tokenlab.sh/v1 | Responses clients and tools built around Responses events |
| Anthropic Messages | https://api.tokenlab.sh | Anthropic SDKs and Claude-oriented tools |
| Gemini | https://api.tokenlab.sh | Gemini REST and SDK clients that allow a custom host |
The selected model must list the same format in accepted_request_formats. Streaming and tool calling also depend on the model’s capabilities and the client. See API formats for examples.
Compatibility labels
| Label | Meaning |
|---|---|
| Works | The linked TokenLab setup uses the client’s documented configuration options |
| Works with limits | The configuration applies to specific features or authentication modes; other vendor services keep their own requirements |
These labels describe the configuration on the linked page. Feature availability also depends on the selected model and client version.
Coding tools
| Tool | Status | API format | Notes |
|---|---|---|---|
| Claude Code | Works | Anthropic Messages | Uses ANTHROPIC_BASE_URL and a TokenLab API key |
| Codex CLI | Works with limits | Responses | Uses Responses; available features depend on the selected model |
| Cursor | Works with limits | OpenAI-compatible | Applies to Cursor features that accept a custom API key and URL |
| Cline | Works | OpenAI-compatible | Select OpenAI Compatible and enter a base URL and model ID |
| Kilo Code | Works | OpenAI-compatible | Uses a custom provider and model ID |
| OpenCode | Works | OpenAI-compatible | Load a separate provider configuration with OPENCODE_CONFIG |
| OpenHands | Works | OpenAI-compatible | LiteLLM-backed UI: Advanced → Custom Model (openai/ prefix) and Base URL |
| Gemini CLI | Works with limits | Gemini | Use GOOGLE_GEMINI_BASE_URL with API-key authentication; a separate GEMINI_CLI_HOME preserves the existing setup |
Chat applications
| App | Status | Notes |
|---|---|---|
| Chatbox | Works | Add an OpenAI API Compatible provider |
| Cherry Studio | Works | Add a provider and complete Verify and Enable |
| DeepChat | Works | Choose OpenAI Completions for Chat Completions |
| Jan | Works | Add an OpenAI-compatible service |
| LibreChat | Works | Configure a custom OpenAI-compatible endpoint |
| Open WebUI | Works | Add an OpenAI-compatible connection with API Type Chat |
SDKs and frameworks
| Client | Status | Setup |
|---|---|---|
| OpenAI SDK | Works | Set base_url / baseURL to https://api.tokenlab.sh/v1 |
| Anthropic SDK | Works | Set the base URL to https://api.tokenlab.sh |
| Vercel AI SDK | Works | Create a custom OpenAI-compatible provider |
| LangChain | Works | Configure ChatOpenAI or OpenAIEmbeddings with the TokenLab URL |
| LlamaIndex | Works | Use its OpenAI-compatible client options |
| OpenAI Agents SDK | Works with limits | The guide uses OpenAIChatCompletionsModel; check model and SDK feature support before using Responses |
| AutoGen | Works | Use an OpenAI-compatible model client |
| CrewAI | Works | Configure its OpenAI-compatible LLM client |
| PydanticAI | Works | Supply an OpenAI-compatible provider |
More frameworks, observability tools, gateways, and evaluation products are listed in the Integrations navigation.
Usage in streamed responses
Chat Completions streams accept stream_options: { include_usage: true }, which appends a final usage chunk before the stream closes. The Responses API does not expose include_usage; Responses streams report usage on their terminal event instead.
What a custom API key does not replace
Some products mix model calls with features hosted by the product vendor. A TokenLab key can power the model requests exposed through BYOK settings, but it does not replace unrelated subscriptions, autocomplete services, account features, or proprietary extensions.
When a tool update changes its configuration, use the current integration page rather than copying an old environment-variable snippet from elsewhere.
Before depending on a feature
- Confirm the tool allows a custom base URL for the format you need.
- Confirm the model lists that format in
accepted_request_formats. - Test streaming and tool calls if your workflow requires them.
- Keep the API key on a trusted machine or server.
- Record the Request ID when reporting a failure.