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. Чтобы задать шлюз:
- Откройте Help → Troubleshooting → Enable Developer Mode.
- Откройте 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.