# Connect your tool

> Find the guide for your tool: coding agents, editors, chat apps, automation tools, SDKs and agent frameworks that work with Tokens, and which protocol each one uses.

Tokens speaks two protocols, so most tools that let you set a custom endpoint work with it. This page is the map: find your tool, open its guide, and use the table at the end if yours is not listed.

## Pick by what you are doing

| You want to...                                       | Start here                                                                                                                                    |
| ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Code with an AI agent in the terminal                | [Claude Code](/docs/claude-code), [Codex CLI](/docs/codex-cli), [OpenCode](/docs/opencode), [Aider](/docs/aider), [OpenHands](/docs/openhands) |
| Code inside your editor                              | [Cursor](/docs/cursor), [Cline](/docs/cline), [Continue](/docs/continue), [Zed](/docs/zed), [JetBrains AI Assistant](/docs/jetbrains-ai-assistant), [Xcode](/docs/xcode) |
| Chat with models in a web interface you host         | [Open WebUI](/docs/open-webui), [LibreChat](/docs/librechat)                                                                                  |
| Build a workflow or an AI app without much code      | [n8n](/docs/n8n), [Dify](/docs/dify)                                                                                                          |
| Call models from your own code                       | [cURL](/docs/curl), [Python](/docs/python), [Node.js](/docs/nodejs), [PHP](/docs/php), [Laravel AI SDK](/docs/laravel-ai-sdk)                  |
| Build an agent with a framework                      | [OpenAI Agents SDK](/docs/openai-agents-sdk), [Claude Agent SDK](/docs/claude-agent-sdk), [LlamaIndex](/docs/llamaindex), [CrewAI](/docs/crewai), [LangChain](/docs/langchain), [Vercel AI SDK](/docs/vercel-ai-sdk) |
| Move an app over from another provider               | [From OpenAI](/docs/migrate-from-openai), [from OpenRouter](/docs/migrate-from-openrouter), [from Anthropic](/docs/migrate-from-anthropic)     |

## Which protocol and base URL

Which one a tool needs is nearly always on its settings screen, under a name such as "OpenAI compatible" or "Anthropic".

| The tool speaks         | Base URL                  | The tool then calls    |
| ----------------------- | ------------------------- | ---------------------- |
| OpenAI Chat Completions | `https://tokens.bd/v1`     | `/v1/chat/completions` |
| OpenAI Responses        | `https://tokens.bd/v1`     | `/v1/responses`        |
| Anthropic Messages      | `https://tokens.bd`  | `/v1/messages`         |

Two tools in the lists above are different: [Xcode](/docs/xcode) wants the address without `/v1` and adds the path itself, and tools built on LiteLLM ([Aider](/docs/aider), [OpenHands](/docs/openhands), [CrewAI](/docs/crewai)) want an `openai/` prefix on the model id. Each guide says exactly what to type.

## Every guide, with what it needs

| Tool                                             | How it connects                                               |
| ------------------------------------------------ | ------------------------------------------------------------- |
| [Claude Code](/docs/claude-code)                 | Anthropic Messages                                            |
| [Codex CLI](/docs/codex-cli)                     | Responses API                                                 |
| [OpenCode](/docs/opencode)                       | Chat Completions                                              |
| [OpenClaw](/docs/openclaw)                       | Chat Completions or Anthropic Messages                        |
| [Hermes Agent](/docs/hermes-agent)               | Chat Completions                                              |
| [Crush](/docs/crush)                             | Chat Completions                                              |
| [Aider](/docs/aider)                             | Chat Completions, `openai/` prefix                            |
| [Goose](/docs/goose)                             | Chat Completions, full endpoint URL                           |
| [Qwen Code](/docs/qwen-code)                     | Chat Completions                                              |
| [Kimi Code CLI](/docs/kimi-code)                 | Chat Completions or Anthropic Messages                        |
| [Factory Droid](/docs/factory-droid)             | Chat Completions or Anthropic Messages                        |
| [GitHub Copilot CLI](/docs/github-copilot-cli)   | Chat Completions, set with environment variables              |
| [OpenHands](/docs/openhands)                     | Chat Completions through LiteLLM, `openai/` prefix            |
| [Cline](/docs/cline)                             | Chat Completions                                              |
| [Kilo Code](/docs/kilo-code)                     | Chat Completions                                              |
| [Roo Code](/docs/roo-code)                       | Chat Completions (the project is archived)                    |
| [Continue](/docs/continue)                       | Chat Completions                                              |
| [Zed](/docs/zed)                                 | Chat Completions or Anthropic Messages                        |
| [Cursor](/docs/cursor)                           | Chat Completions, partly                                      |
| [GitHub Copilot (VS Code)](/docs/github-copilot) | Chat Completions, chat only                                   |
| [JetBrains AI Assistant](/docs/jetbrains-ai-assistant) | OpenAI-compatible provider                              |
| [Xcode](/docs/xcode)                             | Chat Completions, address without `/v1`                       |
| [Warp](/docs/warp)                               | Chat Completions, partly                                      |
| [Amp](/docs/amp)                                 | Only models in Amp's own catalog                              |
| [Open WebUI](/docs/open-webui)                   | OpenAI connection                                             |
| [LibreChat](/docs/librechat)                     | Custom endpoint in `librechat.yaml`                           |
| [n8n](/docs/n8n)                                 | OpenAI credential and Chat Model node                         |
| [Dify](/docs/dify)                               | OpenAI-API-compatible provider                                |

SDKs and frameworks are in the [SDKs and libraries](/docs/curl) section: cURL, Python, Node.js, the Anthropic SDK, the Vercel AI SDK, LangChain and LiteLLM, the OpenAI Agents SDK, the Claude Agent SDK, LlamaIndex, CrewAI, PHP and the Laravel AI SDK.

## If your tool is not here

Any tool with a setting called "OpenAI compatible", "custom provider", "API base" or "base URL" can use Tokens. [Other tools and compatibility](/docs/other-tools) lists what does not work (Gemini CLI, which only accepts Google's format) and gives the four things every tool needs: the base URL, a key, the exact model id and the model's limits.

Tools that only run in a web page cannot call Tokens directly, because Tokens' responses carry no CORS headers and a key must never be in code the browser downloads. [Browser and mobile apps](/docs/browser-and-mobile) shows the pattern that works.

## Before you connect anything

1. Create an API key with a monthly spend cap: [API keys](/docs/api-keys).
2. Pick a model your plan or wallet can use: [Choosing a model](/docs/choosing-a-model).
3. Check the key and model work with one request before you debug a tool's settings: the connection tester on the [docs home](/docs), or the curl command in [Quickstart](/docs/quickstart).

---
Page: https://tokens.bd/docs/integrations
