Claude Code предлагает различные настройки для конфигурации его поведения в соответствии с вашими потребностями. Вы можете настроить Claude Code, выполнив команду claude config в терминале или команду /config при использовании интерактивного REPL.

Иерархия конфигурации

Новый файл settings.json является нашим официальным механизмом для настройки Claude Code через иерархические параметры.

Пользовательские настройки определяются в ~/.claude/settings.json и применяются ко всем проектам.

Настройки проекта сохраняются в директории вашего проекта в .claude/settings.json для общих настроек и .claude/settings.local.json для локальных настроек проекта. Claude Code настроит git так, чтобы игнорировать .claude/settings.local.json при его создании.

Для корпоративных развертываний Claude Code мы также поддерживаем управляемые корпоративные политики настроек. Они имеют приоритет над пользовательскими настройками и настройками проекта. Системные администраторы могут развертывать политики в /Library/Application Support/ClaudeCode/policies.json на macOS и /etc/claude-code/policies.json на Linux и Windows через WSL.

Example settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

Приоритет настроек

Настройки применяются в порядке приоритета, где последующие источники переопределяют предыдущие:

  • Пользовательские настройки
  • Общие настройки проекта
  • Локальные настройки проекта
  • Аргументы командной строки
  • Корпоративные политики

Параметры конфигурации

Claude Code поддерживает глобальную конфигурацию и конфигурацию на уровне проекта.

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

  • Список настроек: claude config list
  • Просмотр настройки: claude config get <key>
  • Изменение настройки: claude config set <key> <value>
  • Добавление в настройку (для списков): claude config add <key> <value>
  • Удаление из настройки (для списков): claude config remove <key> <value>

По умолчанию config изменяет конфигурацию вашего проекта. Для управления глобальной конфигурацией используйте флаг --global (или -g).

Глобальная конфигурация

Для установки глобальной конфигурации используйте claude config set -g <key> <value>:

КлючЗначениеОписание
autoUpdaterStatusdisabled или enabledВключение или отключение автообновления (по умолчанию: enabled)
envJSON (например, '{"FOO": "bar"}')Переменные окружения, которые будут применяться к каждой сессии
preferredNotifChanneliterm2, iterm2_with_bell, terminal_bell, или notifications_disabledГде вы хотите получать уведомления (по умолчанию: iterm2)
themedark, light, light-daltonized, или dark-daltonizedЦветовая тема
verbosetrue или falseПоказывать ли полный вывод bash и команд (по умолчанию: false)

Конфигурация проекта

Управляйте конфигурацией проекта с помощью claude config set <key> <value> (без флага -g):

КлючЗначениеОписание
allowedToolsмассив инструментовКакие инструменты могут запускаться без ручного подтверждения
ignorePatternsмассив glob-строкКакие файлы/директории игнорируются при использовании инструментов

Например:

# Разрешить запуск npm test без подтверждения
claude config add allowedTools "Bash(npm test)"

# Разрешить запуск npm test и всех его подкоманд без подтверждения
claude config add allowedTools "Bash(npm test:*)"

# Указать Claude игнорировать node_modules
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

Разрешения

Вы можете управлять разрешениями инструментов Claude Code с помощью /allowed-tools. Этот интерфейс отображает все правила разрешений и файл settings.json, из которого они берутся.

  • Правила Allow позволят Claude Code использовать указанный инструмент без дальнейшего ручного подтверждения.
  • Правила Deny запретят Claude Code использовать указанный инструмент. Правила запрета имеют приоритет над правилами разрешения.

Правила разрешений используют формат: Tool(optional-specifier).

Например, добавление WebFetch в список правил разрешения позволит использовать инструмент веб-запросов без необходимости одобрения пользователя. См. список инструментов, доступных Claude (используйте имя в скобках, когда оно предоставлено).

Некоторые инструменты используют необязательный спецификатор для более точного контроля разрешений. Например, правило разрешения WebFetch(domain:example.com) позволит делать запросы к example.com, но не к другим URL.

Правила Bash могут быть точными совпадениями, как Bash(npm run build), или совпадениями по префиксу, когда они заканчиваются на :*, как Bash(npm run test:*)

Правила Read() и Edit() следуют спецификации gitignore. Шаблоны разрешаются относительно директории, содержащей .claude/settings.json. Для ссылки на абсолютный путь используйте //. Для пути относительно вашей домашней директории используйте ~/. Например, Read(//tmp/build_cache) или Edit(~/.zshrc). Claude также сделает все возможное, чтобы применить правила Read и Edit к другим инструментам, связанным с файлами, таким как Grep, Glob и LS.

Имена инструментов MCP следуют формату: mcp__server_name__tool_name, где:

  • server_name - это имя сервера MCP, как настроено в Claude Code
  • tool_name - это конкретный инструмент, предоставляемый этим сервером

Дополнительные примеры:

ПравилоОписание
Bash(npm run build)Соответствует точной команде Bash npm run build.
Bash(npm run test:*)Соответствует командам Bash, начинающимся с npm run test. См. примечание ниже о обработке разделителей команд.
Edit(~/.zshrc)Соответствует файлу ~/.zshrc.
Read(node_modules/**)Соответствует любой директории node_modules.
mcp__puppeteer__puppeteer_navigateСоответствует инструменту puppeteer_navigate от сервера MCP puppeteer.
WebFetch(domain:example.com)Соответствует запросам fetch к example.com

Claude Code знает о разделителях команд (таких как &&), поэтому правило совпадения по префиксу вроде Bash(safe-cmd:*) не даст ему разрешения выполнить команду safe-cmd && other-cmd

Параметры разрешений автообновления

Когда Claude Code обнаруживает, что у него недостаточно прав для записи в глобальную директорию npm prefix (необходимую для автоматических обновлений), вы увидите предупреждение, указывающее на эту страницу документации. Подробные решения проблем с автообновлением см. в руководстве по устранению неполадок.

Рекомендуется: Создать новый доступный для записи npm prefix

# Сначала сохраните список существующих глобальных пакетов для последующей миграции
npm list -g --depth=0 > ~/npm-global-packages.txt

# Создайте директорию для глобальных пакетов
mkdir -p ~/.npm-global

# Настройте npm на использование нового пути к директории
npm config set prefix ~/.npm-global

# Примечание: Замените ~/.bashrc на ~/.zshrc, ~/.profile или другой подходящий файл для вашей оболочки
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# Примените новую настройку PATH
source ~/.bashrc

# Теперь переустановите Claude Code в новом месте
npm install -g @anthropic-ai/claude-code

# Опционально: Переустановите ваши предыдущие глобальные пакеты в новом месте
# Посмотрите ~/npm-global-packages.txt и установите пакеты, которые хотите сохранить
# npm install -g package1 package2 package3...

Почему мы рекомендуем этот вариант:

  • Избегает изменения разрешений системной директории
  • Создает чистое, выделенное место для ваших глобальных пакетов npm
  • Следует лучшим практикам безопасности

Поскольку Claude Code активно разрабатывается, мы рекомендуем настроить автообновления, используя рекомендованный выше вариант.

Отключение автообновления

Если вы предпочитаете отключить автообновление вместо исправления разрешений, вы можете использовать:

claude config set -g autoUpdaterStatus disabled

Оптимизируйте настройку вашего терминала

Claude Code работает лучше всего, когда ваш терминал правильно настроен. Следуйте этим рекомендациям для оптимизации вашего опыта.

Поддерживаемые оболочки:

  • Bash
  • Zsh
  • Fish

Темы и внешний вид

Claude не может управлять темой вашего терминала. Это контролируется вашим терминальным приложением. Вы можете сопоставить тему Claude Code с вашим терминалом во время начальной настройки или в любое время через команду /config

Разрывы строк

У вас есть несколько вариантов для ввода разрывов строк в Claude Code:

  • Быстрый escape: Введите \ и затем Enter для создания новой строки
  • Сочетание клавиш: Нажмите Option+Enter (Meta+Enter) при правильной конфигурации

Для настройки Option+Enter в вашем терминале:

Для Mac Terminal.app:

  1. Откройте Настройки → Профили → Клавиатура
  2. Отметьте “Использовать Option как клавишу Meta”

Для iTerm2 и терминала VSCode:

  1. Откройте Настройки → Профили → Клавиши
  2. В разделе Общие установите левую/правую клавишу Option на “Esc+”

Совет для пользователей iTerm2 и VSCode: Запустите /terminal-setup в Claude Code для автоматической настройки Shift+Enter как более интуитивной альтернативы.

Настройка уведомлений

Никогда не пропускайте завершение задачи Claude с правильной настройкой уведомлений:

Уведомления через звуковой сигнал терминала

Включите звуковые оповещения при завершении задач:

claude config set --global preferredNotifChannel terminal_bell

Для пользователей macOS: Не забудьте включить разрешения на уведомления в Системных настройках → Уведомления → [Ваше приложение терминала].

Системные уведомления iTerm 2

Для оповещений iTerm 2 при завершении задач:

  1. Откройте Настройки iTerm 2
  2. Перейдите в Профили → Терминал
  3. Включите “Отключить звуковой сигнал” и “Отправлять уведомление при бездействии”
  4. Установите предпочтительную задержку уведомлений

Обратите внимание, что эти уведомления специфичны для iTerm 2 и недоступны в стандартном терминале macOS.

Обработка больших входных данных

При работе с обширным кодом или длинными инструкциями:

  • Избегайте прямой вставки: Claude Code может испытывать трудности с очень длинным вставленным содержимым
  • Используйте файловые рабочие процессы: Записывайте содержимое в файл и просите Claude прочитать его
  • Учитывайте ограничения VS Code: Терминал VS Code особенно склонен к обрезанию длинных вставок

Режим Vim

Claude Code поддерживает подмножество привязок клавиш Vim, которые можно включить с помощью /vim или настроить через /config.

Поддерживаемое подмножество включает:

  • Переключение режимов: Esc (в NORMAL), i/I, a/A, o/O (в INSERT)
  • Навигация: h/j/k/l, w/e/b, 0/$/^, gg/G
  • Редактирование: x, dw/de/db/dd/D, cw/ce/cb/cc/C, . (повтор)

Переменные окружения

Claude Code поддерживает следующие переменные окружения для управления его поведением:

ПеременнаяНазначение
DISABLE_AUTOUPDATERУстановите в 1 для отключения автоматического обновления
DISABLE_BUG_COMMANDУстановите в 1 для отключения команды /bug
DISABLE_COST_WARNINGSУстановите в 1 для отключения предупреждений о стоимости
DISABLE_ERROR_REPORTINGУстановите в 1 для отказа от отчетов об ошибках Sentry
DISABLE_TELEMETRYУстановите в 1 для отказа от телеметрии Statsig (обратите внимание, что события Statsig не включают пользовательские данные, такие как код, пути к файлам или команды bash)
HTTP_PROXYУкажите HTTP прокси-сервер для сетевых подключений
HTTPS_PROXYУкажите HTTPS прокси-сервер для сетевых подключений
MCP_TIMEOUTТайм-аут в миллисекундах для запуска сервера MCP
MCP_TOOL_TIMEOUTТайм-аут в миллисекундах для выполнения инструмента MCP