# Use ACOG with coding tools

> Point Claude Code, Cursor, VS Code (Continue and Cline) and Zed at ACOG, and avoid the leftover settings that silently bypass it.

Product: AI Cost Optimizer Gateway (ACOG). Web version: https://tessarac.com/docs/acog/get-started/coding-tools. Last updated: 2026-10-16.

Coding assistants send a lot of repeated context, which is exactly what ACOG's caching saves on. Each tool below needs a base URL, your gateway key and a model. The console's **Documents → Quickstart** page shows the same settings filled in with your own gateway address and a model you have connected.

In the examples, the gateway is `https://gateway.acog.tessarac.com`, the hosted gateway. Tools that speak the Anthropic API use that base. Tools that speak the OpenAI API use it with `/v1` added.

## Claude Code

Set these in your shell, or in the `env` block of Claude Code's `settings.json`:

```bash
export ANTHROPIC_BASE_URL=https://gateway.acog.tessarac.com
# The gateway key goes in ANTHROPIC_AUTH_TOKEN (sent as Authorization: Bearer), not ANTHROPIC_API_KEY.
export ANTHROPIC_AUTH_TOKEN=acog_...
export ANTHROPIC_MODEL=claude-sonnet-4-5
# Background work (summaries, compaction) uses the small model. Pin it too.
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
claude
```

For the VS Code or Cursor extension, put the same variables under `claudeCode.environmentVariables`.

To use a model that is not a Claude model (for example Gemini through ACOG's translation), also set `ANTHROPIC_CUSTOM_MODEL_OPTION` to the model id and `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` to a display name.

Check these before you start:

- Unset `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX` and `CLAUDE_CODE_USE_FOUNDRY`. Any of them sends traffic straight to that cloud and bypasses ACOG, with no error.
- Unset `ANTHROPIC_API_KEY`. If it is set, Claude Code sends it as `x-api-key`, ACOG does not recognize it as a gateway key, and requests fail with `401`.
- A stale `ANTHROPIC_MODEL` or `ANTHROPIC_SMALL_FAST_MODEL` naming a model none of your connections declare fails with `409 model_not_configured`.

When a model does not support extended thinking or an `anthropic-beta` feature Claude Code asks for, ACOG retries without it and marks the response with `x-acog-thinking-stripped` or `x-acog-beta-stripped`, so the session keeps working.

## Cursor

In **Settings → Models → OpenAI**:

1. Turn on **Override OpenAI Base URL** and enter `https://gateway.acog.tessarac.com/v1`.
2. Enter your gateway key as the **OpenAI API Key**.
3. Add a custom model with the exact model id, for example `claude-sonnet-4-5`.

Remove any other OpenAI base URL override. Cursor sends requests through its own servers first, and a custom base URL applies to chat and inline edits rather than to every Cursor feature.

## VS Code: Continue

Add the model both ways in Continue's `config.json`. The same model id works on both bases; which provider serves it is decided by ACOG's routing, not by the entry:

```json
{
  "models": [
    {
      "title": "ACOG (Anthropic-compatible)",
      "provider": "anthropic",
      "model": "claude-sonnet-4-5",
      "apiBase": "https://gateway.acog.tessarac.com",
      "apiKey": "acog_..."
    },
    {
      "title": "ACOG (OpenAI-compatible)",
      "provider": "openai",
      "model": "claude-sonnet-4-5",
      "apiBase": "https://gateway.acog.tessarac.com/v1",
      "apiKey": "acog_..."
    }
  ]
}
```

Continue reads the key from its configuration, not from your shell. Remove other entries for the same models and unset `OPENAI_BASE_URL`: when several entries match, the last one wins. The same configuration works in JetBrains IDEs.

## VS Code: Cline

In Cline's settings, choose the **OpenAI Compatible** API provider, set the base URL to `https://gateway.acog.tessarac.com/v1`, paste your gateway key as the API key and enter the model id.

## Zed

Add a `language_models` block to `~/.config/zed/settings.json`. Zed picks the change up immediately:

```json
{
  "language_models": {
    "anthropic": {
      "api_url": "https://gateway.acog.tessarac.com"
    },
    "openai_compatible": {
      "acog": {
        "api_url": "https://gateway.acog.tessarac.com/v1",
        "available_models": [{ "name": "gemini-2.5-flash", "max_tokens": 128000 }]
      }
    }
  }
}
```

Zed does not read keys from `settings.json`. Enter the gateway key in Zed's provider settings when it asks. Remove any other `api_url` override for the same provider.

## Which model to use

Any model declared on one of your connections works with any of these tools, because ACOG translates between the OpenAI and Anthropic APIs. Use `auto` to let ACOG choose per request; see [Auto mode](https://tessarac.com/docs/acog/optimize/auto-mode.md). If the same model is available on more than one platform and you want one in particular, add the header `x-acog-channel` (for example `ANTHROPIC_CUSTOM_HEADERS="x-acog-channel: vertex"` in Claude Code). See [Routing and failover](https://tessarac.com/docs/acog/providers/routing-and-failover.md).
