Примеры файлов 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, где он применяется к каждому проекту, который вы открываете.
Сохраните это как ~/.claude/settings.json. Это корректный JSON без комментариев, поэтому вы можете вставить его как есть и удалить ненужные ключи.
{
"model": "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
}
Тот же файл с комментарием над каждым ключом. Прочитайте его здесь; копируйте с другой вкладки, потому что Claude Code не принимает комментарии в файле параметров.
{
// Начинайте каждый сеанс на Sonnet 5
"model": "claude-sonnet-5",
// Рассуждайте глубже, чем уровень по умолчанию на моделях без сохраненного уровня; /effort сохраняет уровень для каждой модели, а --effort устанавливает уровень для одного сеанса
"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 в веб-версии начинается с клона репозитория, поэтому зафиксированный файл применяется и там.
- Правила 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.
Сохраните это как .claude/settings.json в верхней части репозитория и зафиксируйте. Это корректный JSON без комментариев, поэтому вы можете вставить его как есть и удалить ненужные ключи.
{
"permissions": {
"allow": [
"Bash(npm run *)"
],
"ask": [
"Bash(git push *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
"OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"
},
"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"
}
Тот же файл с комментарием над каждым ключом. Прочитайте его здесь; копируйте с другой вкладки, потому что Claude Code не принимает комментарии в файле параметров.
{
"permissions": {
// Запускайте скрипты npm без запроса
"allow": [
"Bash(npm run *)"
],
// Подтвердите перед командами git push
"ask": [
"Bash(git push *)"
],
// Запретите чтение файлов env и папки secrets инструментами файлов и командами чтения файлов
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
// Отправляйте метрики OpenTelemetry на сборщик команды через gRPC; замените конечную точку на URL вашего сборщика
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
"OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"
},
// Перед каждой командой Bash запустите скрипт в репозитории, который может ее заблокировать
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"
}
]
}
]
},
// Зарегистрируйте marketplace плагинов команды при каждом клонировании
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme-corp/claude-plugins"
}
}
},
// Включите один плагин из этого marketplace; плагин из внешнего источника, такого как репозиторий GitHub, все еще требует, чтобы каждый человек установил его один раз
"enabledPlugins": {
"code-formatter@acme-tools": true
},
// Команды Sandbox: записываемая папка build; 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помещает команды в sandbox с фиксированным списком разрешений сети и без повторной попытки без sandboxrequiredMinimumVersionустанавливает минимальную версию Claude CodecleanupPeriodDaysсокращает хранение стенограмм сеансов и других локальных данных до семи днейcompanyAnnouncementsпоказывает сообщение при запуске
Администраторы развертывают файл, подобный этому, как managed-settings.json, или тот же JSON через MDM или параметры, управляемые сервером. Один развернутый файл применяется к каждой машине или учетной записи, которую он достигает. Чтобы дать группе разные значения, разверните другой файл или профиль для этой группы, так как параметры, управляемые сервером, еще не поддерживают политику для каждой группы.
Разверните это как 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"
]
}
Тот же файл с комментарием над каждым ключом. Прочитайте его здесь; копируйте с другой вкладки, потому что 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"
]
}