Skip to content

Claude CLI

На этой странице показаны ручная настройка и готовые скрипты для Claude CLI.

Для Claude CLI важны две вещи:

  • auth идет через ANTHROPIC_AUTH_TOKEN
  • ANTHROPIC_BASE_URL указывается как корень gateway, без /v1

Фактические HTTP-запросы должны уходить в:

POST https://apikey.center/v1/messages

Для этого ANTHROPIC_BASE_URL нужно указывать не как https://apikey.center/v1, а как корень gateway:

https://apikey.center

Основной рабочий сценарий хранится в user-level ~/.claude/settings.json через блок env.

  • установленный Claude Code / Claude CLI
  • API key от apikey.center
  • модель, совместимая с Anthropic-compatible сценарием

1. Найди пользовательскую папку .claude

Section titled “1. Найди пользовательскую папку .claude”
  • macOS / Linux / WSL: ~/.claude/
  • Windows: %USERPROFILE%\.claude\

Если на macOS папка .claude не видна в Finder:

  • нажми Command + Shift + ., чтобы показать скрытые файлы
  • или нажми Command + Shift + G и сразу открой ~/.claude

На Windows проще всего вставить %USERPROFILE%\.claude\ прямо в адресную строку Проводника.

2. Сделай backup перед правкой

Section titled “2. Сделай backup перед правкой”

Для user-level сценария обычно достаточно сохранить копию одного файла:

  • ~/.claude/settings.json

Самый простой вариант:

macOS / Linux:

Terminal window
cp ~/.claude/settings.json ~/.claude/settings.json.backup 2>/dev/null || true

Windows PowerShell:

Terminal window
Copy-Item "$HOME\.claude\settings.json" "$HOME\.claude\settings.json.backup" -ErrorAction SilentlyContinue

Если settings.json еще не существует, это нормально.

3. Открой пользовательский settings.json

Section titled “3. Открой пользовательский settings.json”

Официальный user-level файл Claude Code:

  • macOS / Linux / WSL: ~/.claude/settings.json
  • Windows: %USERPROFILE%\.claude\settings.json
  • project-level shared config: .claude/settings.json
  • project-level local config: .claude/settings.local.json

Для первого подключения лучше использовать именно user-level ~/.claude/settings.json.

4. Добавь рабочий блок env

Section titled “4. Добавь рабочий блок env”

Если файла еще нет, создай его. Затем добавь или объедини блок env:

{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-REPLACE_WITH_YOUR_KEY",
"ANTHROPIC_BASE_URL": "https://apikey.center",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}

Это минимальный рабочий сценарий для apikey.center.

Что здесь важно:

  • ANTHROPIC_AUTH_TOKEN хранит сам ключ
  • ANTHROPIC_BASE_URL должен быть https://apikey.center, без /v1
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 снижает лишний фоновый трафик и хорошо подходит для gateway-сценария

Если в settings.json уже есть другие поля или уже существует блок env, не стирай их. Просто добавь или обнови нужные ключи.

5. Рекомендуемый сценарий для Claude-моделей

Section titled “5. Рекомендуемый сценарий для Claude-моделей”

Если хочешь, чтобы Claude CLI по умолчанию использовал именно семейство Claude, обычно не нужно жестко прописывать versioned claude-* model ID. У разных source они могут немного отличаться, поэтому для обычного сценария лучше оставить логические слоты sonnet, opus и haiku.

{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-REPLACE_WITH_YOUR_KEY",
"ANTHROPIC_BASE_URL": "https://apikey.center",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"model": "sonnet"
}

Что это значит:

  • model: "sonnet" оставляет основной диалог на слоте sonnet
  • Claude Code сам выберет подходящую Claude-модель для этого слота из доступного source
  • такой сценарий устойчивее, если у разных source немного отличаются точные claude-* ID

Это и есть рекомендуемый вариант, если задача именно про модели Claude.

Если тебе все же нужно жестко зафиксировать точный claude-* ID из конкретного source, сначала проверь его через /v1/models, а потом уже добавляй ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL или ANTHROPIC_DEFAULT_HAIKU_MODEL вручную как advanced override.

6. Дополнительный сценарий для GPT-моделей

Section titled “6. Дополнительный сценарий для GPT-моделей”

Если хочешь использовать gpt-модели внутри Claude Code, можно оставить привычные слоты opus, sonnet, haiku, но переназначить их на свои model ID через gateway.

Рабочий пример:

{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-REPLACE_WITH_YOUR_KEY",
"ANTHROPIC_BASE_URL": "https://apikey.center",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "gpt-5.5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "gpt-5.4",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "gpt-5.4-mini",
"CLAUDE_CODE_SUBAGENT_MODEL": "gpt-5.4-mini",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"model": "sonnet"
}

Как это читать:

  • model: "sonnet" остается в терминах Claude Code
  • реальная модель для основного диалога берется из ANTHROPIC_DEFAULT_SONNET_MODEL
  • ANTHROPIC_DEFAULT_OPUS_MODEL и ANTHROPIC_DEFAULT_HAIKU_MODEL задают остальные слоты
  • CLAUDE_CODE_SUBAGENT_MODEL позволяет отдельно зафиксировать модель для subagent-сценариев

Практически это значит:

  • основной чат можно держать на gpt-5.4 через model: "sonnet"
  • тяжелый профиль можно завести на gpt-5.5 через opus
  • быстрый и дешевый профиль можно увести на gpt-5.4-mini через haiku
  • subagents можно принудительно держать на gpt-5.4-mini, даже если основной чат идет на более сильной модели

7. Опционально добавь compatibility flag

Section titled “7. Опционально добавь compatibility flag”

Если раньше у тебя работал другой gateway с отдельным compat-режимом, можно добавить:

{
"env": {
"CLAUDE_CODE_ATTRIBUTION_HEADER": "0"
}
}

Для apikey.center этот флаг не считается обязательным по умолчанию. Его лучше держать как optional fallback, а не как базовую часть инструкции.

8. Опционально включи model discovery

Section titled “8. Опционально включи model discovery”

Если хочешь, чтобы Claude Code пробовал читать список моделей через gateway, добавь еще один флаг:

{
"env": {
"CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1"
}
}

Для базового подключения к apikey.center этот флаг не обязателен. Он нужен только для сценария, где клиент должен отдельно перечитывать /v1/models.

Полностью закрой текущую сессию и открой CLI заново, чтобы он перечитал env и settings.json.

10. Проверь модель и запрос

Section titled “10. Проверь модель и запрос”

Если discovery включен, Claude Code может отдельно сходить в GET https://apikey.center/v1/models.

Если discovery не включен, это не мешает основной работе: сам запрос все равно должен идти в POST https://apikey.center/v1/messages.

Если ты оставил обычный Claude-сценарий без явного mapping, достаточно того, что Claude CLI уходит в POST https://apikey.center/v1/messages и корректно использует слот sonnet, opus или haiku.

Если ты используешь явный mapping через model: "sonnet", основной запрос должен реально идти в ту модель, которую ты указал в ANTHROPIC_DEFAULT_SONNET_MODEL.

По умолчанию скрипт автонастройки настраивает Claude CLI именно под модели Claude:

Terminal window
irm https://docs.apikey.center/i/claude-cli.ps1 | iex

Unix-версия:

Terminal window
curl -fsSL https://docs.apikey.center/i/claude-cli.sh | sh

Что делает installer по умолчанию:

  • обновляет ~/.claude/settings.json
  • выставляет ANTHROPIC_AUTH_TOKEN и ANTHROPIC_BASE_URL=https://apikey.center
  • включает CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
  • ставит root-level model = "sonnet"
  • не закрепляет versioned claude-* ID по умолчанию, чтобы не привязываться к одному source Claude-моделей

Если нужен отдельный installer именно для GPT-mapping:

Terminal window
irm https://docs.apikey.center/i/claude-cli-gpt.ps1 | iex

Unix-версия:

Terminal window
curl -fsSL https://docs.apikey.center/i/claude-cli-gpt.sh | sh

Что делает GPT-variant:

  • обновляет тот же ~/.claude/settings.json
  • оставляет ANTHROPIC_AUTH_TOKEN и ANTHROPIC_BASE_URL=https://apikey.center
  • маппит opus -> gpt-5.5, sonnet -> gpt-5.4, haiku -> gpt-5.4-mini
  • фиксирует CLAUDE_CODE_SUBAGENT_MODEL = "gpt-5.4-mini" и root-level model = "sonnet"

Если нужен другой root-level slot:

  • PowerShell: & ([scriptblock]::Create((irm https://docs.apikey.center/i/claude-cli.ps1))) -Slot opus
  • Unix shell: curl -fsSL https://docs.apikey.center/i/claude-cli.sh | sh -s -- --slot opus

Если нужен точный claude-* model ID из конкретного source, его тоже можно передать явно:

  • PowerShell: & ([scriptblock]::Create((irm https://docs.apikey.center/i/claude-cli.ps1))) -SonnetModel claude-sonnet-4-5
  • Unix shell: curl -fsSL https://docs.apikey.center/i/claude-cli.sh | sh -s -- --sonnet-model claude-sonnet-4-5

Если нужен gateway-discovery:

  • PowerShell: & ([scriptblock]::Create((irm https://docs.apikey.center/i/claude-cli.ps1))) -EnableDiscovery
  • Unix shell: curl -fsSL https://docs.apikey.center/i/claude-cli.sh | sh -s -- --enable-discovery

Те же флаги поддерживает и GPT-variant:

  • PowerShell: & ([scriptblock]::Create((irm https://docs.apikey.center/i/claude-cli-gpt.ps1))) -Slot opus
  • PowerShell: & ([scriptblock]::Create((irm https://docs.apikey.center/i/claude-cli-gpt.ps1))) -EnableDiscovery
  • Unix shell: curl -fsSL https://docs.apikey.center/i/claude-cli-gpt.sh | sh -s -- --slot opus
  • Unix shell: curl -fsSL https://docs.apikey.center/i/claude-cli-gpt.sh | sh -s -- --enable-discovery
  • Claude CLI стартует без возврата к дефолтному api.anthropic.com
  • основной запрос уходит в POST https://apikey.center/v1/messages
  • ANTHROPIC_AUTH_TOKEN читается из ~/.claude/settings.json
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 не ломает основной рабочий поток
  • в обычном Claude-сценарии model: "sonnet" остается логическим слотом без жесткого pin-а на versioned claude-* ID
  • если включен mapping, model: "sonnet" использует модель из ANTHROPIC_DEFAULT_SONNET_MODEL
  • если задан CLAUDE_CODE_SUBAGENT_MODEL, subagent-сценарии не сваливаются обратно в другой дефолт
  • gateway-discovery, если он включен, использует GET https://apikey.center/v1/models
  • при неверном ключе виден auth-error, а не ошибка некорректного base URL

Быстрый смысл проверки:

  • default installer должен приводить к обычному Claude-сценарию без жесткого pin-а на versioned claude-* ID
  • claude-cli-gpt должен приводить к GPT-моделям
  • в обоих случаях wire path все равно идет через POST /v1/messages
  • PowerShell installer: & ([scriptblock]::Create((irm https://docs.apikey.center/i/claude-cli.ps1))) -Rollback
  • Unix installer: curl -fsSL https://docs.apikey.center/i/claude-cli.sh | sh -s -- --rollback
  • PowerShell GPT installer: & ([scriptblock]::Create((irm https://docs.apikey.center/i/claude-cli-gpt.ps1))) -Rollback
  • Unix GPT installer: curl -fsSL https://docs.apikey.center/i/claude-cli-gpt.sh | sh -s -- --rollback
  • убери из блока env ANTHROPIC_AUTH_TOKEN и ANTHROPIC_BASE_URL
  • убери ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL и ANTHROPIC_DEFAULT_HAIKU_MODEL, если включал mapping
  • убери CLAUDE_CODE_SUBAGENT_MODEL, если отдельно фиксировал subagent-модель
  • убери CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, если добавлял его только для этого сценария
  • убери CLAUDE_CODE_ATTRIBUTION_HEADER, если включал compat-режим
  • убери CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY, если включал discovery
  • если делал backup ~/.claude/settings.json, просто верни его

Поставил ANTHROPIC_BASE_URL=https://apikey.center/v1

Section titled “Поставил ANTHROPIC_BASE_URL=https://apikey.center/v1”

Это одна из самых частых ошибок. В таком случае клиент может начать собирать URL с лишним /v1. Для Claude Code base URL должен быть https://apikey.center.

Ожидали Claude-модели, но получили GPT

Section titled “Ожидали Claude-модели, но получили GPT”

Проверь, не использовал ли ты отдельный installer claude-cli-gpt или не остались ли в settings.json старые поля:

  • ANTHROPIC_DEFAULT_OPUS_MODEL
  • ANTHROPIC_DEFAULT_SONNET_MODEL
  • ANTHROPIC_DEFAULT_HAIKU_MODEL
  • CLAUDE_CODE_SUBAGENT_MODEL

Если хочешь именно обычный Claude-сценарий, эти поля можно не задавать вообще. Тогда Claude Code сам выберет подходящую Claude-модель для слотов opus, sonnet и haiku.

Если нужен точный claude-* ID из конкретного source, сначала проверь его через /v1/models, а потом закрепи вручную как advanced override.

Ожидали GPT-модели, но остались Claude-модели

Section titled “Ожидали GPT-модели, но остались Claude-модели”

Значит ты либо запускал обычный claude-cli installer, либо вручную оставил Claude-native mapping. Для GPT-варианта рекомендуем:

  • opus -> gpt-5.5
  • sonnet -> gpt-5.4
  • haiku -> gpt-5.4-mini
  • subagent -> gpt-5.4-mini

Проверь три вещи:

  • включен ли CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY
  • отдает ли gateway GET /v1/models
  • нужен ли тебе discovery вообще, или достаточно прямого запроса в POST /v1/messages

Ключ будто не применяется

Section titled “Ключ будто не применяется”

Проверь, что после изменения settings.json ты полностью перезапустил terminal session.

Включили model: "sonnet", но ждете прямой gpt-* id в UI

Section titled “Включили model: "sonnet", но ждете прямой gpt-* id в UI”

В этом mapping-сценарии model остается логическим слотом Claude Code, а реальный model ID задается через:

  • ANTHROPIC_DEFAULT_OPUS_MODEL
  • ANTHROPIC_DEFAULT_SONNET_MODEL
  • ANTHROPIC_DEFAULT_HAIKU_MODEL

Если основной чат должен идти в gpt-5.4, то в этом примере нужно держать model: "sonnet" и отдельно прописать ANTHROPIC_DEFAULT_SONNET_MODEL = "gpt-5.4".

Основной чат идет правильно, а subagent уходит в другую модель

Section titled “Основной чат идет правильно, а subagent уходит в другую модель”

Проверь, задан ли CLAUDE_CODE_SUBAGENT_MODEL. Если этот флаг не заполнен, поведение subagent-части может отличаться от основного слота.

Смешали старую и новую схему авторизации

Section titled “Смешали старую и новую схему авторизации”

Для apikey.center основной путь в этой инструкции - ANTHROPIC_AUTH_TOKEN внутри ~/.claude/settings.json.

Если у тебя одновременно остались старые env var вроде ANTHROPIC_API_KEY и новый блок env, сначала приведи конфиг к одной схеме, чтобы не ловить путаницу.