---
title: Integrations
description: Point the tool you already use at the gateway: a base URL and a key. The platform's live recipes, step-by-step guides, and a prompt that lets your agent do the setup.
keywords: integrations, recipes, base url, key, claude code, cursor, sdk, prompt
group: integrations
---

## What actually changes {#what keywords="integration, base url, key, migration"}

An integration comes down to two lines in a tool's settings: the gateway address and your key. Same client, same library, same requests, same parameter names.

There is one difference, and only one: on Kumo, Chat Completions requires an output ceiling — `max_tokens` or `max_completion_tokens`. A client that never sent one has to start sending it, or the request is refused at validation. [What that looks like in a request](/en/chat-completions).

The key is issued in the console and lives in an environment variable — usually `KUMO_API_KEY`. The tool either reads it itself or you paste the value into its settings form.

:::steps
- **Take a key** — The keys screen in the console; the secret is shown once.
- **Find the provider setting** — A config file for some tools, a settings screen for others.
- **Put in the address and the key** — Leave the rest of the configuration alone.
- **Make one test call** — Then find it in the console log.
:::

A test call spends money like any other: an empty wallet answers `402` — [top it up](/en/billing) first.

:::tip
Pages whose examples carry a model show a model picker above them. Pick a model and its identifier is substituted into every example on the page, copying included. Any such guide takes the choice straight from the address: pass the model's canonical name as the `model` query parameter of the page address (`?model`), and the page opens with it already selected.
:::

## Two dialects {#dialects keywords="openai, anthropic, base url, v1, messages"}

The gateway speaks both protocols at once, and the protocol decides exactly one thing — which base URL you write down.

- **OpenAI-compatible** — base URL `https://api.kumorouter.com/v1`, ending in `/v1`. The client appends `/chat/completions`, `/responses`, `/embeddings` to it.
- **Anthropic-compatible** — base URL `https://api.kumorouter.com`, the bare origin, with no `/v1`. Clients of that protocol append `/v1/messages` themselves, so an address that already carries `/v1` produces a path with `v1` twice — and a 404.

That is a typical cause of a 404 from an otherwise valid key, but not the only one: an unknown model ID also produces a 404. When you are unsure which dialect a tool speaks, look at which SDK it pulls in; if the address and dialect are right and the 404 persists, check the model name against the [catalog](/en/models).

:::matrix
| Tool | Dialect | Base URL |
| --- | --- | --- |
| Claude Code | Anthropic | `https://api.kumorouter.com` |
| Codex CLI | OpenAI | `https://api.kumorouter.com/v1` |
| Cursor | OpenAI | `https://api.kumorouter.com/v1` |
| Cline Roo Code Continue | OpenAI | `https://api.kumorouter.com/v1` |
| Aider Zed OpenClaw | OpenAI | `https://api.kumorouter.com/v1` |
| Your own code, through an SDK | either | whichever SDK you use |
:::

> [How the key header is written →](/en/authentication) [How a model is named →](/en/models)

## Every recipe {#recipes keywords="recipes, snippet, copy, tools"}

Below are the recipes the platform publishes itself: one per tool, with a ready configuration and a copy button. The model in them comes from the picker. Tools that are configured through a screen rather than a file carry a prompt for your coding agent instead of a config.

:::slot integrations
:::

## Step-by-step guides {#guides keywords="guides, claude code, codex, cursor, vscode, sdk"}

:::cards
- [Claude Code](/en/claude-code) — three environment variables, or an `env` block in the settings file.
- [Codex CLI](/en/codex-cli) — a provider in `~/.codex/config.toml` and the key from the environment.
- [Cursor](/en/cursor) — your own key and an overridden base URL in the model settings.
- [VS Code extensions](/en/vscode-extensions) — Cline, Roo Code and Continue.
- [Other tools](/en/other-tools) — Aider, Zed, OpenClaw, and any tool at all.
- [SDKs](/en/sdks) — the OpenAI and Anthropic SDKs in Python and Node.
:::

## A prompt for your agent {#agent-prompt keywords="prompt, agent, automatic setup"}

You do not have to do the setup by hand. There is already a coding agent on your machine — hand it the connection details and it will find the config file, back it up, show you a diff and check the result.

The platform's prompts are English by design: an agent follows an instruction most reliably in the language most of its examples were written in. They are not prose to read — they are text to copy.

:::prompt
A generic prompt for any tool. Replace `<TOOL>` with the tool's name and paste the text into your agent.

```text
Goal: connect <TOOL> on this computer to Kumo — a gateway compatible with the OpenAI and
Anthropic APIs — by changing only the provider configuration: the endpoint and the API key.
Nothing about how I use the tool should change.

Connection details:
- OpenAI-compatible base URL: https://api.kumorouter.com/v1
- Anthropic-compatible base URL: https://api.kumorouter.com
      ^ the bare origin, no /v1: Anthropic-style clients append /v1/messages themselves.
- Auth header: Authorization: Bearer <KUMO_API_KEY>
      ^ my key, read from the KUMO_API_KEY environment variable.
- Model ID to configure: <model>

Rules:
- You are running on my computer: read the real files before editing them, and never guess a
  path you have not verified exists.
- Back up every config file you touch and show me a diff BEFORE writing.
- Add Kumo alongside what I already have — do not delete other providers, profiles or keys.
- Never print my key in full into the chat, a log, or a file that is committed to git.
- If the installed version documents different key names, follow the INSTALLED version and
  tell me what was different.
- If the tool cannot be pointed at a custom endpoint, say so plainly and stop. Do not invent
  a setting.

Steps:
1. Confirm the tool is installed here and report its version.
2. Work out which dialect it speaks — OpenAI or Anthropic — and take the matching base URL.
3. Find where its model provider is configured, show me what is there now, and back it up.
4. Set the base URL, the key from the environment variable, and the model ID.
5. Verify: make one test call, then make the tool itself answer one prompt.

Done when: the tool answers a test prompt through Kumo, and the request appears in the Kumo
console on the Logs page.

Reply: list every file you changed, what you set in it, and paste the test output.
```
:::

> [Start with Claude Code →](/en/claude-code) [Check your key →](/en/key-check)
