Claude Code: settings.json и переменные окружения — базовый URL, токен авторизации и модель

AIHubMix7 мин чтения
Claude Code: settings.json и переменные окружения — базовый URL, токен авторизации и модель

Claude Code получает конфигурацию из файлов настроек JSON и переменных окружения. Чтобы использовать его через шлюз, а не API Anthropic, нужны две переменные — ANTHROPIC_BASE_URL и токен, а обычно ещё и модель. Сами переменные задать просто. Чаще всего пользователей сбивает с толку, куда именно их поместить: одна и та же переменная может быть задана в профиле оболочки, в нескольких файлах settings.json и в настройках VS Code.

В этом руководстве сначала описана работающая конфигурация, а затем объясняется, где находятся файлы, какие значения имеют приоритет и с какими ошибками вы можете столкнуться. Руководство сверено с документацией Anthropic и протестировано с AIHubMix на Claude Code 2.1.304 20 октября 2026 года. В примерах в качестве шлюза используется AIHubMix; любой совместимый с Anthropic адрес настраивается так же.

Кратко

  • Ваш личный файл настроек — ~/.claude/settings.json, а в Windows — %USERPROFILE%\.claude\settings.json.
  • Для шлюза добавьте ANTHROPIC_BASE_URL (без /v1) и ANTHROPIC_AUTH_TOKEN в блок env этого файла.
  • Значение в блоке env файла настроек имеет приоритет над той же переменной, заданной в оболочке.
  • Как только задан токен, запросы перестают использовать вашу подписку Claude и оплачиваются через шлюз.
  • Для расширения VS Code те же переменные нужно указать в его собственной настройке claudeCode.environmentVariables.

Рабочая конфигурация AIHubMix

  1. Создайте ключ в консоли AIHubMix.
  2. Добавьте это в ~/.claude/settings.json. Если файла нет, создайте его.
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "env": {
    "ANTHROPIC_BASE_URL": "https://aihubmix.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-your-aihubmix-key"
  },
  "model": "claude-sonnet-5-5"
}
  1. Быстрая проверка:
claude -p "1+1, output only the answer"
  1. Запустите claude в проекте. В заголовке под логотипом должно отображаться что-то вроде Sonnet 5.5 · API Usage Billing, а команда /status покажет ваш шлюз в строке Anthropic base URL.

Важны два нюанса. Базовый URL — это корневой адрес: Claude Code самостоятельно добавляет /v1/messages, поэтому URL, оканчивающийся на /v1, нарушит работу всех запросов. Кроме того, AIHubMix использует собственные идентификаторы моделей Anthropic, например claude-sonnet-5-5, поэтому сокращения sonnet, opus и haiku работают без дополнительной настройки.

Строка $schema необязательна. Она позволяет VS Code, Cursor и другим редакторам подсвечивать ошибки в файле прямо во время ввода.

Вместо этого можно задать те же две переменные в оболочке, но файл настроек — более подходящее место: его читают все терминалы, расширения IDE и фоновые агенты.

Где находятся файлы настроек

Область действия Файл К кому применяется
Пользовательские ~/.claude/settings.json К вам — во всех проектах
Проектные .claude/settings.json Ко всем участникам репозитория — через git
Локальные .claude/settings.local.json Только к вам — только в этом репозитории
Управляемые Задаются вашей организацией Ко всем, кому они назначены

Никогда не помещайте токен в файл проекта .claude/settings.json, поскольку он добавляется в git. Используйте пользовательский файл или .claude/settings.local.json.

Файлы настроек должны содержать корректный JSON. Комментарий // или завершающая запятая приведут к тому, что Claude Code проигнорирует весь файл, включая токен, и вместо шлюза вы увидите экран входа.

Не путайте эти файлы с ~/.claude.json — отдельным файлом в домашней папке. В нём хранится внутреннее состояние Claude Code, например данные входа и MCP-серверы, и обычно его не нужно редактировать.

Какое значение имеет приоритет

Если несколько файлов задают один и тот же параметр, действует порядок приоритета настроек Anthropic — от наивысшего к наименьшему:

  1. Управляемые настройки вашей организации
  2. --settings в командной строке — только для текущего сеанса
  3. .claude/settings.local.json
  4. .claude/settings.json
  5. ~/.claude/settings.json

Для переменных окружения действует ещё одно правило: переменная в блоке env файла настроек переопределяет ту же переменную, заданную в оболочке. Поэтому команда export ANTHROPIC_BASE_URL=... в ~/.zshrc ничего не даст, если эта переменная также задана в файле настроек. Инструменты переключения провайдера обычно записывают настройки в ~/.claude/settings.json, поэтому их значения имеют приоритет над заданными в оболочке.

В Claude Code команда /status перечисляет загруженные файлы в строке Setting sources.

ANTHROPIC_AUTH_TOKEN или ANTHROPIC_API_KEY

Переменная Передаётся как Примечание
ANTHROPIC_AUTH_TOKEN Authorization: Bearer Используется сразу
ANTHROPIC_API_KEY x-api-key Один раз запрашивает подтверждение

Используйте ту переменную, которую читает ваш шлюз. AIHubMix принимает обе, а в его руководстве по Claude Code используется ANTHROPIC_AUTH_TOKEN — это также более простой вариант. Не задавайте обе переменные одновременно. В противном случае Claude Code отправит оба заголовка, а AIHubMix сначала проверяет x-api-key: в нашем тесте корректный токен в settings.json всё равно привёл к ошибке 401, потому что в оболочке была задана старая переменная ANTHROPIC_API_KEY. Блок env переопределяет только указанные в нём переменные, поэтому при переходе удалите старый ключ из профиля оболочки.

Что происходит с подпиской Claude? Согласно руководству Anthropic по шлюзам, как только задана переменная с токеном или API-ключом, запросы используют её вместо входа через claude.ai, а шлюз взимает плату за токены. Данные входа сохраняются и снова используются после удаления переменной. Если задать только ANTHROPIC_BASE_URL, без токена, продолжит использоваться ваша подписка.

Выбор модели

На странице Anthropic о настройке моделей указан следующий порядок — от наивысшего приоритета к наименьшему:

  1. /model <name> во время сеанса
  2. claude --model <name> при запуске
  3. Переменная ANTHROPIC_MODEL
  4. Ключ model в файле настроек

/model сохраняет ваш выбор как новый вариант по умолчанию. Однако если задана ANTHROPIC_MODEL, каждый новый сеанс снова будет запускаться с этой моделью. Если вы часто переключаетесь между моделями, задайте ключ model и не указывайте ANTHROPIC_MODEL. Если модель нигде не задана, Claude Code использует Opus 5.5.

ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL и ANTHROPIC_DEFAULT_HAIKU_MODEL меняют модели, к которым обращается каждое из этих сокращений. Они нужны, только если вы хотите направить сокращение на другую модель, например оставить для sonnet более старую версию.

AIHubMix также предоставляет модели других поставщиков по тому же адресу, но Anthropic не поддерживает Claude Code с моделями, не относящимися к Claude, поэтому некоторые функции могут работать некорректно.

Когда изменения вступают в силу

Claude Code отслеживает файлы настроек, и большинство сохранённых изменений, включая блок env, применяется в текущем сеансе. Для применения ключа model, удаления переменных и изменений в настройках оболочки требуется перезапуск. Если сомневаетесь, перезапустите Claude Code.

Расширение VS Code

Расширение читает те же файлы настроек, но перед запуском проверяет вход с помощью собственной настройки claudeCode.environmentVariables. Поэтому VS Code может попросить вас войти, даже если CLI работает. Откройте Preferences: Open User Settings (JSON) через палитру команд и добавьте:

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://aihubmix.com" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-your-aihubmix-key" }
  ]
}

Затем выполните Developer: Reload Window. Другие варианты описаны в документации Anthropic по VS Code. Приложение Claude Desktop работает отдельно: оно не читает ни settings.json, ни эти переменные.

Другие полезные переменные

Переменная Когда задавать
API_TIMEOUT_MS Длительные запросы завершаются по тайм-ауту (по умолчанию — 10 минут)
CLAUDE_CODE_MAX_RETRIES Если хотите быстрее увидеть ошибки
HTTPS_PROXY Если вы используете HTTP-прокси
NODE_EXTRA_CA_CERTS Если прокси использует собственный корневой сертификат

Их все можно добавить в блок env. Полный список приведён в справочнике Anthropic по переменным окружения.

Распространённые ошибки и их значение

Not logged in · Please run /login, или экран входа при первом запуске
Claude Code не обнаружил токен. Проверьте три возможные причины: ошибка в JSON, из-за которой файл был проигнорирован; отсутствие ANTHROPIC_AUTH_TOKEN; токен указан только в файле проекта. Вход выполняется до загрузки проектных настроек, поэтому перенесите токен в ~/.claude/settings.json.

Invalid or malformed JSON
В указанном в сообщении файле есть комментарий, завершающая запятая или другая синтаксическая ошибка, поэтому ни одна из его настроек не была применена.

There's an issue with the selected model (...)
Либо указан неверный ID модели, либо базовый URL заканчивается на /v1, из-за чего запрос отправлен на адрес /v1/v1/messages. Если ID модели выглядит правильным, сначала проверьте URL.

API Error: 400 с сообщением This model ID is incorrect
В AIHubMix нет модели с таким ID, и в сообщении повторяется полученный ID. Обычно это опечатка. Скопируйте ID ещё раз из списка моделей AIHubMix.

Failed to authenticate. API Error: 401 invalid key: ...
AIHubMix не принимает ключ. Сообщение заканчивается последними шестью символами полученного ключа, поэтому сравните их с концом вашего токена. Значение PI_KEY означает, что вместо настоящего ключа был вставлен заполнитель AIHUBMIX_API_KEY. Любое другое значение обычно говорит о том, что из оболочки был отправлен старый ключ ANTHROPIC_API_KEY. Если вместо этого сообщение говорит this key is not enabled, проверьте в консоли AIHubMix, что ключ активен и на счету есть средства.

auth may not work as expected
Одновременно активны переменная с токеном и сохранённый вход в claude.ai. Выполните /logout, чтобы продолжить использовать шлюз, или удалите переменную, чтобы вернуться к подписке.

Claude Code doesn't recognize the model ...
Это предупреждение, а не ошибка: запрос всё равно отправляется, но Claude Code предполагает, что окно контекста составляет 200K токенов. Если ID принадлежит более новой модели Claude, выполните claude update, чтобы убрать предупреждение.

При неверном ключе кажется, что программа зависла
Claude Code повторяет неудачные запросы до 10 раз. В тесте с постоянно отклоняемым ключом команда claude -p повторяла запросы около трёх минут. Уменьшите значение CLAUDE_CODE_MAX_RETRIES, чтобы быстрее увидеть ошибку.

Если вам нужен один ключ для Claude в Claude Code и для OpenAI, Google и других поставщиков в остальных инструментах, AIHubMix предоставляет API Anthropic по адресу https://aihubmix.com. Для работы Claude Code достаточно файла настроек, приведённого выше.

Часто задаваемые вопросы

Где находится файл settings.json в Claude Code?
Ваш личный файл — ~/.claude/settings.json, а в Windows — %USERPROFILE%.claude\settings.json. В проекте также могут быть .claude/settings.json, общий для участников и добавляемый в git, и .claude/settings.local.json, доступный только вам. При установке Claude Code эти файлы не создаются.

Переопределяет ли settings.json переменные окружения?
Да. Значение в блоке env файла настроек перезаписывает значение той же переменной, заданное в оболочке. Переменные, не указанные в файле, например старая ANTHROPIC_API_KEY, по-прежнему берутся из оболочки.

Что использовать: ANTHROPIC_AUTH_TOKEN или ANTHROPIC_API_KEY?
Используйте переменную, которую считывает ваш шлюз. ANTHROPIC_AUTH_TOKEN отправляет Bearer-токен и не требует одобрения. Для AIHubMix в документации рекомендуется ANTHROPIC_AUTH_TOKEN. Не задавайте обе переменные: AIHubMix сначала считывает x-api-key, поэтому устаревшее значение ANTHROPIC_API_KEY приведёт к ошибке 401.

Должен ли ANTHROPIC_BASE_URL оканчиваться на /v1?
Нет. Claude Code самостоятельно добавляет /v1/messages. Для AIHubMix используйте https://aihubmix.com.

Нужно ли перезапускать Claude Code после изменения settings.json?
Большинство изменений, включая изменения переменных окружения, вступают в силу после сохранения. Для применения ключа модели и экспортированных переменных оболочки нужен перезапуск. Перезапустить программу — самый надёжный вариант.

Почему VS Code предлагает войти в систему, если CLI работает?
Перед запуском расширение проверяет наличие входа в систему через настройку claudeCode.environmentVariables, а значения из ~/.claude/settings.json при этой проверке недоступны. Добавьте туда базовый URL и токен, а затем перезагрузите окно.

Будет ли использование ANTHROPIC_BASE_URL расходовать мою подписку Claude?
Только если токен не задан. Если задана ANTHROPIC_AUTH_TOKEN или ANTHROPIC_API_KEY, запросы используют этот ключ, а шлюз взимает плату за каждый токен.

Источники