Примеры файлов settings
Реалистичные файлы settings.json для разработчика, команды и организации: скопируйте один, оставьте нужные вам ключи и измените значения.
На этой странице находятся три примера файлов settings.json, по одному для каждого места, где вы сохраняете параметр:
~/.claude/settings.jsonразработчика.claude/settings.jsonкоманды, зафиксированный в репозиторииmanaged-settings.jsonорганизации
Каждый файл является правдоподобным для этого читателя, поэтому вы можете увидеть структуру и скопировать нужные вам части. Ни один из них не является рекомендуемой базовой конфигурацией. Каждое значение взято из записи ключа в справочнике параметров, который содержит его тип, значение по умолчанию и место, где его можно установить.
Каждый пример имеет две вкладки. Copyable settings file — это файл в том виде, в котором вы его сохраняете. What each key does — это тот же файл с комментарием над каждым ключом; Claude Code не принимает комментарии в файле параметров, поэтому копируйте с первой вкладки.
Ваши собственные параметры
Личные параметры одного разработчика. Он выбирает модель и уровень усилий, настраивает терминал и предварительно одобряет команду только для чтения и одно чтение файла. Все остальное сохраняет значения по умолчанию. Файл, подобный этому, находится в ~/.claude/settings.json, где он применяется к каждому проекту, который вы открываете.
[tab] Copyable settings file
Сохраните это как
~/.claude/settings.json. Это корректный JSON без комментариев, поэтому вы можете вставить его как есть и удалить ненужные ключи.{ "model": "claude-sonnet-5", "modelSettings": { "claude-sonnet-5": { "effortLevel": "xhigh" } }, "editorMode": "vim", "theme": "light-daltonized", "statusLine": { "type": "command", "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'", "padding": 2 }, "spinnerTipsEnabled": false, "preferredNotifChannel": "terminal_bell", "permissions": { "allow": [ "Bash(git diff *)", "Read(~/.zshrc)" ] }, "autoUpdatesChannel": "stable", "cleanupPeriodDays": 20 }
[tab] What each key does
Тот же файл с комментарием над каждым ключом. Прочитайте его здесь; копируйте с другой вкладки, потому что Claude Code не принимает комментарии в файле параметров.
{ // Начинайте каждый сеанс на Sonnet 5 "model": "claude-sonnet-5", // Запускайте Sonnet 5 выше его уровня по умолчанию; /effort сохраняет уровень для каждой модели, а --effort устанавливает уровень для одного сеанса "modelSettings": { "claude-sonnet-5": { "effortLevel": "xhigh" } }, // Сочетания клавиш Vim в приглашении "editorMode": "vim", // Светлая тема, удобная для дальтоников "theme": "light-daltonized", // Строка состояния под приглашением: имя модели и использованный контекст "statusLine": { "type": "command", "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'", "padding": 2 }, // Скройте советы, которые вращаются под спиннером "spinnerTipsEnabled": false, // Звоните в колокольчик терминала для уведомлений, таких как завершенная задача или ожидающее приглашение разрешения "preferredNotifChannel": "terminal_bell", // Позвольте Claude Code запускать git diff и читать ваш .zshrc без запроса "permissions": { "allow": [ "Bash(git diff *)", "Read(~/.zshrc)" ] }, // Получайте обновления из стабильного канала "autoUpdatesChannel": "stable", // Удалите стенограммы сеансов и другие локальные данные сеансов старше 20 дней "cleanupPeriodDays": 20 }
Общие параметры команды
Общие параметры одной команды, зафиксированные в репозитории, чтобы каждый, кто его клонирует, получал одинаковые разрешения, hooks и marketplace плагинов. Сохраните файл, подобный этому, в .claude/settings.json в верхней части репозитория. Что нужно знать перед его фиксацией:
- Облачные сессии вне потоков проекта также его читают. Облачная сессия с одним репозиторием начинается внутри клона, поэтому закоммиченный файл применяется и там.
- Телеметрия входит в управляемые или личные параметры. Claude Code игнорирует переменные экспортера OpenTelemetry в файлах параметров репозитория, за исключением некоторых значений, которые отключают телеметрию. Установите их в управляемых параметрах для вашей организации или в файле
~/.claude/settings.jsonкаждого человека. - Правила Allow ждут доверия. Правила Allow и записи
extraKnownMarketplacesвступают в силу после того, как каждый человек доверит этой папке, а не только родительской папке; правила deny и ask применяются в каждом сеансе, доверенном или нет. - Hook — это скрипт в репозитории. Hook этого файла запускает
.claude/hooks/block-rm.sh; How a hook resolves описывает, как его написать. - Правила соответствуют команде и пути в том виде, в котором они написаны.
Bash(git push *)не соответствуетgit -C . push.Read(./.env)само по себе останавливает инструменты файлов и команды, которые называют файл, такие какcat .env, но неgrep -r, запущенный по каталогу; блокsandboxв этом файле закрывает этот пробел, потому что sandbox добавляет ваши путиReaddeny к тому, что не может читать каждая команда в sandbox.
[tab] Copyable settings file
Сохраните это как
.claude/settings.jsonв верхней части репозитория и зафиксируйте. Это корректный JSON без комментариев, поэтому вы можете вставить его как есть и удалить ненужные ключи.{ "permissions": { "allow": [ "Bash(npm run *)" ], "ask": [ "Bash(git push *)" ], "deny": [ "Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)" ] }, "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh" } ] } ] }, "extraKnownMarketplaces": { "acme-tools": { "source": { "source": "github", "repo": "acme-corp/claude-plugins" } } }, "enabledPlugins": { "code-formatter@acme-tools": true }, "sandbox": { "enabled": true, "filesystem": { "allowWrite": [ "/tmp/build" ] }, "network": { "allowedDomains": [ "registry.npmjs.org", "*.example.com" ] } }, "plansDirectory": "./plans" }
[tab] What each key does
Тот же файл с комментарием над каждым ключом. Прочитайте его здесь; копируйте с другой вкладки, потому что Claude Code не принимает комментарии в файле параметров.
{ "permissions": { // Запускайте скрипты npm без запроса "allow": [ "Bash(npm run *)" ], // Подтвердите перед командами git push "ask": [ "Bash(git push *)" ], // Запретите чтение файлов env и папки secrets инструментами файлов и командами чтения файлов "deny": [ "Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)" ] }, // Перед каждой командой Bash запустите скрипт в репозитории, который может ее заблокировать "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh" } ] } ] }, // Зарегистрируйте маркетплейс плагинов команды при каждом клонировании "extraKnownMarketplaces": { "acme-tools": { "source": { "source": "github", "repo": "acme-corp/claude-plugins" } } }, // Включите один плагин из этого маркетплейса; плагин из внешнего источника, такого как репозиторий GitHub, все еще требует, чтобы каждый человек установил его один раз "enabledPlugins": { "code-formatter@acme-tools": true }, // Команды в песочнице: папка сборки с правом записи; npm и example.com предварительно разрешены "sandbox": { "enabled": true, "filesystem": { "allowWrite": [ "/tmp/build" ] }, "network": { "allowedDomains": [ "registry.npmjs.org", "*.example.com" ] } }, // Держите файлы плана внутри репозитория "plansDirectory": "./plans" }
Управляемые параметры организации
Файл managed-settings.json, который показывает форму управляемых ключей с одним правдоподобным значением для каждого. Это не рекомендуемая политика: выберите ключи, которые соответствуют вашим требованиям, и установите свои собственные значения. Пример устанавливает эти ключи:
forceLoginMethodиforceLoginOrgUUIDзакрепляют метод входа и организациюavailableModelsиenforceAvailableModelsограничивают, какие модели могут использовать сеансыpermissions.denyзапрещает два чтения файлов и командыcurlкак их пишет Claude, аdisableBypassPermissionsModeудаляет режим обхода разрешенийallowManagedPermissionRulesOnlyиallowManagedMcpServersOnlyделают управляемые списки разрешений для разрешений и MCP единственными применяемымиallowedMcpServersзакрепляет MCP сервер по URLstrictKnownMarketplacesразрешает один marketplace плагиновsandboxизолирует команды в песочнице с фиксированным списком разрешённых сетевых доменов и без повторной попытки вне песочницы. Его ключfailIfUnavailableне даёт Claude Code запуститься там, где песочница не может работатьrequiredMinimumVersionустанавливает минимальную версию Claude CodecleanupPeriodDaysсокращает хранение стенограмм сеансов и других локальных данных до семи днейcompanyAnnouncementsпоказывает сообщение при запуске
Администраторы развертывают файл, подобный этому, как managed-settings.json, или тот же JSON через MDM или настройки, управляемые сервером. Один развернутый файл применяется к каждой машине или учетной записи, которую он достигает. Чтобы задать группе другие значения, разверните для этой группы другой файл или профиль. В плане Enterprise вместо этого можно задать группе собственную конфигурацию в настройках, управляемых сервером.
[tab] Copyable settings file
Разверните это как
managed-settings.json, или тот же JSON через MDM или консоль claude.ai. Это корректный JSON без комментариев; замените пример UUID организации, URL сервера и marketplace на свои и удалите ненужные ключи.{ "forceLoginMethod": "claudeai", "forceLoginOrgUUID": [ "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ], "availableModels": [ "opus", "sonnet" ], "enforceAvailableModels": true, "permissions": { "deny": [ "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ], "disableBypassPermissionsMode": "disable" }, "allowManagedPermissionRulesOnly": true, "allowedMcpServers": [ { "serverUrl": "https://api.githubcopilot.com/*" } ], "allowManagedMcpServersOnly": true, "strictKnownMarketplaces": [ { "source": "github", "repo": "acme-corp/approved-plugins" } ], "sandbox": { "enabled": true, "failIfUnavailable": true, "allowUnsandboxedCommands": false, "network": { "allowedDomains": [ "registry.npmjs.org", "github.com" ], "allowManagedDomainsOnly": true } }, "requiredMinimumVersion": "2.1.150", "cleanupPeriodDays": 7, "companyAnnouncements": [ "Welcome to Acme Corp! Review our code guidelines at docs.example.com" ] }
[tab] What each key does
Тот же файл с комментарием над каждым ключом. Прочитайте его здесь; копируйте с другой вкладки, потому что Claude Code не принимает комментарии в файле параметров.
{ // Только входы claude.ai и только в этой организации "forceLoginMethod": "claudeai", "forceLoginOrgUUID": [ "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ], // Только модели Opus и Sonnet; с enforceAvailableModels опция Default также соблюдает список "availableModels": [ "opus", "sonnet" ], "enforceAvailableModels": true, "permissions": { // Запретите команды curl и чтение файла .env проекта и папки secrets на каждой машине "deny": [ "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ], // Удалите режим обхода разрешений из каждого сеанса "disableBypassPermissionsMode": "disable" }, // Игнорируйте правила разрешений из параметров пользователя, проекта и локальных параметров "allowManagedPermissionRulesOnly": true, // Только MCP сервер GitHub, сопоставленный по URL, а не по имени, так как пользователь может // назвать любой сервер "github". Добавленные пользователем серверы, которые не совпадают, не загружаются, включая // каждый stdio сервер, когда список содержит только записи URL. Ключ allowManagedMcpServersOnly // ниже делает этот управляемый список единственным применяемым списком разрешений "allowedMcpServers": [ { "serverUrl": "https://api.githubcopilot.com/*" } ], "allowManagedMcpServersOnly": true, // Плагины могут поступать только из этого marketplace "strictKnownMarketplaces": [ { "source": "github", "repo": "acme-corp/approved-plugins" } ], // Поместите каждую команду Claude в sandbox, откажитесь запускаться, если sandbox не может быть // установлен, и никогда не позволяйте заблокированной команде повторить попытку вне sandbox; сеть // ограничена npm и GitHub, и пользователи не могут добавлять домены "sandbox": { "enabled": true, "failIfUnavailable": true, "allowUnsandboxedCommands": false, "network": { "allowedDomains": [ "registry.npmjs.org", "github.com" ], "allowManagedDomainsOnly": true } }, // Откажитесь запускаться на версиях старше 2.1.150 "requiredMinimumVersion": "2.1.150", // Удалите стенограммы сеансов и другие локальные данные сеансов через 7 дней "cleanupPeriodDays": 7, // Сообщение, которое видит каждый пользователь при запуске "companyAnnouncements": [ "Welcome to Acme Corp! Review our code guidelines at docs.example.com" ] }