Base URL в Claude Code: как правильно задать ANTHROPIC_BASE_URL

Wokey Team · 2026-09-24

Коротко: базовый URL в Claude Code задаётся переменной окружения ANTHROPIC_BASE_URL. Указывайте только origin шлюза, без /v1. Для Wokey это https://api.wokey.ai; /v1/messages Claude Code добавляет сам. Ключ положите в ANTHROPIC_AUTH_TOKEN — он отправляется как Authorization: Bearer. Если задать базовый URL, но не задать ключ, Claude Code продолжит использовать сохранённый вход в claude.ai.

Минимальная настройка

export ANTHROPIC_BASE_URL="https://api.wokey.ai"
export ANTHROPIC_AUTH_TOKEN="your Wokey API key"
claude

Внутри Claude Code выполните /status. Запросы идут через Wokey, если на вкладке Status видно:

  • Anthropic base URL со значением https://api.wokey.ai
  • строку Auth token, в которой указан ANTHROPIC_AUTH_TOKEN

Если строки Anthropic base URL нет, переменная так и не попала в сессию.

Почему /v1 всё ломает

Claude Code считает ANTHROPIC_BASE_URL префиксом и отправляет запрос на $ANTHROPIC_BASE_URL/v1/messages. Если указать https://api.wokey.ai/v1, запрос уйдёт на /v1/v1/messages, и Wokey ответит:

{"message":"Route POST:/v1/v1/messages not found","error":"Not Found","statusCode":404}

OpenAI-совместимые клиенты вроде Cursor или Cherry Studio по соглашению принимают .../v1. Claude Code же следует соглашению Anthropic, и эти два подхода не совместимы. Не добавляйте также /v1/messages и завершающий слеш.

AUTH_TOKEN или API_KEY

Переменная Отправляется как Когда использовать
ANTHROPIC_AUTH_TOKEN Authorization: Bearer <key> Шлюз требует bearer-токен, или вы не уверены
ANTHROPIC_API_KEY x-api-key: <key> Шлюз требует заголовок x-api-key

Wokey принимает любой из этих заголовков. Разница — на стороне Claude Code:

  • ANTHROPIC_AUTH_TOKEN начинает действовать сразу.
  • ANTHROPIC_API_KEY в интерактивном режиме сначала один раз запрашивает подтверждение. Ключ, который вы раньше отклонили, молча игнорируется.

Не задавайте обе переменные с разными значениями. Если в двух заголовках приходят разные ключи, Wokey отклоняет запрос:

{"error":{"code":"conflicting_api_key_headers","message":"conflicting_api_key_headers","type":"invalid_request_error"}}

Один и тот же ключ в обоих заголовках — это нормально.

Что будет, если задан только базовый URL

Базовый URL — это не учётные данные. Если задан только ANTHROPIC_BASE_URL, а AUTH_TOKEN и API_KEY нет, Claude Code по-прежнему отправляет запросы с сохранённым входом в claude.ai. Wokey не распознаёт его как ключ Wokey и возвращает 401.

Как только задан ключ шлюза, вход в claude.ai остаётся сохранённым, но не используется; чтобы вернуться к нему, удалите переменную.

При запуске может появиться предупреждение, заканчивающееся на auth may not work as expected. В старых версиях вместо него выводится Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set. Оба означают, что одновременно есть ключ шлюза и сохранённый вход. Чтобы работать только через шлюз, выполните /logout внутри Claude Code — это удалит сохранённый вход.

Постоянная настройка в settings.json

export действует только в текущем терминале, а редакторы, запущенные из Dock или меню «Пуск», его не видят. Для постоянной работы пропишите значения в блоке env файла ~/.claude/settings.json:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.wokey.ai",
    "ANTHROPIC_AUTH_TOKEN": "your Wokey API key"
  }
}
  • Если одна и та же переменная задана и в shell, и в файле настроек, побеждает файл настроек. Если изменение переменной в shell как будто ни на что не влияет, проверьте сначала здесь.
  • Для отдельного проекта используйте .claude/settings.local.json этого проекта и убедитесь, что он добавлен в gitignore.
  • Никогда не кладите ключ в .claude/settings.json проекта. Этот файл коммитится в репозиторий.

Выбор моделей

Wokey использует те же ID моделей Claude, что и Anthropic, например claude-opus-5, claude-sonnet-5 и claude-haiku-4-5. Переключаться во время сессии можно командой /model. Чтобы закрепить, какая модель используется для каждого из уровней Claude Code — Opus, Sonnet и Haiku, — добавьте в env:

{
  "env": {
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
  }
}

ANTHROPIC_DEFAULT_HAIKU_MODEL также задаёт модель для фоновых задач, например для заголовков сессий.

Расширение VS Code и десктопное приложение

Расширение VS Code не использует переменные shell для проверки входа. Задайте их в пользовательских настройках самого VS Code: выполните Preferences: Open User Settings (JSON) из палитры команд и добавьте:

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://api.wokey.ai" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "your Wokey API key" }
  ]
}

Значения из ~/.claude/settings.json доходят до процесса, который запускает расширение, но не до собственной проверки входа в расширении. Если расширение продолжает просить войти, используйте настройку выше.

Десктопное приложение Claude не читает ни ANTHROPIC_BASE_URL, ни settings.json. Чтобы задать шлюз:

  1. Откройте Help → Troubleshooting → Enable Developer Mode.
  2. Откройте Developer → Configure Third-Party Inference и введите адрес шлюза.

Подробные шаги — в руководстве по настройке Claude Desktop.

Сначала проверьте через curl

Из того же терминала проверьте подключение без участия Claude Code:

curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'

Что говорит ответ:

  • Начинается с {"id":"msg_: URL и ключ в порядке; проблема в конфигурации Claude Code.
  • 401 с кодом invalid_api_key: ключ отсутствует, введён с ошибкой или удалён.
  • 404 с упоминанием /v1/v1/messages: в базовом URL лишний /v1.
  • curl работает, а Claude Code всё равно просит войти: у Claude Code нет собственного ключа. Проверьте, что переменные заданы в том же терминале, из которого запущен claude, или перенесите их в ~/.claude/settings.json.

Частые вопросы

Нужно ли добавлять /v1 в ANTHROPIC_BASE_URL?

Нет. Claude Code дописывает /v1/messages к base URL, поэтому с https://api.wokey.ai/v1 запрос уходит на /v1/v1/messages и получает 404. Для Wokey укажите https://api.wokey.ai.

ANTHROPIC_AUTH_TOKEN или ANTHROPIC_API_KEY?

ANTHROPIC_AUTH_TOKEN передаётся как Authorization: Bearer и начинает действовать сразу. ANTHROPIC_API_KEY передаётся как x-api-key и в интерактивном режиме требует однократного подтверждения. Wokey принимает оба варианта, рекомендуем ANTHROPIC_AUTH_TOKEN. Если задать обе переменные с разными значениями, вернётся 401 conflicting_api_key_headers.

Я задал только base URL. Почему по-прежнему используется моя подписка Claude?

Base URL — это не учётные данные. Без ANTHROPIC_AUTH_TOKEN или ANTHROPIC_API_KEY Claude Code продолжает использовать сохранённый вход в claude.ai. Добавьте ключ шлюза, а если хотите удалить сохранённый вход, выполните /logout.

Я изменил переменную окружения. Почему ничего не поменялось?

Блок env в ~/.claude/settings.json имеет приоритет над переменными оболочки. Проверьте, нет ли там старого значения, затем выполните /status, чтобы увидеть текущий base URL и источник учётных данных.

Как задать base URL в расширении для VS Code?

Добавьте ANTHROPIC_BASE_URL и ANTHROPIC_AUTH_TOKEN в claudeCode.environmentVariables в пользовательских настройках VS Code (JSON). Проверка входа в расширении не читает ~/.claude/settings.json.