SpyBara
Go Premium

settings.md 2026-09-11 23:01 UTC to 2026-09-12 03:02 UTC

This page contains 637 additions and 1053 deletions.

2026
Sat 12 03:02 Fri 18 23:58 Tue 22 23:59 Fri 25 23:58

Файлы параметров и приоритет

Измените параметры Claude Code, выберите область, к которой принадлежит ключ, проверьте изменение и узнайте, какое значение Claude Code использует, когда ключ установлен в нескольких местах.

export const SettingsPrecedence = () => { const LEVELS = [{ n: 1, name: 'Managed settings', file: 'managed-settings.json, MDM, or the claude.ai console', who: 'Your organization', w: 390 }, { n: 2, name: 'Command line', file: 'claude --settings', who: 'You, this session', w: 420 }, { n: 3, name: 'Project local', file: '.claude/settings.local.json', who: 'You, this project', w: 480 }, { n: 4, name: 'Shared project', file: '.claude/settings.json', who: 'Everyone in the project', w: 540 }, { n: 5, name: 'User', file: '~/.claude/settings.json', who: 'You, every project', w: 600 }]; const W = 760; const ROW = 58; const GAP = 8; const TOP = 34; const H = TOP + LEVELS.length * (ROW + GAP) + 30; const cx = W / 2; const mono = 'var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)'; const sans = 'var(--font-sans, system-ui, -apple-system, sans-serif)'; return

<svg viewBox={0 0 ${W} ${H}} xmlns="http://www.w3.org/2000/svg"> Highest precedence {LEVELS.map((l, i) => { const y = TOP + i * (ROW + GAP); const x = cx - l.w / 2; const top = i === 0; return <rect x={x} y={y} width={l.w} height={ROW} rx={10} fill={top ? 'var(--sp-top-fill)' : 'var(--sp-fill)'} stroke={top ? 'var(--sp-top)' : 'var(--sp-stroke)'} strokeWidth={top ? 1.5 : 1} /> <text x={x + 14} y={y + 24} fontFamily={sans} fontSize="14" fontWeight="600" fill="var(--sp-text)">{l.n}. {l.name} <text x={x + 14} y={y + 43} fontFamily={mono} fontSize="11.5" fill="var(--sp-sub)">{l.file} <text x={x + l.w - 14} y={y + 24} textAnchor="end" fontFamily={sans} fontSize="12" fill="var(--sp-faint)">{l.who} ; })} <text x={cx} y={H - 10} textAnchor="middle" fontFamily={sans} fontSize="12.5" fontWeight="600" fill="var(--sp-sub)">Lowest precedence <line x1={W - 40} y1={TOP + 10} x2={W - 40} y2={H - 38} /> <path d={M ${W - 46} ${TOP + 18} L ${W - 40} ${TOP + 10} L ${W - 34} ${TOP + 18}} /> <text x={W - 40} y={H - 22} textAnchor="middle" fontFamily={sans} fontSize="10.5" fill="var(--sp-faint)">overrides
; };

export const SettingsScope = ({defaultSelected = 'project'}) => { const FILES = [{ id: 'user', path: '/.claude/settings.json' }, { id: 'project', path: 'acme-app/.claude/settings.json' }, { id: 'local', path: 'acme-app/.claude/settings.local.json' }, { id: 'managed', path: 'Managed settings', ring: 'managed-settings.json, MDM, or the claude.ai console' }]; const SHORT = { user: '/.claude/settings.json', project: 'acme-app/.claude/settings.json', local: 'acme-app/.claude/settings.local.json', managed: 'managed-settings.json, MDM, or the claude.ai console' }; const TILE_MARK = { project: 'settings.json', local: 'settings.local.json' }; const initial = FILES.some(f => f.id === defaultSelected) ? defaultSelected : 'project'; const [sel, setSel] = useState(initial); const [scale, setScale] = useState(1); const [isFullscreen, setIsFullscreen] = useState(false); const rootRef = useRef(null); const frameRef = useRef(null); const CANVAS_W = 862; const CANVAS_H = 240; useEffect(() => { const el = frameRef.current; if (!el) return; const measure = () => setScale(Math.min(1, el.clientWidth / CANVAS_W)); measure(); if (typeof ResizeObserver === 'undefined') { window.addEventListener('resize', measure); return () => window.removeEventListener('resize', measure); } const ro = new ResizeObserver(measure); ro.observe(el); return () => ro.disconnect(); }, []); useEffect(() => { const onFsChange = () => setIsFullscreen(!!document.fullscreenElement); document.addEventListener('fullscreenchange', onFsChange); return () => document.removeEventListener('fullscreenchange', onFsChange); }, []); const toggleFullscreen = () => { if (!rootRef.current) return; if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {}); }; const COVERAGE = { user: ['website', 'api', 'yacme'], project: ['yacme', 'tacme', 'cacme'], local: ['yacme'], managed: ['website', 'api', 'yacme', 'tacme', 'cacme'] }; const RINGS = { local: { l: 282, t: 50, w: 142, h: 124 }, project: { l: 282, t: 50, w: 560, h: 124 }, user: { l: 2, t: 34, w: 446, h: 198 }, managed: { l: 0, t: 32, w: 862, h: 204 } }; const TILES = [{ id: 'website', name: 'website/', left: 30, caption: '' }, { id: 'api', name: 'api/', left: 160, caption: '' }, { id: 'yacme', name: 'acme-app/', left: 290, caption: '' }, { id: 'tacme', name: 'acme-app/', left: 497, caption: sel === 'project' ? 'their clone, once you commit the file' : 'their clone' }, { id: 'cacme', name: 'acme-app/', left: 704, caption: sel === 'project' ? 'fresh clone, once you commit the file' : sel === 'managed' ? 'server-managed only' : 'fresh clone' }]; const FILE_AT = { user: { machine: 'you', tiles: [] }, project: { machine: null, tiles: ['yacme', 'tacme', 'cacme'] }, local: { machine: null, tiles: ['yacme'] }, managed: { machine: null, tiles: [] } }; const fileAt = FILE_AT[sel]; const coverage = COVERAGE[sel]; const ring = RINGS[sel]; const selFile = FILES.find(f => f.id === sel); const FolderIcon = ({open}) => ; const FileIcon = () => ; const CloudIcon = () => ; const LaptopIcon = () => ; return <div ref={rootRef} className={'ssc-root not-prose' + (isFullscreen ? ' ssc-fs' : '')}>

  <div className="ssc-head">
    <div className="ssc-files" role="group" aria-label="Settings file">
      {FILES.map(f => <button key={f.id} type="button" className="ssc-file ssc-mono" aria-pressed={f.id === sel} onClick={() => setSel(f.id)}>{f.path}</button>)}
    </div>
    <button type="button" className="ssc-fsbtn" onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'}>{isFullscreen ? '⤡' : '⛶'}</button>
  </div>

  <div ref={frameRef} className="ssc-frame" style={{
height: CANVAS_H * scale + 'px'

}}> <div className="ssc-canvas" style={{ transform: 'scale(' + scale + ')' }}> <div className="ssc-machine" style={{ left: '10px', width: '430px' }} /> <span className="ssc-machine-label" style={{ left: '30px' }}>Your machine{fileAt.machine === 'you' && {selFile.path}} <div className="ssc-machine" style={{ left: '460px', width: '200px' }} /> <span className="ssc-machine-label" style={{ left: '470px' }}>A teammate’s machine <div className="ssc-machine" style={{ left: '682px', width: '170px' }} /> <span className="ssc-machine-label" style={{ left: '692px' }}>A cloud session

      {TILES.map(t => {
const on = coverage.includes(t.id);
return <div key={t.id} className={'ssc-tile' + (on ? ' ssc-on' : '')} style={{
  left: t.left + 'px'
}}>
            <div className="ssc-tile-name"><FolderIcon open={on} /><span className="ssc-mono">{t.name}</span></div>
            {t.caption && <div className="ssc-tile-caption">{t.caption}</div>}
            {fileAt.tiles.includes(t.id) && <span className="ssc-filemark ssc-mono" title={SHORT[sel]}><FileIcon />{TILE_MARK[sel]}</span>}
          </div>;

})}

      <div className="ssc-ring" style={{
left: ring.l + 'px',
top: ring.t + 'px',
width: ring.w + 'px',
height: ring.h + 'px'

}} /> <span className="ssc-ring-label ssc-mono" style={{ left: ring.l + 14 + 'px', top: ring.t - 26 + 'px' }}>{selFile.ring || selFile.path}

; };

Параметры — это ключи JSON, которые изменяют поведение Claude Code: какую модель он запускает, что он может запустить без запроса, какие файлы он не может читать, как он выглядит в вашем терминале и что ваша организация требует.

Claude Code читает параметры из файлов параметров JSON, таких как ~/.claude/settings.json. Он ищет их в нескольких местах, и файл, из которого он читает параметр, определяет, к кому применяется параметр. На этой странице рассматриваются эти файлы: в какой из них поместить параметр, как изменить параметр и подтвердить его применение, и какое значение Claude Code использует, когда один и тот же ключ установлен в более чем одном файле. Настройка разрешений охватывает то, что Claude Code может запустить без запроса, и как писать правила allow, ask и deny.

Файлы параметров и кого они затрагивают

Claude Code читает параметры из четырёх файлов, и организация также может доставлять управляемые параметры из консоли claude.ai. Каждый источник имеет область действия: набор людей и проектов, к которым применяется параметр, сохранённый в нём, будь то только вы, все в проекте или все в вашей организации.

Область действия Файл Кого это затрагивает Используйте для
Пользователь ~/.claude/settings.json Вас, в каждом проекте на этой машине Личные предпочтения: тема, режим редактора, модель по умолчанию, ваши собственные правила разрешений
Общий проект .claude/settings.json Всех, кто работает в папке, которая его содержит. В репозитории git зафиксируйте его, чтобы товарищи по команде его получили Разрешения команды, hooks, plugins и переменные окружения, которые нужны проекту
Локальный проект .claude/settings.local.json Вас, только в этом одном проекте. Claude Code исключает его из git при создании файла; если вы создадите его вручную, добавьте его в .gitignore сами Личные переопределения для одного проекта и тестирование перед тем, как вы поделитесь
Управляемый managed-settings.json и другие управляемые источники Всех, кому ваша организация его развёртывает; ничто из того, что вы установили, его не переопределяет, кроме нескольких исключений, чувствительных к безопасности Требования политики безопасности и соответствия

В столбце File ~/.claude — это папка .claude в вашем домашнем каталоге, а простой .claude — это папка .claude внутри вашего проекта.

Сравните область действия каждого файла параметров

Предположим, у вас есть три проекта на вашей машине: website/, api/ и acme-app/, товарищ по команде имеет свой собственный клон acme-app/, и вы запускаете облачный сеанс на acme-app/.

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

  • ~/.claude/settings.json: каждый проект на вашей машине, и ничего на машине вашего товарища или в облачном сеансе
  • acme-app/.claude/settings.json: ваш acme-app/. Он охватывает клон вашего товарища и облачный сеанс только если вы зафиксируете файл в системе контроля версий; до этого это файл на вашем диске, как и любой другой, и никто другой его не имеет
  • acme-app/.claude/settings.local.json: только ваш acme-app/. Claude Code добавляет его в ваши глобальные исключения git при первом написании файла, поэтому он остаётся вне ваших коммитов; если вы создадите файл вручную, добавьте его в .gitignore сами
  • Управляемые параметры, будь то файл managed-settings.json, политика MDM или управляемые сервером параметры из консоли claude.ai: каждый проект на каждой машине, на которую ваша организация его развёртывает, или на которую вы входите с учётной записью вашей организации. Только управляемые сервером параметры охватывают облачный сеанс

Найдите или создайте ваши файлы параметров

Установка Claude Code не создаёт никакой файл параметров. Если на вашей машине или в проекте уже есть один, он пришёл из одного из этих источников:

  • Управляемый: ваша организация его развёртывает. Вы его не создаёте и не редактируете.
  • Общий проект: проект, который уже использует Claude Code, может иметь один зафиксированный. Если нет, создайте его в .claude/settings.json в папке проекта.
  • Пользователь и Локальный проект: создайте их сами или позвольте Claude Code их создать. Он записывает ~/.claude/settings.json при первом изменении опции в меню /config, которую он сохраняет в пользовательские параметры, такой как тема, и .claude/settings.local.json при первом предоставлении постоянного одобрения на запрос разрешения, такой как "Да, и больше не спрашивайте" для команды Bash. Несколько опций /config, включая Show tips, сохраняются в .claude/settings.local.json вместо файла пользователя.

Claude Code также хранит пятый файл, ~/.claude.json, который он записывает для себя; вам не нужно его редактировать. Он содержит вашу сессию входа, конфигурации MCP server, состояние для каждого проекта, такое как решения о доверии, и глобальные ключи конфигурации, которые /config записывает для вас.

Поделитесь параметрами с вашей командой

Зафиксируйте .claude/settings.json, чтобы все, кто клонирует репозиторий, получили одинаковые разрешения, hooks, телеметрию и plugins. Каждый товарищ по команде всё ещё может переопределить его для себя в своём собственном .claude/settings.local.json, поэтому личные исключения не нуждаются в коммите. Для полного файла команды см. общие параметры команды.

Некоторые из того, что вы зафиксируете, ждут, пока каждый товарищ по команде доверит папку, и несколько ключей никогда не вступают в силу из файла репозитория; Troubleshoot a setting that doesn't apply охватывает оба случая.

Держите личные параметры вне репозитория

Чтобы изменить параметр для себя в одном проекте без изменения его для товарищей по команде, сохраните его в .claude/settings.local.json внутри проекта. Claude Code применяет этот файл поверх зафиксированного .claude/settings.json, поэтому если файл вашей команды устанавливает "model": "claude-sonnet-5" и вы хотите Opus, поместите "model": "claude-opus-4-8" в ваш локальный файл и только ваши сеансы изменятся.

Три вещи, которые нужно знать о локальном файле:

  • Claude Code также его записывает. Когда Claude просит разрешение запустить команду Bash и вы выбираете "Да, и больше не спрашивайте", Claude Code сохраняет это одобрение разрешения здесь как правило allow.
  • Вам не нужно его gitignore самостоятельно, если только вы не создали его вручную. При первом написании файла Claude Code в репозитории git, который его ещё не игнорирует, он добавляет **/.claude/settings.local.json в ваш глобальный файл исключений git, поэтому файл остаётся вне ваших коммитов в каждом репозитории. Этот файл — это core.excludesFile, когда ваша глобальная конфигурация git устанавливает его на абсолютный путь или путь с префиксом ~; в противном случае это $XDG_CONFIG_HOME/git/ignore, или ~/.config/git/ignore, когда XDG_CONFIG_HOME не установлен. Если вы создали файл вручную и Claude Code ещё не писал в него, добавьте его в .gitignore сами.
  • Его правила allow не ждут доверия, пока файл остаётся неотслеживаемым. Поскольку файл принадлежит вам, а не репозиторию, Claude Code применяет его правила allow без шага workspace trust, который он требует для зафиксированного файла. Если файл отслеживается git, шаг доверия применяется к нему также; см. When your local settings file needs trust.

Где Claude Code хранит локальный файл в репозитории git

Когда Claude просит разрешение запустить команду Bash и вы выбираете "Да, и больше не спрашивайте", Claude Code сохраняет это одобрение как правило allow в .claude/settings.local.json. Если вы запускаете Claude Code в подкаталоге репозитория git, он читает и записывает этот файл в корень репозитория и применяет одобрение по всему репозиторию. В worktree он использует файл в корне основного checkout.

Два правила уточняют расположение корня:

  • Когда файл остаётся с .claude/settings.json вместо этого: вне репозитория git, когда корень репозитория — это ваш домашний каталог, на Windows или когда корень репозитория или его запись .git или .claude не принадлежит вашему пользователю.
  • Пути в файле не привязаны к корню репозитория: правило разрешения, которое начинается с / или относительный путь sandbox привязывается к основному рабочему каталогу сеанса вместо этого.

До v2.1.211 Claude Code хранил файл в начальном каталоге. Он всё ещё читает файл, который более ранняя версия оставила там рядом с файлом корня; где оба устанавливают один и тот же ключ, применяется значение корня, и правила разрешений из обоих файлов применяются. Помощник Agent SDK resolveSettings() всегда читает файл из начального каталога.

Claude Code читает общий .claude/settings.json из основного рабочего каталога сеанса, поэтому для использования файла, зафиксированного в корне репозитория, запустите Claude Code там. После того как вы переместите сеанс с /cd, Claude Code читает оба файла проекта из нового каталога вместо этого, размещая локальный файл по тем же правилам. Чтение их из каталога, в который вы переместились, требует Claude Code v2.1.246 или позже.

Проверьте, что ваша организация требует

Если ваша организация управляет Claude Code, некоторые параметры решены за вас и ничто из того, что вы поместили в ваши собственные файлы, их не изменяет. Чтобы увидеть, какие, запустите /status: строка Setting sources называет управляемый источник, который применяется к вам. Управляемые параметры применяются везде, где Claude Code работает на этой машине; What a developer can change охватывает права локального администратора и инструменты, отличные от Claude Code.

Управляемые параметры достигают вас через механизмы доставки на странице управляемых параметров, чаще всего:

  • Server-managed settings, которые Claude Code получает из консоли администратора claude.ai или самостоятельно размещённого Claude apps gateway
  • Политики MDM или уровня ОС и файлы managed-settings.json в системном каталоге
  • Хост встраивания, такой как Claude Desktop, через опцию SDK managedSettings; см. Control policy from an embedding host

В сеансе Cowork, который работает на вашей машине в приложении Claude Desktop, Claude Code не получает управляемые сервером параметры из консоли администратора claude.ai и читает политику, развёрнутую на вашем устройстве, если конфигурация Claude Desktop вашей организации не устанавливает requireCoworkFullVmSandbox. Where and when a policy applies охватывает Cowork и облачные сеансы.

Если вы администратор, Set up Claude Code for your organization проходит через выбор того, что требуется применить, и Deploy managed settings охватывает доставку и как подтвердить, что политика действует.

Измените параметр

Вы можете изменить параметр из меню /config, редактируя файл параметров или для одного сеанса из командной строки.

Системный запрос Claude Code не опубликован. Чтобы дать Claude постоянные инструкции, используйте файлы CLAUDE.md или флаг --append-system-prompt.

Используйте меню /config

Запустите /config внутри Claude Code и откройте вкладку Config. Она перечисляет короткий набор личных опций, таких как тема, режим редактора и подробный вывод, не каждый ключ параметров. Выберите опцию для ее изменения; Claude Code сохраняет ее для вас:

Чтобы установить одну опцию без меню, передайте key=value, такой как /config verbose=true.

Отредактируйте файл параметров

Откройте файл параметров для области, которую вы хотите, в вашем редакторе и добавьте или измените ключ. Файлы параметров — это строгий JSON: комментарий // или запятая в конце — это синтаксическая ошибка, и Claude Code сообщает файл как Settings Error при следующем запуске. Например, чтобы позволить Claude Code запускать ваши команды lint и test без запроса и остановить его чтение файлов .env, добавьте это в ~/.claude/settings.json:

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  }
}

Каждая запись под permissions — это правило, которое называет инструмент и что он может делать; Настройка разрешений объясняет синтаксис. Строка $schema указывает на опубликованную JSON схему для параметров Claude Code, которая дает вам автодополнение и встроенную валидацию в VS Code, Cursor и любом другом редакторе, поддерживающем JSON схему. Схема может отставать от самых новых выпусков CLI, поэтому предупреждение валидации на недавно задокументированном ключе не означает, что ваша конфигурация недействительна.

После сохранения запустите /status внутри Claude Code, чтобы подтвердить, что файл загружен; Подтвердите, что загружено говорит, что показывает строка Setting sources и как сообщается о сломанном файле.

Для полного личного файла, файла команды и файла организации, каждый показан с комментарием на каждом ключе, который он устанавливает, см. примеры файлов параметров.

Измените параметр для одного сеанса

Чтобы попробовать значение без сохранения, установите его при запуске Claude Code. Значение применяется к этому сеансу, и ваши файлы параметров остаются такими, какими они были. У вас есть три способа это сделать:

  • --settings: передайте ключ как JSON, встроенный или как путь к файлу. Claude Code применяет его выше ваших файлов пользователя, проекта и локальных и ниже управляемых параметров. Он может установить любой ключ, который может установить ваш файл параметров пользователя; он не может установить ключи Managed или Global config.
  • Флаг для этого ключа: некоторые ключи имеют свой собственный флаг, такой как --model для model и --effort для effortLevel и modelSettings.
  • Переменная окружения: экспортируйте переменную ключа перед запуском claude, такую как ANTHROPIC_MODEL для model.

Каждая запись ключа на справочнике параметров перечисляет его переопределения для каждого сеанса и какой имеет приоритет, поэтому проверьте запись для ключа, который вы хотите изменить.

Команды, которые вы запускаете внутри сеанса, в основном сохраняют ваш выбор: когда вы изменяете параметр в /config, Claude Code записывает его в ваши файлы параметров, и /model сохраняет значение как ваше значение по умолчанию для новых сеансов.

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

Например, чтобы запустить один сеанс на Opus без изменения вашего значения по умолчанию:

claude --settings '{"model": "claude-opus-4-8"}'

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

Claude Code отслеживает ваши файлы параметров и перезагружает их при изменении, поэтому он применяет большинство изменений к работающему сеансу без перезагрузки, включая изменения permissions, hooks и помощников учетных данных, таких как apiKeyHelper. Claude Code также загружает файл параметров, который вы создаете в середине сеанса, если его папка существовала при запуске сеанса. Для папки .claude/ проекта он загружает файл даже когда вы создаете папку в том же сеансе.

Перезагрузка охватывает параметры пользователя, проекта, локальные и управляемые параметры, и Claude Code запускает hook ConfigChange для каждого изменения файла параметров, которое он обнаруживает, не для управляемых параметров, которые поступают из MDM или консоли claude.ai. Управляемые параметры, которые поступают через MDM или из консоли claude.ai, достигают работающего сеанса по расписанию, а не при сохранении; таблица доставки дает это для каждого источника.

Claude Code читает некоторые ключи только один раз при запуске сеанса, поэтому изменение одного из них не достигает работающего сеанса. Ключи на стороне администратора, которые также ждут перезагрузки, такие как requiredMinimumVersion, перечислены в где и когда применяется политика. Те, которые вы, скорее всего, будете редактировать в середине сеанса:

  • model: используйте /model для переключения в середине сеанса. Каждая модель имеет свой собственный кэш подсказок, поэтому первый запрос после переключения повторно читает весь разговор без кэша; см. Переключение моделей
  • effortLevel и modelSettings: используйте /effort для изменения усилий в середине сеанса

Подтвердите, что загружено

Запустите /status внутри Claude Code, чтобы увидеть, какие источники параметров активны. Вкладка Status включает строку Setting sources, которая перечисляет каждый файл параметров, который Claude Code загрузил для текущего сеанса, такой как User settings или Project local settings. Когда управляемые параметры действуют, запись управляемых параметров показывает в скобках, как они достигли вашей машины.

Строка подтверждает, какие файлы Claude Code прочитал; она не показывает, какой файл предоставил каждый ключ. Чтобы перечислить записи, которые Claude Code отклонил, запустите claude doctor; для модели, которую установили параметры проекта или управляемые параметры, заголовок запуска называет файл, который ее установил. /status и /config открывают один и тот же диалог на разных вкладках, и вкладка Config не является представлением содержимого вашего settings.json.

Исправьте сломанный файл параметров

Если вы неправильно напечатаете JSON или установите ключ на значение, которое Claude Code не принимает, Claude Code сообщит вам при запуске интерактивного сеанса. То, что он показывает, зависит от того, сколько файла затронуто:

  • Settings Error: файл пользователя, проекта или локальный имеет недействительный JSON или значение, которое схема отклоняет. При запуске интерактивного сеанса Claude Code показывает диалог, который позволяет вам исправить файл с помощью Claude, выйти или продолжить без сломанных параметров.
  • Settings Warning: только отдельные записи не удаются, такие как неправильное правило разрешения или неизвестное имя события hook. Claude Code пропускает эти значения и держит остальную часть файла в силе.
  • Managed settings: Claude Code продолжает применять остальную часть файла. Недействительные записи в управляемых параметрах говорит, что он отбрасывает и какие ключи возвращаются к более строгому значению, пока вы их не исправите. Для документа управляемых параметров, который не является действительным JSON, см. Документ управляемых параметров не может быть разобран.
  • Configuration error: ~/.claude.json не может быть разобран. Claude Code копирует сломанный файл в ~/.claude/backups/.claude.json.corrupted.<timestamp> и спрашивает, выйти и исправить его вручную или сбросить на конфигурацию по умолчанию; запуск -p выводит ошибку и выходит. Чтобы восстановить ваше предыдущее состояние, скопируйте обратно один из пяти самых последних файлов .claude.json.backup.<timestamp> в ~/.claude/backups/, которые Claude Code сохраняет перед записью файла.

После продолжения запустите /status, чтобы увидеть затронутые файлы, и claude doctor для деталей каждой ошибки.

Запуск -p не показывает диалог. Если только документ управляемых параметров не может быть разобран, Claude Code пропускает сломанный файл или значения и продолжает с остальным, поэтому после запуска -p, который игнорирует параметр, запустите claude doctor, чтобы увидеть, что он отбросил.

Приоритет параметров

Когда один и тот же ключ появляется в более чем одном месте, Claude Code использует значение из наивысшего уровня, который его устанавливает. Стек ниже показывает уровни, наивысший вверху; ключ на более высоком уровне переопределяет один и тот же ключ где-либо ниже.

По порядку, наивысший приоритет первым:

  1. Managed settings: параметры, которые ваша организация развертывает, файлом managed-settings.json, политикой MDM или параметрами, управляемыми сервером из консоли claude.ai. Ничто, что вы устанавливаете, их не переопределяет: ключ, который вы передаете с --settings, не переопределяет один и тот же управляемый ключ, и флаг, такой как --model, выбирает только из моделей, которые ваша организация разрешает. Управляемый model устанавливает модель, с которой каждый сеанс начинается, и вы все еще можете переключаться с /model; блокировка — это availableModels, которая ограничивает /model, --model и ключ model в ваших собственных файлах. Когда ваша организация доставляет более одного управляемого источника, правила для приоритета в пределах управляемого уровня говорят, что Claude Code читает из каждого.
  2. Command line arguments: флаги, которые вы передаете при запуске claude из терминала, для одного сеанса; см. Измените параметр для одного сеанса. Claude Code объединяет JSON, который вы передаете с --settings <file-or-json>, с вашими файлами параметров по тем же правилам, что и другие уровни: он берет ключ, который вы устанавливаете здесь, над один и тот же ключ в локальных, проектных или пользовательских параметрах, и держит значение нижнего уровня для ключа, который вы опускаете.
  3. Project local settings (.claude/settings.local.json): ваши личные параметры для этого проекта.
  4. Shared project settings (.claude/settings.json): параметры, которые ваша команда проверяет в системе управления версиями.
  5. User settings (~/.claude/settings.json): ваши личные параметры для каждого проекта.

Переменные окружения не являются уровнем в этом стеке. Когда поведение имеет как переменную оболочки, так и ключ параметров, какой применяется, решается для каждой пары, не по уровню: ANTHROPIC_MODEL, экспортированная в вашей оболочке, применяется над ключом model из любого файла, в то время как ANTHROPIC_DEFAULT_MODEL применяется только когда никакой файл не устанавливает model. Справочник переменных окружения говорит, какие ключи имеют пару и какой Claude Code читает первым. Блок env внутри файла параметров — это обычный ключ и следует уровням выше.

Для нескольких ключей, чувствительных к безопасности, Claude Code чтит более строгое значение из нижнего уровня над управляемым значением; Исключения из приоритета управляемых параметров перечисляет их.

Списки объединяются вместо переопределения

Когда вы устанавливаете один и тот же ключ списка, такой как permissions.allow, в более чем одном файле, Claude Code объединяет списки вместо выбора одного, поэтому каждый файл может добавлять записи без удаления записей другого файла. Четыре ключа, которые содержат списки моделей или записи для каждой модели, следуют своим собственным правилам:

  • fallbackModel — это упорядоченная цепь, где позиция имеет значение, поэтому Claude Code берет все значение из файла с наивысшим приоритетом, который его определяет.
  • modelPicker содержит один упорядоченный список строк плюс флаг замены, поэтому Claude Code никогда не объединяет строки из двух источников. Он берет все значение из наивысшего из управляемых параметров, --settings и параметров пользователя, которые его определяют, и игнорирует ключ в параметрах проекта и локальных. Требует Claude Code v2.1.242 или позже.
  • availableModels: когда управляемые параметры, которые Claude Code применяет, его определяют, Claude Code применяет этот список как есть и игнорирует записи, которые вы добавляете в параметры пользователя, проекта или локальные, если приложение, которое встраивает Claude Code, не предоставляет свой собственный список моделей; см. Исключения из приоритета управляемых параметров. Через управляемые источники список никогда не объединяется либо; как Claude Code объединяет управляемые источники говорит, какой список источника применяется. Через неуправляемые области Claude Code объединяет массивы как обычно.
  • modelSettings: Claude Code разрешает его одну модель за раз, вместе с effortLevel. Запись modelSettings указывает, какой файл значение применяется к модели.

Примеры приоритета

Пока Claude работает, Claude Code показывает совет в одну строку под спиннером, такой как "Use /config to change your default permission mode (including Plan Mode)". Предположим, вы хотите эти советы отключить, поэтому вы устанавливаете spinnerTipsEnabled на false в ~/.claude/settings.json. Каждый сценарий ниже — это что-то, что может их снова включить, и что вы можете с этим сделать.

Параметры команды переопределяют личные параметры

Ваша команда .claude/settings.json устанавливает это на true. Claude Code использует значение проекта, потому что общий проект находится выше пользователя, поэтому вы видите советы в этом проекте и нигде больше.

Вы можете получить ваше значение обратно: добавьте "spinnerTipsEnabled": false в .claude/settings.local.json в этом проекте. Локальный проект находится выше общего проекта, поэтому ваши сеансы там перестают показывать советы и сеансы ваших товарищей по команде не изменяются.

Параметры организации переопределяют все

Управляемые параметры вашей организации устанавливают это на true. Ничто, что вы помещаете в параметры пользователя, проекта или локальные, не отключает советы, и ни --settings не отключает. Managed — это наивысший уровень.

Вы не можете получить ваше значение обратно. Запустите /status, чтобы увидеть, какой управляемый источник применяется, и спросите вашего администратора, должна ли политика измениться.

Командная строка переопределяет ваши файлы для одного сеанса

Вы запустили сеанс с claude --settings '{"spinnerTipsEnabled": true}'. Командная строка находится выше каждого файла, кроме управляемых, поэтому этот сеанс показывает советы, даже хотя ваши файлы говорят false.

Вы получаете ваше значение обратно на следующем сеансе; --settings длится один сеанс и не записывает в какой-либо файл.

Флаг или переменная окружения устанавливает то же самое

Некоторые ключи имеют флаг командной строки или переменную окружения, которая переопределяет значение параметров независимо от того, какой файл его установил: ANTHROPIC_MODEL переопределяет параметр model, и --model переопределяет оба для сеанса.

Можете ли вы получить ваше значение обратно, зависит от ключа: отмените переменную или отбросьте флаг, и проверьте запись ключа на справочнике параметров и строку переменной на справочнике переменных окружения для того, какой Claude Code использует.

Устранение неполадок параметра, который не применяется

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

Значение, которое вы установили, игнорируется

Что-то еще устанавливает один и тот же ключ, файл не может установить это значение, или файл не загружен:

  • Более высокий уровень его устанавливает. Другой файл параметров, флаг --settings или управляемый источник устанавливает ключ выше вашего; стек говорит, какой. Флаг или переменная окружения также может переопределить ключ самостоятельно, решено ключ за ключом; запись ключа на справочнике параметров говорит, какой Claude Code использует, и запись env охватывает управляемое значение env против экспорта оболочки.
  • Ключ безопасности держит его строгое значение. Для нескольких ключей Claude Code чтит ограничивающее значение из любого файла, поэтому проект true для disableClaudeAiConnectors остается включенным; см. Исключения из приоритета управляемых параметров.
  • Файл не может установить это значение. Значения permissions.defaultMode auto и bypassPermissions не вступают в силу из параметров проекта или локальных; установите их в параметры пользователя или управляемые вместо этого, или передайте --permission-mode для одного сеанса. До v2.1.257 bypassPermissions вступал в силу из любого файла.
  • Файл сломан. Недействительный JSON или отклоненное значение заставляет Claude Code пропустить файл или запись; см. Исправьте сломанный файл параметров.

Изменение, которое вы сделали в Claude Code, потеряно в новых сеансах

Когда вы сохраняете выбор для новых сеансов из Claude Code, такой как модель по умолчанию с /model, Claude Code записывает его в ваш файл параметров пользователя, ~/.claude/settings.json. Если вы не можете писать в этот файл, например потому что другой инструмент его генерирует или связывает его с копией только для чтения, изменение применяется к текущему сеансу и исчезает в следующем. Установите ключ в инструмент, который генерирует файл, или замените файл на тот, в который вы можете писать.

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

Управляемое изменение не достигло вас

Управляемые источники достигают работающего сеанса по расписанию в таблице доставки, поэтому сначала перезагрузите сеанс. Если /status затем называет другой источник, чем тот, который ваш администратор изменил, применяется более высокий приоритет источника; Как Claude Code объединяет управляемые источники дает порядок.

Зафиксированный ключ не достигает товарищей по команде

Две вещи держат ключ в .claude/settings.json от применения для всех, кто его клонирует:

  • Claude Code игнорирует ключ в файле репозитория. Ищите User, local, or managed, User or managed, Managed или Global config в столбце Scope индекса параметров; эти ключи никогда не применяются из общего файла, кроме autoContinueAtUsageLimit, который файл репозитория все еще может отключить: пока файл устанавливает ключ и никакое пользовательское значение, --settings или управляемое значение не делает, Claude Code читает параметр как отключенный. Ключи Global config применяются только из ~/.claude.json.
  • Ключ ждет доверия. Правила permissions.allow, permissions.additionalDirectories, extraKnownMarketplaces и большинство значений env применяются только после того, как каждый товарищ по команде доверит папке. До этого они все еще видят подсказки и не получают plugins из marketplace, который файл объявляет. Правила deny и ask применяются сразу же.

Правила разрешений объединяются иначе, чем вы ожидали

  • Вы выбрали "Да, и больше не спрашивай" на подсказке разрешения, но все еще получаете подсказку для одного и того же инструмента. Этот выбор сохранил правило allow в ваш локальный файл, и правило allow там не превосходит правило ask из файла проекта или управляемого; как правила разрешений объединяются объясняет порядок. В расширении VS Code карточка одобрения позволяет вам выбрать файл назначения, включая общий файл проекта, который изменяет правило для всех; в CLI Claude Code записывает только в ваш локальный файл.
  • Правила allow вашей организации все еще применяются рядом с вашими. Это ожидается: Claude Code объединяет permissions.allow через области, если только ваша организация не устанавливает allowManagedPermissionRulesOnly.

Исключения из приоритета управляемых параметров

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

Ключ Значение, которое Claude Code чтит Примечания
disableClaudeAiConnectors true из любой области Чтится даже когда управляемый источник устанавливает false
enableArtifact false из любой области и disableArtifact: true из любой области Чтится даже когда управляемый источник устанавливает true; ничто не включает инструмент Artifact обратно. Требует Claude Code v2.1.242 или позже
isolatePeerMachines true из любой области Чтится даже когда управляемый источник устанавливает false
remoteControlAtStartup false из .claude/settings.json или .claude/settings.local.json Чтится даже когда управляемый источник устанавливает true; проект или локальный true игнорируется
crossSessionInbound Более строгое значение из .claude/settings.json или .claude/settings.local.json, на лестнице accept < hold < refuse Чтится над управляемыми, --settings и пользовательскими значениями; проект или локальное значение, которое не более строгое, игнорируется
useAutoModeDuringPlan false из любого управляемого источника, --settings, ~/.claude/settings.json или .claude/settings.local.json Чтится даже когда выигрывающий управляемый источник устанавливает true; false в .claude/settings.json игнорируется
syncClaudeAiSkills false из любого управляемого источника, --settings, ~/.claude/settings.json или .claude/settings.local.json Чтится даже когда выигрывающий управляемый источник устанавливает true; false в .claude/settings.json игнорируется
maxEffortLevel Более низкий лимит из любой области, включая --settings Чтится даже когда управляемые параметры, которые Claude Code применяет, устанавливают более высокий лимит; применяется самый низкий лимит. Требует Claude Code v2.1.267 или позже

Приложение, которое запускает Claude Code внутри себя и устанавливает CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, также является исключением. Claude Code берет конфигурацию модели этого приложения над ключами model, fallbackModel, modelPicker и modelOverrides из каждого управляемого источника, и над переменными выбора модели в управляемом блоке env, такими как ANTHROPIC_MODEL и семейство ANTHROPIC_DEFAULT_*_MODEL. Claude Code держит управляемый availableModels список разрешений в силе, если только приложение не предоставляет свой собственный.

Параметры в облачных сеансах

Облачный сеанс, на Claude Code в веб-версии или из claude --cloud, работает в облачной среде на свежем клоне вашего репозитория, не на вашей машине. Это изменяет, какие параметры его достигают:

  • Общие параметры проекта (.claude/settings.json): читаются, потому что файл является частью клона. Зафиксируйте параметр там, чтобы применить его в облачных сеансах.
  • Параметры пользователя и локальные параметры проекта (~/.claude/settings.json и .claude/settings.local.json): не читаются. Оба остаются на вашей машине, и локальный файл не находится в клоне.
  • Managed settings: только параметры, управляемые сервером, достигают облачного сеанса; файл managed-settings.json или профиль MDM на вашем устройстве не достигают. Самостоятельно размещенная среда также читает файл управляемых параметров в образе своего runner. Как Claude Code объединяет управляемые источники говорит, когда этот файл применяется.
  • /config: в веб-версии открывает раздел Claude Code ваших параметров claude.ai вместо изменения значения. Чтобы изменить параметр для облачного сеанса, установите переменную окружения в среде или зафиксируйте ключ в .claude/settings.json репозитория.

Что переносится из вашей установки перечисляет остальное: CLAUDE.md, skills, MCP servers, plugins и учетные данные.

Что дальше