Переменные окружения Claude Code — полный справочник

50+ переменных окружения Claude Code с описанием и примерами. Группировка по задачам: модели, безопасность, прокси, мониторинг, MCP.

TL;DR: Claude Code поддерживает 50+ переменных окружения для настройки: модели, провайдеры (Bedrock, Vertex, Foundry), прокси, sandbox, MCP, мониторинг. Их можно задавать в терминале, через settings.json или в CI/CD-пайплайнах.

У Claude Code длинный список переменных окружения, и часть из них реально полезна, а часть — для специфических enterprise-сценариев. Я прошёл по документации и разгруппировал их по задачам, чтобы было проще искать нужное.

Все переменные можно также прописать в settings.json в секции env — тогда не нужно выставлять их в терминале каждый раз.

Аутентификация и API

Переменная Зачем
ANTHROPIC_API_KEY API-ключ Anthropic. Для интерактивного использования лучше /login
ANTHROPIC_AUTH_TOKEN Кастомный токен для заголовка Authorization (автоматически добавляет Bearer)
ANTHROPIC_CUSTOM_HEADERS Дополнительные HTTP-заголовки для запросов. Формат: Name: Value, разделитель — перенос строки

ANTHROPIC_API_KEY — основной способ аутентификации для скриптов и CI/CD. Для ежедневной работы проще залогиниться через /login — ключ сохранится в ~/.claude.json.

Выбор модели

Переменная Зачем
ANTHROPIC_MODEL Основная модель. Перебивает дефолт
CLAUDE_CODE_SUBAGENT_MODEL Модель для субагентов (Task-инструмент)
ANTHROPIC_DEFAULT_OPUS_MODEL Кастомное имя для Opus (например, кастомная модель через Bedrock)
ANTHROPIC_DEFAULT_SONNET_MODEL Кастомное имя для Sonnet
ANTHROPIC_DEFAULT_HAIKU_MODEL Кастомное имя для Haiku

ANTHROPIC_MODEL полезен, когда нужно зафиксировать конкретную версию модели для воспроизводимости. Если не задавать — Claude Code использует последнюю доступную.

Облачные провайдеры

Amazon Bedrock

Переменная Зачем
CLAUDE_CODE_USE_BEDROCK Включить Bedrock как провайдер
CLAUDE_CODE_SKIP_BEDROCK_AUTH Пропустить аутентификацию AWS (для LLM-gateway)
AWS_BEARER_TOKEN_BEDROCK API-ключ Bedrock
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION Регион AWS для Haiku-модели

Google Vertex AI

Переменная Зачем
CLAUDE_CODE_USE_VERTEX Включить Vertex AI как провайдер
CLAUDE_CODE_SKIP_VERTEX_AUTH Пропустить аутентификацию Google
VERTEX_REGION_CLAUDE_4_0_OPUS Регион для Opus на Vertex
VERTEX_REGION_CLAUDE_4_0_SONNET Регион для Sonnet на Vertex

Microsoft Azure Foundry

Переменная Зачем
CLAUDE_CODE_USE_FOUNDRY Включить Foundry как провайдер
ANTHROPIC_FOUNDRY_API_KEY API-ключ Foundry
ANTHROPIC_FOUNDRY_BASE_URL URL ресурса Foundry
ANTHROPIC_FOUNDRY_RESOURCE Имя ресурса (альтернатива BASE_URL)
CLAUDE_CODE_SKIP_FOUNDRY_AUTH Пропустить аутентификацию Azure

Если ты используешь Claude Code через корпоративный облачный провайдер — тебе нужна одна из этих групп. Для прямого подключения к Anthropic API ничего из этого не нужно.

Поведение bash

Переменная Зачем
BASH_DEFAULT_TIMEOUT_MS Таймаут по умолчанию для bash-команд
BASH_MAX_TIMEOUT_MS Максимальный таймаут, который может выставить модель
BASH_MAX_OUTPUT_LENGTH Максимальная длина вывода команды (после этого обрезается)
CLAUDE_CODE_SHELL Принудительно задать шелл (если login shell отличается от рабочего)
CLAUDE_CODE_SHELL_PREFIX Команда-обёртка для всех bash-команд (логирование, аудит)
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR Возвращаться в корень проекта после каждой команды

BASH_DEFAULT_TIMEOUT_MS — полезный. По умолчанию Claude Code убивает долгие команды. Если у тебя медленные тесты или сборка, увеличь таймаут.

CLAUDE_CODE_SHELL пригодится, если login shell у тебя bash, а работаешь ты в zsh. Claude Code определяет шелл автоматически, но иногда ошибается.

Контекст и токены

Переменная Зачем
CLAUDE_CODE_MAX_OUTPUT_TOKENS Максимум токенов на ответ (дефолт: 32K, макс: 64K)
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS Лимит токенов при чтении файлов
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE Порог авто-компактизации контекста (дефолт: ~95%)
MAX_THINKING_TOKENS Бюджет токенов на «размышления». 0 — отключить
CLAUDE_CODE_EFFORT_LEVEL Уровень усилий: low, medium, high

CLAUDE_AUTOCOMPACT_PCT_OVERRIDE — если поставить 50, контекст будет компактизироваться раньше. Полезно для долгих сессий, когда не хочешь терять контекст.

CLAUDE_CODE_EFFORT_LEVEL работает только с Opus 4.6. low — быстрые ответы для простых задач, high — глубокий анализ. По умолчанию high.

MCP

Переменная Зачем
MCP_TIMEOUT Таймаут старта MCP-сервера (мс)
MCP_TOOL_TIMEOUT Таймаут выполнения MCP-инструмента (мс)
MAX_MCP_OUTPUT_TOKENS Максимум токенов в ответе MCP (дефолт: 25K)
ENABLE_TOOL_SEARCH Поиск по MCP-инструментам: auto, true, false

Если у тебя MCP-сервер медленно стартует, увеличь MCP_TIMEOUT. По умолчанию он довольно жёсткий.

Сеть и прокси

Переменная Зачем
HTTP_PROXY HTTP-прокси
HTTPS_PROXY HTTPS-прокси
NO_PROXY Домены, которые идут в обход прокси
CLAUDE_CODE_PROXY_RESOLVES_HOSTS Прокси делает DNS-резолв (вместо клиента)
CLAUDE_CODE_CLIENT_CERT Клиентский сертификат для mTLS
CLAUDE_CODE_CLIENT_KEY Приватный ключ для mTLS

Для корпоративных сетей с прокси — эти переменные обязательны. Без них Claude Code не сможет подключиться к API.

Отключение фич

Переменная Зачем
DISABLE_TELEMETRY Отключить телеметрию Statsig
DISABLE_ERROR_REPORTING Отключить отправку ошибок в Sentry
DISABLE_AUTOUPDATER Отключить автообновления
DISABLE_COST_WARNINGS Отключить предупреждения о стоимости
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC Отключить всё вышеперечисленное одной переменной
CLAUDE_CODE_DISABLE_AUTO_MEMORY Отключить автоматическое запоминание

CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC — мой фаворит для закрытых окружений. Одна переменная вместо четырёх.

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

Где лучше задавать переменные — в терминале или settings.json? Для постоянных настроек — в settings.json (секция env). Для временных или одноразовых — в терминале перед запуском. Для CI/CD — через системные переменные окружения.

Переменные окружения сохраняются между bash-командами Claude? Нет. Каждая bash-команда запускается в чистом шелле. Если нужна персистентность — используй CLAUDE_ENV_FILE через SessionStart hook.

Что приоритетнее — переменная в терминале или в settings.json? Переменная окружения, заданная в терминале перед запуском Claude Code, перекрывает значение из settings.json.

Что ещё почитать