---
title: Integrations
description: Run Claude Code, Codex CLI, Gemini CLI, Cherry Studio, DeepChat, AionUI or any OpenAI-compatible app on half-price models with one Half Off Dev key.
---

If a client lets you override its API base URL, it can run on Half Off Dev, and every request it makes is billed at half the official price. The change is always the same two values, endpoint and key; your prompts, settings and workflow stay put. Start by creating an [API key](/app/keys).

## Pick your client {#clients}

Each guide covers one client end to end: config file or commands, which models to choose, and the errors people usually hit.

:::cards
- :terminal: [Claude Code](/docs/integrations/claude-code) Talks Anthropic Messages. Two environment variables or `settings.json`; prompt caching keeps working.
- :terminal: [Codex CLI](/docs/integrations/codex-cli) Talks the OpenAI Responses API with GPT models. One provider block in `config.toml`.
- :terminal: [Gemini CLI](/docs/integrations/gemini-cli) Talks the Gemini API. Two environment variables.
- :plug: [Cherry Studio](/docs/integrations/cherry-studio) Desktop chat client. OpenAI-compatible provider, importable in one click.
- :plug: [DeepChat](/docs/integrations/deepchat) Desktop chat client. OpenAI-compatible provider, importable in one click.
- :plug: [AionUI](/docs/integrations/aionui) Desktop chat client. OpenAI-compatible provider, importable in one click.
- :layers: [OpenAI-compatible apps](/docs/integrations/openai-compatible) Any app, framework or library that accepts a custom OpenAI endpoint.
- :code: [SDKs](/docs/integrations/sdks) The official OpenAI, Anthropic and Google Gen AI SDKs, Python and Node.js.
:::

## Let the dashboard fill it in {#one-click-setup}

On the [API keys](/app/keys) page, every key has a **Use in tools** button (and a fresh key gets **Use in tools…** right next to it). The dialog it opens holds a ready-made setup for each client above with your key already inserted, plus import shortcuts:

- **Claude Code, Codex CLI and Gemini CLI:** **Import with CC Switch** registers Half Off Dev as a provider in the [CC Switch](https://github.com/farion1231/cc-switch) desktop app, models included. You need CC Switch installed.
- **Cherry Studio, DeepChat and AionUI:** **Open in** *app* adds Half Off Dev as a provider inside that app. You need the app installed.

A key you have just created is already in the dialog. For an older key, paste it in yourself: only a hash is stored, so Half Off Dev can't display it again.

## Which base URL? {#base-urls}

It depends on the API format your client speaks, never on the model you pick:

| API format | Used by | Base URL |
| --- | --- | --- |
| Anthropic Messages | Claude Code, Anthropic SDK | `https://halfoff.dev` |
| OpenAI Chat Completions and Responses | Codex CLI, OpenAI SDK, OpenAI-compatible apps | `https://halfoff.dev/v1` |
| Gemini | Gemini CLI, Google Gen AI SDK | `https://halfoff.dev` |
| OpenAI-compatible "API host" field | Cherry Studio, DeepChat, AionUI | `https://halfoff.dev` (the app appends `/v1`) |

## When something fails {#troubleshooting}

| What you see | What to do |
| --- | --- |
| `401` `Missing API key` | No key is reaching Half Off Dev. Check the variable name and that it is exported in the same shell that launches the client. |
| `401` `Invalid or revoked API key` | The key was mistyped, cut short or revoked. Paste it again or make a new one. |
| `404` `Model '...' is not available` | That model id doesn't exist. Copy one from `GET /v1/models` or the [model list](/models). |
| `404` `Unknown endpoint` | The client is asking for an API Half Off Dev doesn't serve, embeddings for example. Switch it to Chat Completions, Responses, Anthropic Messages or Gemini. |
| `404` with `/v1/v1/` in the path | The client adds `/v1` on its own. Give it `https://halfoff.dev` as the host. |
| `402` | The balance is empty or the key has hit its spend cap. See [Billing](/docs/account/billing). |

The individual guides list client-specific errors, and [Errors](/docs/api/errors) covers every status code.
