SpyBara
Go Premium

settings-reference.md 2026-10-01 23:59 UTC to 2026-10-02 18:59 UTC

This page contains 634 additions and 598 deletions.

2026
Thu 1 23:59 Fri 2 19:58

Все параметры

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

export const BackToIndex = ({href = '#all-settings', label = 'Back to index'}) => { const [show, setShow] = useState(false); useEffect(() => { const onScroll = () => setShow(window.scrollY > window.innerHeight); onScroll(); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); return

<a className={'bti-btn' + (show ? ' bti-show' : '')} href={href} aria-hidden={!show} tabIndex={show ? 0 : -1}> {label}
; };

export const ReferenceFilter = ({placeholder, noun, facets, facetOrder, columnHelp, children}) => { const useLive = init => { const [v, setV] = useState(init); const ref = useRef(init); return [v, ref, x => { ref.current = x; setV(x); }]; }; const cap = s => s.charAt(0).toUpperCase() + s.slice(1); const plural = s => s.endsWith('y') ? s.slice(0, -1) + 'ies' : s + 's'; const facetNames = facets || ['category', 'topic', 'scope', 'where']; const orderOf = {}; Object.keys(facetOrder || ({})).forEach(k => { orderOf[k] = facetOrder[k].map(x => String(x).toLowerCase()); }); const rankIn = (col, v) => { const list = orderOf[col]; if (!list) return -1; const i = list.indexOf(String(v).toLowerCase()); return i < 0 ? list.length : i; }; const cmpValues = col => (a, b) => { const ra = rankIn(col, a); const rb = rankIn(col, b); if (ra !== rb) return ra - rb; return a < b ? -1 : a > b ? 1 : 0; }; const help = columnHelp || ({}); const FIRST_COL_HELP = 'Click an entry to open it.'; const optionLabel = (f, c) => c === 'All' ? 'All ' + plural(f.label.toLowerCase()) : c; const nounText = noun || 'entries'; const placeholderText = placeholder || 'Filter this reference'; const rootRef = useRef(null); const tablesRef = useRef(null); const searchRef = useRef(null); const menuRef = useRef({}); const [q, qRef, setQ] = useLive(''); const [sel, selRef, setSel] = useLive({}); const [sortBy, sortRef, setSortBy] = useLive(null); const [menuOpen, menuOpenRef, setMenu] = useLive(null); const [facetList, setFacetList] = useState([]); const [firstHead, setFirstHead] = useState(''); const [counts, setCounts] = useState({ shown: 0, total: 0 }); const [disabled, setDisabled] = useState(false); const menuBtn = name => menuRef.current[name] ? menuRef.current[name].querySelector(':scope > button') : null; const menuList = name => menuRef.current[name] ? menuRef.current[name].querySelector('[role="listbox"]') : null; const closeMenu = name => { setMenu(null); const btn = menuBtn(name); if (btn) btn.focus(); }; const focusSelected = name => { const list = menuList(name); if (!list) return; const btn = list.querySelector('button[aria-selected="true"]') || list.querySelector('button'); if (btn) btn.focus(); }; const setFacet = (name, value) => { setSel(Object.assign({}, selRef.current, { [name]: value })); apply(qRef.current); closeMenu(name); }; const sortTables = by => { (tablesRef.current || []).forEach(tab => { const t = tab.el; const idx = tab.heads.indexOf(by); const body = t.querySelector('tbody'); if (idx < 0 || !body) return; const rows = [...body.querySelectorAll('tr')]; const keyOf = r => r.children[idx] ? r.children[idx].textContent.trim().toLowerCase() : ''; const cmp = cmpValues(by); rows.map((r, i) => ({ r, i: Number(r.dataset.sfIndex !== undefined ? r.dataset.sfIndex : i), k: keyOf(r) })).sort((a, b) => cmp(a.k, b.k) || a.i - b.i).forEach(x => body.appendChild(x.r)); [...t.querySelectorAll('thead th')].forEach((h, i) => { const sortable = tab.heads[i] === tab.heads[0] || facetNames.indexOf(tab.heads[i]) > -1; if (sortable) h.setAttribute('aria-sort', i === idx ? 'ascending' : 'none'); else h.removeAttribute('aria-sort'); }); }); }; const scan = () => { const tables = []; let el = rootRef.current ? rootRef.current.nextElementSibling : null; while (el) { if (el.tagName === 'H2' || el.querySelector(':scope > h2')) break; const found = el.tagName === 'TABLE' ? [el] : [...el.querySelectorAll('table')]; found.forEach(t => { const headCells = [...t.querySelectorAll('thead th, thead td')]; const heads = headCells.map(h => h.textContent.trim().toLowerCase()); if (heads.length === 0) return; const facetIdx = {}; heads.forEach((h, i) => { if (facetNames.indexOf(h) > -1) facetIdx[h] = i; }); if (!t.dataset.sfDecorated) { t.dataset.sfDecorated = '1'; headCells.forEach((h, i) => { const text = i === 0 ? help[heads[0]] || FIRST_COL_HELP : help[heads[i]]; if (text) h.title = text; }); } const rows = [...t.querySelectorAll('tbody tr')].map((r, i) => { if (r.dataset.sfIndex === undefined) r.dataset.sfIndex = String(i); const cells = r.querySelectorAll('td'); const fv = {}; Object.keys(facetIdx).forEach(h => { fv[h] = cells[facetIdx[h]] ? cells[facetIdx[h]].textContent.trim() : ''; }); return { el: r, text: [...cells].map(c => c.textContent).join(' ').toLowerCase(), facets: fv, anchors: [...r.querySelectorAll('a[href^="#"]')].map(a => a.getAttribute('href').slice(1)), ids: [...r.querySelectorAll('[id]')].map(n => n.id) }; }); tables.push({ el: t, box: t.closest('[data-table-wrapper]') || t, rows, heads }); }); el = el.nextElementSibling; } tablesRef.current = tables; if (sortRef.current) sortTables(sortRef.current); return tables; }; const apply = query => { let tables = tablesRef.current || scan(); if (tables.some(t => !t.el.isConnected)) tables = scan(); const needle = query.trim().toLowerCase(); const sel = selRef.current; const activeFacets = Object.keys(sel).filter(h => sel[h] && sel[h] !== 'All'); const show = (el, on) => { const want = on ? '' : 'none'; if (el.style.display !== want) el.style.display = want; }; let total = 0; let shown = 0; const visibleTargets = new Set(); tables.forEach(t => { let tableVisible = 0; t.rows.forEach(row => { total += 1; const catOk = activeFacets.every(h => { const v = row.facets[h]; return v === sel[h] || v === '' || v === undefined; }); const match = catOk && (needle === '' || row.text.includes(needle)); show(row.el, match); if (match) { tableVisible += 1; row.anchors.forEach(a => visibleTargets.add(a)); } }); show(t.box, !(t.rows.length > 0 && tableVisible === 0)); shown += tableVisible; }); if (shown < total && visibleTargets.size > 0) { tables.forEach(t => { t.rows.forEach(row => { if (row.el.style.display === 'none' && row.ids.some(id => visibleTargets.has(id))) { show(row.el, true); show(t.box, true); shown += 1; } }); }); } setCounts({ shown, total }); return total; }; const deriveFacets = tables => { const seen = {}; tables.forEach(t => t.rows.forEach(r => { Object.keys(r.facets).forEach(h => { if (!seen[h]) seen[h] = []; if (r.facets[h] && seen[h].indexOf(r.facets[h]) === -1) seen[h].push(r.facets[h]); }); })); const list = facetNames.filter(h => seen[h] && seen[h].length > 0).map(h => ({ name: h, label: cap(h), values: seen[h].sort(cmpValues(h)) })); setFacetList(list); const first = tables[0] ? tables[0].heads[0] : ''; setFirstHead(first); if (!sortRef.current && first) { setSortBy(first); sortTables(first); } const init = {}; list.forEach(f => { init[f.name] = selRef.current[f.name] || 'All'; }); setSel(init); }; const onChange = value => { setQ(value); apply(value); }; const clearAll = () => { const next = {}; Object.keys(selRef.current).forEach(k => { next[k] = 'All'; }); setSel(next); setQ(''); apply(''); if (searchRef.current) searchRef.current.focus(); }; useEffect(() => { const tables = scan(); deriveFacets(tables); const total = apply(''); let retryTimer; if (total === 0) { retryTimer = setTimeout(() => { tablesRef.current = null; if (apply(qRef.current) > 0) deriveFacets(tablesRef.current); else setDisabled(true); }, 500); } const onKey = e => { if (e.key === 'Escape' && menuOpenRef.current !== null) closeMenu(menuOpenRef.current); if (!searchRef.current) return; if (e.metaKey || e.ctrlKey || e.altKey) return; const active = document.activeElement; const tag = active && active.tagName; const editable = active && active.isContentEditable; const interactive = tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT' || tag === 'BUTTON' || tag === 'A' || editable || active && active.getAttribute && active.getAttribute('role'); if (e.key === '/' && !interactive) { const r = rootRef.current ? rootRef.current.getBoundingClientRect() : null; if (r && r.bottom > 0 && r.top < (window.innerHeight || 0)) { e.preventDefault(); setMenu(null); searchRef.current.focus(); } } if (e.key === 'Escape' && menuOpenRef.current === null && active === searchRef.current) { onChange(''); searchRef.current.blur(); } }; const onDocClick = e => { const open = menuOpenRef.current; if (open !== null && menuRef.current[open] && !menuRef.current[open].contains(e.target)) setMenu(null); }; window.addEventListener('keydown', onKey); document.addEventListener('mousedown', onDocClick); return () => { if (retryTimer) clearTimeout(retryTimer); window.removeEventListener('keydown', onKey); document.removeEventListener('mousedown', onDocClick); (tablesRef.current || []).forEach(t => { t.box.style.display = ''; t.rows.forEach(row => { row.el.style.display = ''; }); }); }; }, []); useEffect(() => { if (menuOpen !== null) focusSelected(menuOpen); }, [menuOpen]); if (disabled) return null; const facetActive = Object.keys(sel).some(h => sel[h] && sel[h] !== 'All'); const sortOptions = [firstHead].concat(facetList.map(f => f.name)).filter((h, i, a) => h && a.indexOf(h) === i); return <> <div ref={rootRef} className="sf-root" style={{ margin: '16px 0 8px' }}> <div style={{ display: 'flex', gap: '8px', flexWrap: 'wrap', alignItems: 'center' }}> <div style={{ position: 'relative', flex: '1 1 260px', maxWidth: '480px' }}> <input ref={searchRef} value={q} onChange={e => onChange(e.target.value)} placeholder={placeholderText} aria-label={placeholderText} style={{ width: '100%', padding: '8px 56px 8px 12px', borderRadius: '8px', border: '1px solid var(--sf-border)', background: 'var(--sf-bg)', color: 'var(--sf-text)', fontSize: '14px', outline: 'none', boxSizing: 'border-box' }} /> {q ? <button type="button" onClick={() => { onChange(''); if (searchRef.current) searchRef.current.focus(); }} aria-label="Clear text" className="sf-end sf-x"> × : <span className="sf-end" style={{ fontFamily: 'var(--font-mono, ui-monospace, monospace)', fontSize: '11px', color: 'var(--sf-text-4)', border: '1px solid var(--sf-border)', borderRadius: '3px', padding: '0 5px', pointerEvents: 'none' }}> / }

{facetList.map(f => { const cur = sel[f.name] || 'All'; const isOpen = menuOpen === f.name; return <div key={f.name} ref={el => { menuRef.current[f.name] = el; }} style={{ position: 'relative' }}> <button type="button" onClick={() => setMenu(isOpen ? null : f.name)} onKeyDown={e => { if (e.key === 'ArrowDown') { e.preventDefault(); if (!isOpen) setMenu(f.name); else focusSelected(f.name); } }} aria-haspopup="listbox" aria-expanded={isOpen} style={{ display: 'flex', alignItems: 'center', gap: '8px', padding: cur !== 'All' ? '8px 30px 8px 12px' : '8px 12px', borderRadius: '8px', border: '1px solid ' + (cur !== 'All' ? 'var(--sf-accent)' : 'var(--sf-border)'), background: 'var(--sf-bg)', color: cur === 'All' ? 'var(--sf-text-3)' : 'var(--sf-text)', fontSize: '13.5px', cursor: 'pointer', whiteSpace: 'nowrap', maxWidth: '260px' }}> <span style={{ overflow: 'hidden', textOverflow: 'ellipsis' }}> {f.label + ': ' + optionLabel(f, cur)} <span aria-hidden="true" style={{ fontSize: '9px', color: 'var(--sf-text-4)', transform: isOpen ? 'rotate(180deg)' : 'none', transition: 'transform 120ms' }}> ▼ {cur !== 'All' && <button type="button" onClick={() => setFacet(f.name, 'All')} aria-label={'Clear ' + f.label + ' filter'} title={'Clear ' + f.label + ' filter'} className="sf-end sf-x"> × } {isOpen && <div role="listbox" aria-label={f.label} onKeyDown={e => { const items = [...e.currentTarget.querySelectorAll('button')]; const idx = items.indexOf(document.activeElement); if (e.key === 'ArrowDown') { e.preventDefault(); (items[idx + 1] || items[0]).focus(); } else if (e.key === 'ArrowUp') { e.preventDefault(); (items[idx - 1] || items[items.length - 1]).focus(); } else if (e.key === 'Home') { e.preventDefault(); if (items[0]) items[0].focus(); } else if (e.key === 'End') { e.preventDefault(); if (items[items.length - 1]) items[items.length - 1].focus(); } else if (e.key === 'Tab') { closeMenu(f.name); } }} style={{ position: 'absolute', top: 'calc(100% + 6px)', left: 0, zIndex: 1000, minWidth: '260px', maxHeight: '340px', overflowY: 'auto', background: 'var(--sf-bg)', border: '1px solid var(--sf-border)', borderRadius: '10px', boxShadow: '0 8px 24px rgba(0,0,0,0.12)', padding: '5px' }}> {['All'].concat(f.values).map(c => { const selected = cur === c; return <button key={c} role="option" aria-selected={selected} tabIndex={-1} onClick={() => setFacet(f.name, c)} style={{ display: 'flex', alignItems: 'center', gap: '8px', width: '100%', textAlign: 'left', padding: '7px 10px', borderRadius: '6px', border: 'none', background: 'transparent', color: selected ? 'var(--sf-accent)' : 'var(--sf-text)', fontWeight: selected ? 600 : 400, fontSize: '13.5px', cursor: 'pointer' }}> <span aria-hidden="true" style={{ width: '14px', color: 'var(--sf-accent)', flexShrink: 0 }}> {selected ? '✓' : ''} {optionLabel(f, c)} ; })}
}
; })} {sortOptions.length > 1 && <div role="group" aria-label="Sort by" style={{ display: 'flex', alignItems: 'center', gap: '4px', fontSize: '13px', color: 'var(--sf-text-3)', whiteSpace: 'nowrap' }}> <span style={{ marginRight: '4px' }}>Sort by {sortOptions.map(o => { const on = sortBy === o; return <button key={o} type="button" aria-pressed={on} onClick={() => { setSortBy(o); sortTables(o); }} style={{ padding: '6px 10px', borderRadius: '8px', border: '1px solid ' + (on ? 'var(--sf-accent)' : 'var(--sf-border)'), background: 'var(--sf-bg)', color: on ? 'var(--sf-text)' : 'var(--sf-text-3)', fontSize: '13px', cursor: 'pointer' }}> {o.charAt(0).toUpperCase() + o.slice(1)} ; })} } <div aria-live="polite" style={{ margin: '8px 0 0', fontSize: '13px', color: 'var(--sf-text-3)', minHeight: '1px' }}> {q.trim() === '' && !facetActive ? <>{counts.total} {nounText}</> : counts.shown === 0 ? <> {q.trim() === '' ? 'No ' + nounText + ' match the selected filters.' : facetActive ? 'No ' + nounText + ' match \u201c' + q + '\u201d with the selected filters.' : 'No ' + nounText + ' match \u201c' + q + '\u201d.'}{' '} <button type="button" onClick={clearAll} style={{ background: 'none', border: 'none', padding: 0, color: 'var(--sf-accent)', cursor: 'pointer', font: 'inherit', textDecoration: 'underline' }}> Clear filters {children ? <> {children}</> : null} </> : <> Showing {counts.shown} of {counts.total} {nounText} </>} </>; };

На этой справочной странице перечислены все ключи, которые Claude Code читает из файла параметров, а также небольшая группа ключей, которые он хранит в ~/.claude.json. Чтобы выбрать файл или проверить приоритет, начните с Settings files and precedence.

Индекс настроек

Каждый ключ ниже ссылается на его запись. Область действия указывает файлы, в которых он может находиться: User — это ~/.claude/settings.json, Project — это .claude/settings.json, Local — это .claude/settings.local.json, а Managed — это то, что развёртывает ваша организация. Any file означает все четыре, а Global config означает ~/.claude.json.

<ReferenceFilter noun="settings" placeholder="Filter settings by key or purpose" facetOrder={{ scope: ["Any file", "User, local, or managed", "User or managed", "Managed", "Global config"] }} columnHelp={{ topic: "The section of this page that holds the entry. Use Sort by to group the table by topic.", scope: "Which settings files can set the key: user (~/.claude/settings.json), project (.claude/settings.json), local (.claude/settings.local.json), or managed (deployed by your organization). Global config keys are in ~/.claude.json instead.", }} />

Key Description Topic Scope
advisorModel Выберите, какая модель отвечает, когда Claude использует инструмент советника Model and responses Any file
agent Начинайте каждую сессию как именованный субагент с его промптом, инструментами и моделью Agents, sessions, and worktrees Any file
agentPushNotifEnabled Позвольте Claude отправить push-уведомление на ваш телефон, когда он решит это сделать Remote, desktop, and notifications Any file
allowAllClaudeAiMcps Загружайте коннекторы claude.ai, которые Claude Code получает сам, наряду с развёрнутым managed-mcp.json MCP Managed
allowClaudeInChromeWithManagedMcp Позвольте встроенному серверу Claude in Chrome работать наряду с развёрнутым managed-mcp.json MCP Managed
allowedChannelPlugins Замените список разрешённых по умолчанию плагинов каналов, которые могут отправлять сообщения Plugins and skills Managed
allowedHttpHookUrls Ограничьте, какие URL-адреса могут использовать HTTP-хуки Hooks and automation Any file
allowedMcpServers Создайте список разрешённых MCP-серверов, которые могут добавлять пользователи MCP Any file
allowedProviders Ограничьте, какие поставщики API может использовать машина Authentication and providers Managed
allowManagedHooksOnly Запускайте только хуки, которые развёртывает ваша организация Hooks and automation Managed
allowManagedMcpServersOnly Сделайте управляемый список разрешённых серверов MCP единственным применяемым MCP Managed
allowManagedPermissionRulesOnly Сделайте управляемые настройки единственным источником настроек для правил разрешений Permission settings Managed
alwaysThinkingEnabled Отключите расширенное мышление для каждой сессии Model and responses Any file
apiKeyHelper Создайте учётные данные API с помощью вашей собственной команды Authentication and providers Any file
askUserQuestionTimeout Позвольте неотвеченному вопросу автоматически продолжиться после времени простоя Interface and terminal User or managed
appendPlugins Запускайте моды вашей организации после каждого мода, который устанавливает пользователь Plugins and skills User or managed
attribution Настройте атрибуцию, которую Claude Code добавляет к коммитам и pull request'ам Git and attribution Any file
attribution.commit Измените или скройте трейлер, который Claude Code добавляет к коммитам Git and attribution Any file
attribution.pr Измените или скройте строку атрибуции в описаниях pull request'ов Git and attribution Any file
attribution.sessionUrl Опустите ссылку на сессию claude.ai из облачных и Remote Control коммитов Git and attribution Any file
autoCompactEnabled Отключите или включите автоматическое сжатие контекста Memory and context Any file
autoCompactWindow Установите, насколько заполненным становится контекст перед тем, как Claude Code сжимает его Memory and context Any file
autoConnectIde Автоматически подключайтесь к работающей VS Code или JetBrains IDE из внешнего терминала Global config settings Global config
autoContinueAtUsageLimit Ждите в открытой сессии и автоматически продолжайте задачу после сброса лимита использования claude.ai Interface and terminal User or managed
autoInstallIdeExtension Отключите автоматическую установку расширения IDE из терминала VS Code Global config settings Global config
autoMemoryDirectory Сохраняйте автоматическую память в выбранном вами каталоге Memory and context Any file
autoMemoryEnabled Отключите или включите автоматическую память Memory and context Any file
autoMode Добавьте свои собственные правила разрешения и запрета к классификатору авторежима Permission settings User or managed
autoMode.classifyAllShell Отправляйте каждую shell-команду через классификатор авторежима, даже те, которые соответствуют узкому правилу разрешения Permission settings User or managed
autoScrollEnabled Следите за новым выводом в нижней части при полноэкранном отображении Interface and terminal Any file
autoUpdatesChannel Следуйте стабильному каналу выпуска вместо последнего Updates and versioning Any file
availableModels Ограничьте, какие модели люди могут выбирать Model and responses Any file
availableModelsMatch Сделайте каждую запись ID модели availableModels разрешающей только версию, которую она называет Model and responses Managed
awaySummaryEnabled Отключите краткое описание сессии, показываемое при возврате к терминалу Remote, desktop, and notifications Any file
awsAuthRefresh Обновляйте истёкшие учётные данные Bedrock в .aws с помощью вашей собственной команды Authentication and providers Any file
awsCredentialExport Предоставляйте учётные данные Bedrock как JSON из вашей собственной команды Authentication and providers Any file
axScreenReader Отображайте вывод, удобный для программ чтения с экрана Interface and terminal Any file
bashEditDiffEnabled Записывайте файлы, которые изменились во время выполнения команды Bash в каждом режиме разрешений Interface and terminal User or managed
bashOutputMaxChars Установите, сколько вывода успешной команды Claude получает встроенным образом Memory and context Any file
blockedMarketplaces Блокируйте источники маркетплейса плагинов для вашей организации Plugins and skills Managed
browserExternalPageTools Отключите инструменты Claude на внешних страницах в настольной панели Browser Tools Managed
channelsEnabled Разрешите каналы для вашей организации Plugins and skills Managed
claudeInChromeDefaultEnabled Включайте интеграцию с Chrome при запуске сессии в интерактивном CLI и расширении VS Code Global config settings Global config
claudeMd Внедрите организационные инструкции CLAUDE.md из управляемых настроек Memory and context Managed
claudeMdExcludes Пропускайте определённые файлы CLAUDE.md при загрузке памяти Memory and context Any file
cleanupPeriodDays Выберите, сколько дней Claude Code хранит транскрипты перед их удалением Privacy and telemetry Any file
companyAnnouncements Показывайте объявления вашей организации при запуске Interface and terminal Any file
copyFullResponse Сделайте так, чтобы /copy копировала полный ответ без отображения средства выбора блока кода Global config settings Global config
copyOnSelect Отключите автоматическое копирование текста, который вы выбираете мышью в полноэкранном отображении и представлении агента Global config settings Global config
crossSessionInbound Выберите, доставляет ли Claude Code сообщения из ваших других сессий, показывает уведомление без их доставки или отклоняет их Agents, sessions, and worktrees Any file
defaultShell Выберите, запускается ли Bash или PowerShell для shell-команд, которые вы вводите с префиксом ! Interface and terminal Any file
defaultToAgentsView Открывайте представление агента вместо нового диалога при запуске claude без аргументов Global config settings Global config
deniedMcpServers Блокируйте определённые MCP-серверы по URL, команде или имени MCP Any file
deniedModels Блокируйте определённые модели, даже те, которые разрешает availableModels Model and responses Managed
desktopSessionCleanupPeriodDays Установите возрастной лимит в днях для транскриптов Claude Desktop и Cowork Privacy and telemetry User or managed
dialogExpiry Установите, как долго Claude Code ждёт, пока Remote Control или хост SDK ответит на переданное диалоговое окно, прежде чем отменить его Interface and terminal User or managed
diffTool Выберите, открываются ли предложенные Claude изменения файлов в средстве просмотра diff VS Code или JetBrains или остаются в терминале Global config settings Global config
disableAgentView Отключите фоновые агенты и представление агента Agents, sessions, and worktrees Any file
disableAllHooks Отключите хуки, пользовательскую строку состояния и пользовательскую команду предложения файлов @ одновременно Hooks and automation Any file
disableArtifact Устарело; используйте enableArtifact для отключения инструмента Artifact Remote, desktop, and notifications Any file
disableAutoMode Удалите авторежим из цикла режимов разрешений Permission settings Any file
disableBrowserExternalNavigation Ограничьте настольную панель Browser только localhost для людей и Claude Tools Managed
disableBundledSkills Отключите скиллы и рабочие процессы, включённые в Claude Code Plugins and skills Any file
disableClaudeAiConnectors Отключите коннекторы claude.ai, чтобы Claude Code их не получал MCP Any file
disableCommandPluginSources Блокируйте плагины, которые устанавливаются путём выполнения команды, объявленной маркетплейсом Plugins and skills Managed
disableDeepLinkRegistration Запретите Claude Code регистрировать обработчик claude-cli:// Remote, desktop, and notifications Any file
disableDesktopLocalSessions Отключите сессии Desktop Code, которые работают на устройстве, оставляя SSH к другим хостам и облако Remote, desktop, and notifications Managed
disabledMcpjsonServers Отклоняйте определённые серверы из .mcp.json проекта MCP Any file
disableMobileSimulatorTools Блокируйте инструменты Claude в настольной панели iOS Simulator Tools Managed
disableRemoteControl Отключите Remote Control везде, где он может запуститься Remote, desktop, and notifications Any file
disableSideloadFlags Отклоняйте флаги CLI, которые загружают плагины, субагенты и MCP-серверы в обход установки Enterprise and managed settings Managed
disableSkillShellExecution Запретите скиллам и пользовательским командам встроенное выполнение shell-команд Plugins and skills Any file
disableWorkflows Отключите динамические рабочие процессы для всех; используйте enableWorkflows для себя Hooks and automation Any file
editorMode Используйте сочетания клавиш vim в поле ввода промпта Interface and terminal Any file
effortLevel Установите уровень effort по умолчанию для моделей без собственного сохранённого уровня Model and responses Any file
emojiCompletionEnabled Отключите предложения и замену эмодзи :shortcode: в поле ввода промпта Interface and terminal Any file
enableAllProjectMcpServers Одобряйте каждый сервер в файлах проекта .mcp.json без запроса подтверждения MCP Any file
enableArtifact Отключите инструмент Artifact с помощью false в любом файле; ни один файл не может его включить обратно Remote, desktop, and notifications Any file
enabledMcpjsonServers Одобрите определённые серверы из .mcp.json проекта MCP Any file
enabledPlugins Включайте или отключайте отдельные плагины для каждой области действия Plugins and skills Any file
enableWorkflows Включайте или отключайте динамические рабочие процессы вопреки умолчанию вашего плана Hooks and automation Any file
enforceAvailableModels Держите выбор по умолчанию в /model в пределах вашего списка разрешённых моделей availableModels Model and responses Any file
env Установите переменные окружения для каждой сессии и её подпроцессов Memory and context Any file
externalEditorContext Показывайте последний ответ Claude как комментарии при нажатии Ctrl+G для редактирования Global config settings Global config
extraKnownMarketplaces Зарегистрируйте маркетплейсы для репозитория или организации Plugins and skills Any file
fallbackModel Назовите резервные модели на случай перегрузки основной Model and responses Any file
fastMode Включите быстрый режим для сессий, где он доступен Model and responses Any file
fastModePerSessionOptIn Требуйте, чтобы люди включали быстрый режим в каждой сессии Model and responses Any file
feedbackDrafts Контролируйте, ставит ли Claude в очередь черновики обратной связи для вашего рассмотрения Privacy and telemetry User or managed
feedbackSurveyRate Измените частоту появления опроса качества сессии Privacy and telemetry Any file
fileCheckpointingEnabled Отключите или включите снимки файлов, которые /rewind восстанавливает Memory and context Any file
fileSuggestion Предоставляйте автодополнение файлов @ из вашей собственной команды Interface and terminal Any file
footerLinksRegexes Превратите ID задач или рецензий в выводе в кликабельные ссылки под полем ввода Interface and terminal User or managed
forceLoginGatewayUrl Установите URL шлюза, к которому подключается экран входа Authentication and providers Managed
forceLoginMethod Ограничьте вход на claude.ai, Claude Console или облачный шлюз Authentication and providers Any file
forceLoginOrgUUID Привяжите входы claude.ai к вашей организации; только управляемый источник это обеспечивает Authentication and providers Any file
forceRemoteSettingsRefresh Блокируйте запуск до тех пор, пока настройки, управляемые сервером, не будут заново получены Enterprise and managed settings Managed
gatewayInternalNetworks Позвольте /login достичь облачного шлюза в общедоступном пространстве IPv4, которое ваша организация использует внутри Authentication and providers Managed
gcpAuthRefresh Обновляйте учётные данные Google Cloud с помощью вашей собственной команды Authentication and providers Any file
hooks Запускайте свои собственные команды как хуки в точках жизненного цикла Claude Code Hooks and automation Any file
httpHookAllowedEnvVars Ограничьте, какие переменные окружения HTTP-хуки могут помещать в заголовки Hooks and automation Any file
includeCoAuthoredBy Устарело; используйте attribution для скрытия или изменения атрибуции коммитов и PR Git and attribution Any file
includeGitInstructions Удалите встроенные инструкции для коммитов и PR из контекста Claude Git and attribution Any file
inputNeededNotifEnabled Получайте push-уведомление, когда Claude ждёт вас Remote, desktop, and notifications Any file
isolatePeerMachines Спрашивать вас перед тем, как Claude отправит сообщение одной из ваших сессий на другой машине Agents, sessions, and worktrees Any file
keybindingFlavor Устарело и не имеет эффекта; сочетания клавиш для редактирования слов всегда следуют соглашениям readline Interface and terminal Any file
language Попросите Claude отвечать на языке, отличном от английского Model and responses Any file
leftArrowOpensAgents Отключите сочетание клавиш ←, которое переводит сессию в фон и открывает представление агента Global config settings Global config
managedMcpServers Предоставляйте удалённые MCP-серверы каждому пользователю наряду с теми, которые они добавляют MCP Managed
managedSourcesBehavior Объединяйте каждый управляемый источник, который вы развёртываете, вместо использования только одного с наивысшим приоритетом Enterprise and managed settings Managed
maxEffortLevel Ограничьте уровень effort для всех моделей или для каждой модели отдельно, у любого поставщика Model and responses Any file
maxProseWidth Ограничьте ширину прозы в ответах Claude в широком терминале Interface and terminal Any file
minimumVersion Не позволяйте автоматическим обновлениям устанавливать версии ниже заданной Updates and versioning Any file
model Измените модель, с которой Claude Code начинает Model and responses Any file
modelOverrides Сопоставьте ID моделей с ID вашего поставщика, такими как Bedrock ARN Model and responses Any file
modelPicker Выберите, какие модели перечисляет средство выбора /model, в вашем собственном порядке и с вашими собственными метками Model and responses User or managed
modelPricing Сообщайте расходы по контрактным ставкам вашей организации вместо прейскурантной цены Model and responses Managed
modelSettings Сохраняйте уровень effort для каждой модели или ограничивайте effort одной модели Model and responses Any file
otelHeadersHelper Создавайте ротирующие заголовки OpenTelemetry с помощью вашей собственной команды Authentication and providers Any file
outputStyle Измените роль, тон и формат вывода Claude с помощью стиля вывода Model and responses Any file
parentSettingsBehavior Применяйте или отбрасывайте ограничения, которые хост SDK или IDE передаёт при развёртывании управляемых настроек Enterprise and managed settings Managed
permissionExplainerEnabled Удалено в v2.1.257 вместе с объяснением команды по Ctrl+E в запросах разрешений для shell-команд Global config settings Global config
permissions Установите правила разрешения, запроса и запрета и начальный режим разрешений Permission settings Any file
permissions.additionalDirectories Дайте Claude доступ к файлам в каталогах вне текущего Permission settings Any file
permissions.allow Одобряйте перечисленные использования инструментов без запроса подтверждения Permission settings Any file
permissions.ask Всегда запрашивайте подтверждение перед перечисленными использованиями инструментов Permission settings Any file
permissions.blockReadsOutsideWorkingDirectories Заставьте файловые инструменты отказываться от чтения вне рабочих каталогов в каждом режиме разрешений Permission settings Any file
permissions.defaultMode Установите режим разрешений, в котором начинаются новые сессии Permission settings Any file
permissions.deny Блокируйте перечисленные использования инструментов, включая чтение файлов, содержащих секреты Permission settings Any file
permissions.disableBypassPermissionsMode Запретите кому-либо входить в режим bypassPermissions Permission settings Any file
plansDirectory Выберите, где режим планирования записывает файлы плана Memory and context Any file
pluginConfigs Сохраняйте ответы, которые вы дали в диалоговом окне конфигурации плагина Plugins and skills User or managed
pluginSuggestionMarketplaces Выберите, какие маркетплейсы могут выводить предложения по установке плагинов в /plugin Plugins and skills Managed
pluginTrustMessage Добавьте свой собственный текст к предупреждению о доверии плагину Plugins and skills Managed
policyHelper Запустите исполняемый файл, который вычисляет управляемые настройки при запуске Enterprise and managed settings Managed
policyHelper.path Назовите вспомогательный исполняемый файл, который запускает Claude Code Enterprise and managed settings Managed
policyHelper.refreshIntervalMs Повторно запускайте вспомогательную программу в фоне с заданным интервалом Enterprise and managed settings Managed
policyHelper.timeoutMs Установите, как долго Claude Code ждёт вспомогательную программу Enterprise and managed settings Managed
preferredNotifChannel Выберите звонок терминала или уведомление рабочего стола для завершения задачи Remote, desktop, and notifications Any file
prefersReducedMotion Уменьшите или отключите анимацию спиннера, мерцания и вспышки Interface and terminal Any file
prependPlugins Запускайте моды вашей организации перед каждым модом, который устанавливает пользователь Plugins and skills User or managed
processWrapper Запускайте фоновые процессы Claude Code через корпоративный запускатель на macOS и Linux Agents, sessions, and worktrees User or managed
promptCacheTtl Выберите время жизни кэша промптов для основного диалога Model and responses Any file
promptSuggestionEnabled Скройте серые предложения промптов в поле ввода Interface and terminal Any file
prStatusFooterEnabled Отключите значок статуса ревью PR в нижней панели промпта и стоящую за ним проверку pull request Global config settings Global config
prUrlTemplate Направляйте ссылки на PR во внутренний инструмент код-ревью вместо github.com Git and attribution Any file
remote.defaultEnvironmentId Выберите облачную среду по умолчанию для claude --cloud; самостоятельно размещённый ID ccpool_ считывается только из пользовательских и управляемых настроек и --settings Remote, desktop, and notifications Any file
remoteControlAtStartup Подключайте Remote Control автоматически при запуске сессии Remote, desktop, and notifications Any file
requiredMaximumVersion Отказывайте в запуске на версии новее, чем позволяет ваша организация Updates and versioning Managed
requiredMinimumVersion Отказывайте в запуске на версии старше, чем требует ваша организация Updates and versioning Managed
respectGitignore Исключайте игнорируемые git файлы из средства выбора файлов @ Interface and terminal Any file
respondToBashCommands Запретите Claude отвечать после выполнения shell-команды с ! Interface and terminal Any file
sandbox Изолируйте команды Bash от вашей файловой системы и сети на macOS, Linux и WSL2 Sandbox settings Any file
sandbox.allowAppleEvents Позвольте изолированным командам отправлять Apple Events на macOS Sandbox settings User or managed
sandbox.allowUnsandboxedCommands Позвольте Claude повторить попытку выполнения заблокированной команды вне песочницы или запретите это Sandbox settings Any file
sandbox.autoAllowBashIfSandboxed Запускайте изолированные команды без запроса разрешения Sandbox settings Any file
sandbox.bwrapPath Укажите песочнице двоичный файл bubblewrap вне PATH Sandbox settings Managed
sandbox.credentials Скройте или замаскируйте файлы учётных данных и переменные внутри песочницы Sandbox settings Any file
sandbox.credentials.allowPlaintextInject Позвольте замаскированным учётным данным достигать простых HTTP-сервисов в доверенных тестовых сетях Sandbox settings User or managed
sandbox.credentials.awsPairs Свяжите переменные ключей AWS с пользовательскими именами в одни учётные данные для повторного подписания Sandbox settings User or managed
sandbox.credentials.envVars Удалите или замаскируйте переменную окружения внутри песочницы Sandbox settings Any file
sandbox.credentials.files Блокируйте или маскируйте чтение файла учётных данных внутри песочницы Sandbox settings Any file
sandbox.credentials.sigv4 Выберите, будут ли потоковые, предварительно подписанные или запросы AWS SigV4A завершаться ошибкой или пропускаться Sandbox settings User or managed
sandbox.enabled Включите изоляцию Bash в песочнице на macOS, Linux и WSL2 Sandbox settings Any file
sandbox.enableWeakerNestedSandbox Запускайте Linux-песочницу внутри непривилегированного контейнера Sandbox settings Any file
sandbox.enableWeakerNetworkIsolation Позвольте gh, gcloud и terraform проверять TLS за MITM-прокси внутри песочницы на macOS Sandbox settings Any file
sandbox.excludedCommands Назовите команды, которые Claude Code может запускать вне песочницы Sandbox settings Any file
sandbox.failIfUnavailable Отказывайте в запуске, когда песочница не может запуститься, вместо работы без изоляции Sandbox settings Any file
sandbox.filesystem Контролируйте, какие пути изолированные команды могут читать и записывать Sandbox settings Any file
sandbox.filesystem.allowManagedReadPathsOnly Запретите разработчикам повторно открывать пути чтения, которые заблокировала ваша организация Sandbox settings Managed
sandbox.filesystem.allowRead Повторно откройте чтение внутри области, которую блокирует denyRead Sandbox settings Any file
sandbox.filesystem.allowWrite Добавьте пути, в которые изолированные команды могут записывать Sandbox settings Any file
sandbox.filesystem.denyRead Запретите изолированным командам читать определённые пути Sandbox settings Any file
sandbox.filesystem.denyWrite Запретите изолированным командам записывать в определённые пути Sandbox settings Any file
sandbox.filesystem.disabled Отключите изоляцию файловой системы при сохранении изоляции сети Sandbox settings User or managed
sandbox.ignoreViolations Заглушите отчёты о нарушениях для путей, которые команда, как ожидается, будет проверять Sandbox settings Any file
sandbox.network Контролируйте, к каким хостам, портам и сокетам обращаются изолированные команды Sandbox settings Any file
sandbox.network.allowAllUnixSockets Позвольте изолированным командам подключаться к любому Unix-сокету Sandbox settings Any file
sandbox.network.allowedDomains Предварительно разрешите домены, чтобы изолированные команды не запрашивали их Sandbox settings Any file
sandbox.network.allowLocalBinding Позвольте изолированным командам прослушивать сетевые порты и подключаться к localhost на macOS Sandbox settings Any file
sandbox.network.allowMachLookup Позвольте изолированным инструментам macOS, таким как iOS Simulator или Playwright, достигать своих XPC-сервисов Sandbox settings Any file
sandbox.network.allowManagedDomainsOnly Ограничьте сетевой список разрешённых доменов управляемыми настройками Sandbox settings Managed
sandbox.network.allowUnixSockets Перечислите пути Unix-сокетов, которые изолированные команды могут использовать на macOS Sandbox settings Any file
sandbox.network.deniedDomains Блокируйте домены для изолированных команд, даже внутри разрешённого подстановочного шаблона Sandbox settings Any file
sandbox.network.httpProxyPort Направляйте HTTP-трафик песочницы через ваш собственный прокси Sandbox settings Any file
sandbox.network.socksProxyPort Направляйте SOCKS-трафик песочницы через ваш собственный прокси Sandbox settings Any file
sandbox.network.strictAllowlist Отказывайте хостам вне списка разрешённых вместо запроса Sandbox settings User or managed
sandbox.network.tlsTerminate Пусть прокси песочницы завершает TLS, чтобы он мог читать HTTPS-запросы Sandbox settings User or managed
sandbox.ripgrep Используйте свой собственный двоичный файл ripgrep внутри песочницы Sandbox settings User or managed
sandbox.socatPath Укажите прокси песочницы двоичный файл socat вне PATH Sandbox settings Managed
showClearContextOnPlanAccept Показывайте опцию "очистить контекст" на экране принятия плана Interface and terminal Any file
showThinkingSummaries Смотрите сводки размышлений Claude вместо свёрнутой заглушки Model and responses Any file
showTurnDuration Скройте длительность "Cooked for" после каждого ответа Interface and terminal Any file
skillListingBudgetFraction Зарезервируйте больше или меньше контекста для списка скиллов Memory and context Any file
skillListingMaxDescChars Ограничьте длину описания каждого скилла в списке скиллов Memory and context Any file
skillOverrides Скройте или сверните скилл без редактирования его SKILL.md Plugins and skills Any file
skipAutoPermissionPrompt Пропустите одноразовое уведомление, которое Claude Code показывает при первом входе в авторежим самостоятельно, а не через встроенное значение по умолчанию Permission settings User or managed
skipDangerousModePermissionPrompt Пропустите диалоговое окно подтверждения перед режимом bypassPermissions Permission settings User, local, or managed
skipWebFetchPreflight Пропустите проверку имени хоста WebFetch, когда Anthropic недоступен Privacy and telemetry Any file
spellcheck Подчёркивайте неправильно написанные слова в поле ввода промпта с помощью средства проверки орфографии, которое вы устанавливаете Interface and terminal User or managed
spinnerTipsEnabled Скройте советы в спиннере, пока Claude работает Interface and terminal Any file
spinnerTipsOverride Добавьте свои собственные советы к ротации спиннера или замените встроенные советы Interface and terminal Any file
spinnerVerbs Добавьте или замените глаголы, показываемые во время выполнения хода Interface and terminal Any file
sshConfigs Добавьте SSH-подключения в раскрывающееся меню сред Desktop Remote, desktop, and notifications User or managed
sshHostAllowlist Ограничьте, к каким хостам могут подключаться SSH-сессии Desktop Remote, desktop, and notifications Managed
statusLine Запустите свою собственную команду для отображения строки состояния под промптом Interface and terminal Any file
strictKnownMarketplaces Создайте список разрешённых источников маркетплейсов, которые пользователи могут добавлять и из которых могут устанавливать Plugins and skills Managed
strictPluginOnlyCustomization Блокируйте скиллы, агенты, хуки и MCP-серверы из пользовательских и проектных источников Plugins and skills Managed
strictPluginOnlyCustomization.agents Ограничьте агенты источниками из плагинов и управляемыми источниками Plugins and skills Managed
strictPluginOnlyCustomization.hooks Ограничьте хуки источниками из плагинов и управляемыми источниками Plugins and skills Managed
strictPluginOnlyCustomization.mcp Ограничьте MCP-серверы источниками из плагинов и управляемыми источниками Plugins and skills Managed
strictPluginOnlyCustomization.skills Ограничьте скиллы источниками из плагинов и управляемыми источниками Plugins and skills Managed
subagentPromptCacheTtl Выберите время жизни кэша промптов для субагентов и других запросов вне основного диалога Model and responses Any file
subagentStatusLine Переписывайте строки в отображении задач субагента с помощью вашей собственной команды Interface and terminal Any file
switchModelsOnFlag Переключайте модели автоматически или приостанавливайте работу, когда классификатор безопасности помечает запрос Model and responses Any file
syncClaudeAiPlugins Прекратите загрузку плагинов, включённых в вашей учётной записи claude.ai, и скачивание новых Plugins and skills User, local, or managed
syncClaudeAiSkills Прекратите загрузку скиллов, включённых в вашей учётной записи claude.ai, и скачивание новых Plugins and skills User, local, or managed
syntaxHighlightingDisabled Отключите подсветку синтаксиса в diff и блоках кода Interface and terminal Any file
taskOutputMaxChars Удалено в v2.1.277 вместе с инструментом TaskOutput, размер вывода которого оно определяло Memory and context Any file
teammateDefaultModel Удалено в v2.1.234; см. Укажите участников команды и модели, чтобы узнать, как Claude Code выбирает модель участника команды Global config settings Global config
teammateMode Выберите, как отображаются участники команды агентов Agents, sessions, and worktrees Any file
terminalProgressBarEnabled Скройте полосу прогресса терминала в терминалах, которые её поддерживают Interface and terminal Any file
terminalTitleFromRename Запретите /rename и --name изменять название вкладки терминала Interface and terminal Any file
theme Выберите цветовую тему интерфейса, встроенную или пользовательскую Interface and terminal Any file
timeFormat Показывайте время в интерфейсе в 12-часовом или 24-часовом формате, в UTC или с шаблоном strftime Interface and terminal Any file
timeZone Показывайте время в интерфейсе в часовом поясе, отличном от вашего системного Interface and terminal Any file
tui Выберите полноэкранный или классический рендерер терминала Interface and terminal Any file
ultracode Пусть Claude планирует рабочий процесс для каждой существенной задачи без отдельной просьбы Model and responses Any file
useAutoModeDuringPlan Позвольте классификатору авторежима проверять shell-команды в режиме планирования; установите false, чтобы вместо этого получать запросы подтверждения Permission settings User, local, or managed
verbose Показывайте полный вывод инструментов вместо усечённых сводок; viewMode имеет приоритет, когда установлены оба Interface and terminal Any file
viewMode Начинайте каждую сессию в представлении по умолчанию, подробном или сфокусированном Interface and terminal Any file
vimInsertModeRemaps Сопоставьте двухклавишную последовательность режима INSERT, такую как jj, с Escape Interface and terminal User or managed
voice Включите голосовую диктовку и выберите режим удержания или нажатия Interface and terminal Any file
voiceEnabled Включите голосовую диктовку с помощью более старой однокнопочной формы Interface and terminal Any file
wheelScrollAccelerationEnabled Отключите ускорение прокрутки колесом мыши при полноэкранном отображении Interface and terminal Any file
workflowKeywordTriggerEnabled Позвольте слову ultracode в промпте запускать рабочий процесс; установите false, чтобы вводить его без запуска Hooks and automation Any file
workflowSizeGuideline Установите количество агентов, к которому Claude стремится в динамических рабочих процессах Hooks and automation Any file
worktree Настройте, как Claude Code создаёт git worktrees Agents, sessions, and worktrees Any file
worktree.baseRef Создавайте новые worktrees от удалённой ветки по умолчанию или вашего локального HEAD Agents, sessions, and worktrees Any file
worktree.bgIsolation Позвольте фоновым сессиям редактировать рабочую копию без worktree Agents, sessions, and worktrees Any file
worktree.sparsePaths Извлекайте только необходимые вам каталоги в каждом worktree Agents, sessions, and worktrees Any file
worktree.symlinkDirectories Создавайте символические ссылки на большие каталоги в каждом worktree вместо их дублирования Agents, sessions, and worktrees Any file
wslInheritsWindowsSettings Пусть WSL читает управляемые настройки из цепочки политик Windows Enterprise and managed settings Managed

Модель и ответы

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

`advisorModel`

Выберите, какая модель отвечает, когда Claude вызывает серверный инструмент advisor. Оставьте его неустановленным, чтобы отключить advisor. Advisor должен быть по крайней мере столь же способным, как ваша основная модель. См. Выберите модель advisor для принятых пар и того, что происходит, когда вы выбираете неподдерживаемую.

Обычно вы не редактируете этот ключ вручную. Запустите /advisor, чтобы открыть средство выбора, которое показывает текущий выбор, модели, которые могут давать советы, и No advisor. Claude Code сохраняет ваш выбор в этот ключ в ~/.claude/settings.json. Если вы выбираете из клиента Remote Control или в сеансе, подключённом к удалённому рабочему процессу, выбор применяется только к этому сеансу и не изменяет этот ключ.

Если ваша учётная запись требует согласия на использование кредитов, сначала примите его, запустив /model fable. До этого выбор Fable в /advisor ничего не сохраняет, и Claude Code говорит вам сначала запустить /model fable.

  • Область действия: Any file
  • Тип: строка, один из псевдонимов "fable", "opus" или "sonnet", которые разрешаются в текущую версию Claude Code этого семейства моделей по умолчанию, или полный ID модели, такой как "claude-opus-5-5"
  • По умолчанию: не установлено, поэтому advisor отключён
  • Переопределения для каждого сеанса: --advisor имеет приоритет над этим ключом для одного сеанса. CLAUDE_CODE_DISABLE_ADVISOR_TOOL отключает advisor, и этот ключ не может его включить обратно
{
  "advisorModel": "opus"
}

Ключ не влияет на поставщиков, где advisor недоступен, такие как Amazon Bedrock и Claude Platform на AWS. "fable" требует доступа к Fable.

`alwaysThinkingEnabled`

Отключите расширенное мышление для каждого сеанса, установив это значение на false. Мышление включено по умолчанию, поэтому true ничего не меняет. Большинство людей устанавливают это через /config вместо редактирования файла.

На моделях, которые всегда думают, таких как Opus 5.5, Sonnet 5.5 и модели Fable, false не имеет эффекта. На сторонних поставщиках Claude Code опускает параметр thinking вместо отключения мышления, поэтому адаптивные модели рассуждений могут всё ещё думать. При отключении мышления на Anthropic API Claude Code отправляет effort high вместо более высокого уровня моделям, которые, как известно, не принимают эту комбинацию, такие как Opus 5.

  • Область действия: Any file
  • Тип: Boolean
    • true: нет эффекта; мышление уже включено
    • false: Claude Code отключает расширенное мышление для каждого сеанса
  • По умолчанию: не установлено, поэтому мышление включено для моделей, которые его поддерживают
  • Переопределения для каждого сеанса: MAX_THINKING_TOKENS имеет приоритет над этим ключом для одного сеанса: 0 отключает мышление в соответствии с теми же ограничениями модели и поставщика, что и false, а положительное значение включает мышление даже когда этот ключ false. На адаптивных моделях рассуждений само число игнорируется
{
  "alwaysThinkingEnabled": false
}

`availableModels`

Ограничьте, какие модели люди могут выбрать для основного сеанса, подагентов, skills и advisor. Управляемый список ограничивает /model, --model и ключ model в собственных файлах разработчика; модель вне списка не может быть выбрана. С сопоставлением префиксов по умолчанию это не трогает опцию Default саму по себе; объедините её с enforceAvailableModels для этого.

  • Область действия: Any file. Разверните его в управляемых параметрах, чтобы применить его для организации.
  • Тип: массив псевдонимов моделей или ID
  • По умолчанию: не установлено, поэтому каждая модель доступна

Этот пример позволяет людям выбирать только модели Sonnet и Haiku:

{
  "availableModels": ["sonnet", "haiku"]
}

Запись ID модели, такая как "claude-opus-5", также разрешает более поздние версии, которые её расширяют, такие как Opus 5.5. Чтобы заблокировать одну из этих версий, используйте deniedModels. Чтобы каждая запись ID модели разрешала только названную ею версию, используйте availableModelsMatch. См. Ограничить выбор модели.

`availableModelsMatch`

Выберите, как записи availableModels соответствуют ID моделей. По умолчанию запись ID модели также разрешает более поздние версии, которые её расширяют, поэтому "claude-opus-5" разрешает Opus 5.5. С "exact" каждая запись ID модели разрешает только названную ею версию, поэтому более новая версия этой модели остаётся заблокированной, пока вы её не перечислите. Требует Claude Code v2.1.283 или позже.

  • Область действия: Managed. Claude Code игнорирует ключ в пользовательских, проектных и локальных параметрах и в --settings с предупреждением
  • Тип: строка, один из:
    • "prefix": запись ID модели разрешает её версию и любой ID модели, который её расширяет другим сегментом
    • "exact": запись ID модели разрешает только названную ею версию, включая датированные ID этой версии, поэтому "claude-opus-5" разрешает Opus 5, но не claude-opus-5-5. Псевдоним семейства, такой как "opus", всё ещё разрешает всё семейство, и записи best, opusplan и default игнорируются
  • По умолчанию: "prefix"

Этот пример разрешает Opus 5 и Sonnet 5 и не позволяет более позднему выпуску любого из них:

{
  "availableModels": ["claude-opus-5", "claude-sonnet-5"],
  "availableModelsMatch": "exact"
}

С "exact" опция Default также ограничена перечисленными моделями, когда список называет по крайней мере одну модель или семейство. См. Заблокировать определённые модели или версии.

`deniedModels`

Заблокируйте определённые модели, с или без списка разрешений availableModels и даже когда этот список их разрешает. Claude Code скрывает заблокированную модель из средства выбора /model, и модель не может быть выбрана нигде, где применяется availableModels. Сеанс на опции Default также не запускает заблокированную модель, как описано в Заблокировать определённые модели или версии. Требует Claude Code v2.1.283 или позже.

  • Область действия: Managed. Claude Code игнорирует ключ в пользовательских, проектных и локальных параметрах и в --settings с предупреждением
  • Тип: массив псевдонимов моделей или ID
    • Псевдоним семейства, такой как "opus", блокирует каждую модель в этом семействе
    • ID модели, такой как "claude-opus-5-5", блокирует эту версию в каждом написании, включая датированные и специфичные для поставщика ID
    • ID модели без младшей версии, такой как "claude-opus-5", также блокирует более поздние младшие версии, такие как Opus 5.5. Напишите "claude-opus-5-0", чтобы заблокировать только Opus 5
    • Записи best, opusplan и default игнорируются
  • По умолчанию: не установлено, поэтому ни одна модель не заблокирована

Этот пример разрешает модели Opus и Sonnet и блокирует Opus 5.5:

{
  "availableModels": ["opus", "sonnet"],
  "deniedModels": ["claude-opus-5-5"]
}

См. Заблокировать определённые модели или версии.

`effortLevel`

Установите уровень effort по умолчанию для моделей, для которых вы не сохранили уровень. Более низкие уровни быстрее и дешевле на простых задачах, а более высокие уровни рассуждают глубже на сложных проблемах.

Когда вы запускаете /effort low, medium, high или xhigh в интерактивном сеансе на вашей машине, Claude Code сохраняет уровень для активной модели под modelSettings вместо записи этого ключа. До v2.1.251 /effort записывал этот ключ.

В одном файле параметров Claude Code использует сохранённый уровень модели вместо этого ключа. modelSettings указывает приоритет между файлами.

В сеансе, подключённом к удалённому рабочему процессу, в запуске -p и в Agent SDK /effort применяется только к этому сеансу. Отрегулировать уровень effort перечисляет интерактивные выборы, которые также применяются только к этому сеансу. Сообщение, которое печатает /effort, говорит, что произошло.

  • Область действия: Any file
  • Тип: строка, один из:
    • "low": наименьшее рассуждение для коротких, ограниченных, чувствительных к задержкам задач, которые не требуют высокого интеллекта
    • "medium": снижает использование токенов для работы, чувствительной к затратам, которая может пожертвовать некоторым интеллектом
    • "high": балансирует использование токенов и интеллект
    • "xhigh": более глубокое рассуждение при более высоких затратах токенов
  • По умолчанию: не установлено
  • Переопределения для каждого сеанса: --effort имеет приоритет над этим ключом для одного сеанса, и CLAUDE_CODE_EFFORT_LEVEL имеет приоритет над обоими
{
  "effortLevel": "xhigh"
}

В файле пользовательских параметров ~/.claude/settings.json этот ключ является более старой формой, которую /effort записывал до того, как он сохранял уровни для каждой модели, и он продолжает применяться там, где применялся раньше, на Opus 5, Fable 5.1 и более ранних моделях. Opus 5.5 и модели, выпущенные после него, игнорируют его и начинают со своего собственного значения по умолчанию, пока вы не сохраните уровень для них, который /effort записывает под modelSettings. В проектных, локальных и управляемых параметрах и с --settings этот ключ применяется к каждой модели.

`enforceAvailableModels`

Средство выбора /model имеет опцию Default, и default параметр модели описывает модель, на которую она разрешается. Список разрешений availableModels ограничивает модели, которые вы можете назвать, но с сопоставлением префиксов по умолчанию он не переопределяет модель по умолчанию вашего типа учётной записи, поэтому Default всё ещё может разрешиться в модель вне списка. Этот ключ закрывает этот пробел. Требует Claude Code v2.1.175 или позже.

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

  • Область действия: Any file
  • Тип: Boolean
    • true: когда Default разрешился бы в модель вне availableModels, Claude Code разрешает его в первую доступную модель в списке
    • false: этот ключ не меняет, как разрешается Default
  • По умолчанию: false

Этот пример ограничивает именованные выборы моделями Sonnet и Haiku и делает Default разрешаемым в первую из них, которая доступна:

{
  "availableModels": ["sonnet", "haiku"],
  "enforceAvailableModels": true
}

Этот ключ не имеет эффекта, когда availableModels не установлен или пуст. См. Применить список разрешений для модели Default. Требует Claude Code v2.1.175 или позже.

`fallbackModel`

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

Переключение означает один ход с холодным кэшем подсказок на резервной модели; ваше следующее сообщение сначала снова пытается использовать основную модель.

  • Область действия: Any file
  • Тип: массив псевдонимов моделей или ID; "default" расширяется в модель по умолчанию
  • По умолчанию: не установлено, поэтому неудачный запрос не повторяется на другой модели
  • Переопределения для каждого сеанса: --fallback-model имеет приоритет над этим ключом для одного сеанса

Этот пример сначала пытается Sonnet 5, затем Haiku 4.5, когда ваша основная модель не работает:

{
  "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}

В отличие от большинства параметров массива, этот ключ не объединяется между файлами параметров: файл с наивысшим приоритетом, который его определяет, поставляет всю цепь. Если ваш файл проекта устанавливает ["claude-sonnet-5"] и ваш файл пользователя устанавливает ["claude-haiku-4-5"], цепь — это только ["claude-sonnet-5"]. Claude Code сохраняет не более трёх различных разрешённых моделей из списка и игнорирует остальные. См. Цепи резервных моделей.

`fastMode`

Включите быстрый режим для сеансов, где он доступен, для интерактивной работы, такой как быстрая итерация или живая отладка, где вы хотите скорость при более высокой стоимости за токен. Обычно вы не редактируете этот ключ вручную: запуск /fast записывает fastMode: true в ~/.claude/settings.json, и запуск его снова, чтобы отключить быстрый режим, удаляет ключ. Быстрый режим работает только на Opus 5.5, Opus 5 и Opus 4.8: включение его с другой модели переключает вас на Opus, а переключение на неподдерживаемую модель отключает его. См. Переключить модели, пока быстрый режим включён.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code включает быстрый режим для сеансов, где он доступен
    • false: быстрый режим остаётся отключённым
  • По умолчанию: не установлено, поэтому быстрый режим отключён
  • Переопределения для каждого сеанса: CLAUDE_CODE_DISABLE_FAST_MODE отключает быстрый режим для одного сеанса, и этот ключ не может его включить обратно
{
  "fastMode": true
}

`fastModePerSessionOptIn`

Обычно запуск /fast сохраняет fastMode в пользовательские параметры человека, поэтому быстрый режим включён в начале каждого последующего сеанса. Установите этот ключ на true, чтобы остановить это: сохранённый fastMode: true больше не включает быстрый режим при запуске сеанса, и каждый человек должен запустить /fast в каждом сеансе, в котором он его хочет. Claude Code оставляет ключ fastMode в их файле, поэтому отключение этого ключа восстанавливает старое поведение.

Владельцы на планах Team или Enterprise могут развернуть его организационно через управляемые параметры сервера. Когда управляемые параметры устанавливают ключ, /fast on отклоняется вне интерактивных сеансов терминала и сообщает, что ваша организация отключила быстрый режим. Это охватывает неинтерактивный режим, расширение VS Code и облачные сеансы.

  • Область действия: Any file
  • Тип: Boolean
    • true: сохранённый fastMode: true больше не включает быстрый режим при запуске сеанса, поэтому каждый человек запускает /fast в каждом сеансе, в котором он его хочет; fastMode: true, переданный с --settings, всё ещё считается для этого сеанса, если только управляемые параметры не устанавливают этот ключ
    • false: сохранённый fastMode: true включает быстрый режим в начале каждого последующего сеанса
  • По умолчанию: false
{
  "fastModePerSessionOptIn": true
}

См. Требовать согласие для каждого сеанса.

`language`

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

  • Область действия: Any file
  • Тип: строка, любое имя языка, такое как "japanese", "spanish" или "french"; Claude Code не проверяет его
  • По умолчанию: не установлено; названия сеансов затем соответствуют языку вашего разговора
{
  "language": "japanese"
}

`maxEffortLevel`

Ограничьте уровень effort, который может использовать сеанс, оставляя доступными более низкие уровни. Любой более высокий уровень вместо этого работает на уровне ограничения, включая один из /effort, средства выбора /model, --effort, CLAUDE_CODE_EFFORT_LEVEL, frontmatter effort skill или subagent, или собственное значение по умолчанию модели. Claude Code применяет ограничение сам перед каждым запросом, поэтому оно действует на каждом поставщике, включая Amazon Bedrock, Agent Platform Google Cloud и Microsoft Foundry. Требует Claude Code v2.1.267 или позже.

  • Область действия: Any file. Разверните его в управляемых параметрах, чтобы применить его для организации. Когда несколько областей устанавливают ограничение, применяется самое низкое, поэтому ограничение, установленное в одной области, не может быть повышено из другой
  • Тип: строка, один из "low", "medium", "high", "xhigh" или "max". Значение "max" не устанавливает ограничение
  • По умолчанию: не установлено, поэтому ограничение не применяется
  • Ограничения для каждой модели: добавьте maxEffortLevel в запись modelSettings модели. Эта запись заменяет этот ключ только для модели в источнике параметров, который устанавливает оба, такие как ваши пользовательские параметры или один управляемый источник. Установите "max" там, чтобы освободить модель от ограничения этого источника; Claude Code всё ещё применяет ограничения из других источников

Этот пример ограничивает каждую модель на medium и освобождает Sonnet 4.6:

{
  "maxEffortLevel": "medium",
  "modelSettings": {
    "claude-sonnet-4-6": {
      "maxEffortLevel": "max"
    }
  }
}

Когда ваша организация также устанавливает лимит effort для модели, применяется более низкое из двух ограничений.

`model`

Установите модель, которую каждый новый сеанс использует, чтобы вам не пришлось выбирать её с помощью /model каждый раз. Установка её здесь не мешает вам переключаться в середине сеанса. Если ваш администратор установил организационную модель по умолчанию для переопределения выбора пользователя, вы получаете эту модель даже когда устанавливаете этот ключ в пользовательских, проектных или локальных параметрах.

  • Область действия: Any file
  • Тип: строка, псевдоним модели или полный ID модели
  • По умолчанию: не установлено, поэтому Claude Code использует модель по умолчанию вашей учётной записи
  • Переопределения для каждого сеанса: --model имеет приоритет над ANTHROPIC_MODEL, и оба имеют приоритет над этим ключом для одного сеанса, включая управляемый model; список availableModels всё ещё применяется к выбору
{
  "model": "claude-sonnet-5"
}

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

`modelOverrides`

Сопоставьте ID моделей Anthropic с ID моделей, специфичными для поставщика, такими как ARN профилей вывода Amazon Bedrock. Каждая запись средства выбора модели затем использует своё сопоставленное значение при вызове API поставщика. Администраторы используют это на Amazon Bedrock, Agent Platform Google Cloud и Microsoft Foundry для маршрутизации каждой версии модели на определённый профиль вывода, имя версии или развёртывание для управления, распределения затрат или региональной маршрутизации.

  • Область действия: Any file
  • Тип: объект, сопоставляющий ID модели с ID модели поставщика
  • По умолчанию: не установлено

Этот пример маршрутизирует каждый вызов для Opus 4.6 на названный профиль вывода Bedrock:

{
  "modelOverrides": {
    "claude-opus-4-6": "arn:aws:bedrock:us-east-1:123456789012:inference-profile/example"
  }
}

См. Переопределить ID моделей для каждой версии.

`modelPicker`

Перечислите модели, которые предлагает средство выбора /model, в порядке, в котором вы их пишете, и под выбранными вами метками, чтобы средство выбора перечисляло модели, которые использует ваша организация, после встроенного набора или вместо него. model каждой строки берётся дословно, поэтому он принимает всё, что принимает --model: псевдоним, такой как opus, ID модели Anthropic или ID формата поставщика для Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry или шлюза LLM. Требует Claude Code v2.1.242 или позже.

  • Область действия: User or managed. Claude Code читает ключ из управляемых параметров, --settings и пользовательских параметров и игнорирует его в проектных и локальных параметрах, поэтому репозиторий, который вы клонируете, не может переименовать средство выбора. Самый высокий из этих трёх, который устанавливает ключ, поставляет весь набор, и Claude Code никогда не объединяет наборы из двух источников.
  • Тип: объект с массивом options строк и необязательным Boolean replaceBuiltInOptions
  • По умолчанию: не установлено, поэтому средство выбора показывает встроенный набор

Этот пример добавляет два развёртывания Bedrock после встроенного набора, под именами, которые ваша команда узнаёт:

{
  "modelPicker": {
    "options": [
      { "model": "us.anthropic.claude-opus-4-8", "label": "Opus (production)" },
      {
        "model": "us.anthropic.claude-sonnet-4-6",
        "label": "Sonnet (production)",
        "description": "Day-to-day work"
      }
    ]
  }
}

Поля для `modelPicker`

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

Поле Тип Что оно делает
options массив строк, каждая с обязательным model и необязательными label, description и behavesAs Строки, которые показывает средство выбора, в этом порядке, за исключением того, что затемнённая строка перемещается в конец. Без label Claude Code озаглавливает строку встроенным именем для модели, которую он знает, или ID модели в противном случае, и без description он пишет общую вторую строку
replaceBuiltInOptions Boolean, по умолчанию false Установите на true, чтобы показать только эти строки, Default и строку для модели, которую сеанс уже использует. Оставьте неустановленным, чтобы добавить эти строки после встроенного набора

Запись в options также может нести необязательную строку behavesAs рядом с её model, что требует v2.1.257 или позже. Установите её на ID модели, которую ваша версия Claude Code уже знает, такой как claude-opus-4-8, на запись, чей model новее, чем ваша версия. Claude Code затем применяет возможности этой известной модели и значения по умолчанию effort к записи вместо обработки её модели как неизвестной. Метка записи и ID модели, которые Claude Code отправляет в запросах, не меняются.

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

Список разрешений availableModels всё ещё применяется к этим строкам. Прежде чем добавить перечисленную модель в список разрешений, прочитайте Поведение объединения: определённый ID модели сужает запись подстановочного знака своего семейства. Claude Code также проверяет каждую строку против сеанса перед тем, как показать средство выбора:

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

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

`modelPricing`

Сообщайте о расходах по ставкам, которые платит ваша организация, вместо цены списка. Установите это, когда ваша организация имеет согласованные ставки, поэтому цифры в долларах, которые видят разработчики, соответствуют вашему счёту. Claude Code применяет ставки в /usage, строке состояния, total_cost_usd Agent SDK, лимите --max-budget-usd и OpenTelemetry метрике затрат и событиях. Вы поставляете ставки: Claude Code не читает их из вашего контракта или Claude Console. Требует Claude Code v2.1.242 или позже.

  • Область действия: Managed. Разверните ключ через управляемые параметры сервера, политику MDM, файл managed-settings.json или помощник политики. Claude Code игнорирует его в пользовательских, проектных и локальных параметрах, в --settings и на Windows в пользовательском реестре HKCU. С управляемыми параметрами сервера каждый сеанс сообщает затраты по цене списка, пока выборка параметров этого сеанса не подтвердит параметр. Приложение-хост, которое встраивает Claude Code и устанавливает CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, может поставить таблицу своего собственного через опцию SDK managedSettings, которую Claude Code использует только когда ни один управляемый источник не устанавливает ключ и только в Claude Code v2.1.246 или позже.
  • Тип: объект с необязательным multiplier и необязательной картой overrides
  • По умолчанию: не установлено, поэтому Claude Code сообщает цену списка, если приложение-хост не поставляет таблицу

Установите multiplier один для плоской скидки или надбавки, overrides один для ставок для каждой модели или оба.

Этот пример устанавливает согласованные ставки для Sonnet 4.6 и затем снижает каждую цифру, включая строку Sonnet, на 15%:

{
  "modelPricing": {
    "multiplier": 0.85,
    "overrides": {
      "claude-sonnet-4-6": {
        "input": 2.4,
        "output": 12,
        "cacheRead": 0.24,
        "cacheWrite": 3
      }
    }
  }
}

Установите multiplier выше 1, до 10, чтобы отметить каждую цифру. Надбавка требует Claude Code v2.1.271 или позже. Более ранние версии игнорируют multiplier выше 1 с предупреждением и сохраняют остальную часть параметра.

Для шагов, включая как подтвердить, что ставки действуют, см. Сообщить о расходах по вашим согласованным ставкам.

Поля для `modelPricing`

Поле Тип Что оно делает
multiplier число больше 0 и не более 10 Масштабирует каждую стоимость, которую вычисляет Claude Code, независимо от того, охватывает ли её строка overrides. Ниже 1 — скидка, выше 1 — надбавка
overrides карта ID модели на объект ставки с input, output, cacheRead и cacheWrite, каждый от 0 до 10000 Ставки USD за миллион токенов для этой модели, все четыре обязательны. cacheWrite охватывает как пятиминутные, так и одночасовые записи кэша. См. Какие модели применяет строка modelPricing

Claude Code использует ставки строки ровно так, как вы их написали, без добавления надбавки быстрого режима или ставки только для США. Если вы также установите multiplier, Claude Code применяет его поверх ставок строки. Claude Code удаляет строку со ставкой, которую он не может разобрать, или multiplier, который он не может разобрать, и сохраняет остальные; см. Исправить сломанный файл параметров.

Какие модели применяет строка `modelPricing`

Claude Code решает, какие модели применяет строка, из ключа строки:

  • ID встроенной модели: ключ, который сам Claude Code использует для встроенной модели, независимо от того, является ли этот ключ собственным ID модели, таким как claude-sonnet-4-6, или её ID Bedrock, Agent Platform или Foundry. Claude Code применяет строку к каждому датированному ID снимка и ID, специфичному для поставщика, этой модели.
  • Любой другой ключ: ключ, который не является ID встроенной модели, такой как псевдоним модели шлюза. Claude Code применяет строку только к этому одному ID. Когда ID модели точно совпадает с одним из ваших ключей и также попадает под строку, ключ которой является ID встроенной модели, Claude Code использует точное совпадение.
  • Профиль вывода приложения Bedrock: как только Claude Code разрешил профиль в модель, на которую он маршрутизирует, через вашу карту modelOverrides или поиск bedrock:GetInferenceProfile, Claude Code применяет строку этой модели к профилю.

`modelSettings`

Сохраните уровень effort для каждой модели, которую вы используете. Требует Claude Code v2.1.251 или позже.

В интерактивном сеансе на вашей машине, когда вы сохраняете low, medium, high или xhigh как свой стандарт с помощью /effort или ползунка effort средства выбора /model, Claude Code записывает этот уровень здесь под моделью, которую вы используете, поэтому вы редко редактируете этот ключ сами. Когда вы выбираете один из этих уровней в средстве выбора модели расширения VS Code, Claude Code сохраняет его здесь так же. Запись effortLevel перечисляет сеансы, где /effort применяется только к этому сеансу.

Отредактируйте ключ вручную, чтобы изменить или удалить уровень, который вы сохранили.

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

Чтобы ограничить effort одной модели вместо установки её уровня, добавьте поле maxEffortLevel в запись modelSettings этой модели. Поле требует Claude Code v2.1.267 или позже.

  • Область действия: Any file
  • Тип: объект, сопоставляющий имя модели с объектом с полем effortLevel, один из "low", "medium", "high" или "xhigh", полем maxEffortLevel или обоими
  • По умолчанию: не установлено

Claude Code записывает каждую запись под каноническим именем модели, таким как claude-opus-5-5, и сопоставляет псевдоним этой модели, датированный, [1m] и признанные ID, специфичные для поставщика, с той же записью.

Этот пример сохраняет Opus 5.5 на high, пока другие модели используют свои собственные сохранённые или стандартные уровни:

{
  "modelSettings": {
    "claude-opus-5-5": {
      "effortLevel": "high"
    }
  }
}

Запустите /effort auto, чтобы очистить ваш сохранённый уровень для модели, которую вы используете. Claude Code оставляет другие записи и любой верхний уровень effortLevel на месте.

`outputStyle`

Выберите стиль вывода по имени. Стиль вывода — это сохранённый набор инструкций, который меняет роль Claude, тон и формат вывода, такой как встроенные стили Explanatory и Learning или один, который вы написали сами.

Если вы измените этот ключ во время сеанса, Claude использует новый стиль, начиная со следующего сообщения. Для того, что это сообщение стоит в кэшировании подсказок, см. Изменение стиля вывода. До v2.1.251 редактирование применялось только после запуска /clear или запуска нового сеанса.

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

{
  "outputStyle": "Explanatory"
}

`promptCacheTtl`

Выберите, как долго кэш подсказок держит основной разговор. Этот ключ применяется к вашим интерактивным, -p и Agent SDK ходам, вместе с помощниками, которые Claude Code запускает встроенно с ними. Одночасовой срок жизни сохраняет кэш в тепле на более длительные перерывы, и API выставляет счёт за каждую запись кэша по более высокой ставке, чем при пятиминутном сроке жизни. Требует Claude Code v2.1.242 или позже.

Этот пример сохраняет основной разговор на одночасовом сроке жизни и оставляет подагентов на пять минут:

{
  "promptCacheTtl": "1h",
  "subagentPromptCacheTtl": "5m"
}

Для того, что стоит каждый срок жизни, см. Срок жизни кэша.

`showThinkingSummaries`

Смотрите резюме расширенного мышления Claude в интерактивных сеансах. Установите это, если вы хотите полные резюме, когда вы расширяете мышление с помощью Ctrl+O. Когда не установлено или false, Anthropic API редактирует блоки мышления и Claude Code показывает свёрнутый заглушку; сторонние поставщики не редактируют.

  • Область действия: Any file
  • Тип: Boolean
    • true: вы видите полные резюме мышления, когда расширяете мышление с помощью Ctrl+O
    • false: Anthropic API редактирует блоки мышления и Claude Code показывает свёрнутый заглушку
  • По умолчанию: false
{
  "showThinkingSummaries": true
}

Редактирование меняет только то, что вы видите, а не то, что генерирует модель. Чтобы снизить расходы на мышление, снизьте бюджет или отключите мышление вместо этого.

`subagentPromptCacheTtl`

Выберите, как долго кэш подсказок держит запросы, которые Claude Code делает вне основного разговора. Этот ключ применяется к подагентам, workflows и собственным фоновым и вспомогательным запросам Claude Code, таким как компактирование и названия сеансов. Одночасовой срок жизни сохраняет кэш в тепле на более длительные перерывы, и API выставляет счёт за каждую запись кэша по более высокой ставке, чем при пятиминутном сроке жизни. Требует Claude Code v2.1.242 или позже.

  • Область действия: Any file
  • Тип: строка, один из:
    • "5m": кэш держится пять минут
    • "1h": кэш держится час
  • По умолчанию: не установлено, поэтому каждый из этих запросов получает его стандартный срок жизни
  • Переопределения для каждого сеанса: FORCE_PROMPT_CACHING_5M имеет приоритет над всем остальным, затем CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL, затем этот ключ, затем ENABLE_PROMPT_CACHING_1H, который просит одночасовой срок жизни на каждом запросе. Для того, где значение frontmatter подагента занимает место, см. Выберите TTL сами

Этот пример даёт подагентам и другим запросам вне основного разговора одночасовой срок жизни:

{
  "subagentPromptCacheTtl": "1h"
}

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

`switchModelsOnFlag`

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

  • Область действия: Any file. Появляется в /config как Switch models when a message is flagged.
  • Тип: Boolean
    • true: Claude Code переключается на резервную модель и продолжает
    • false: в интерактивном сеансе Claude Code приостанавливается, чтобы вы могли выбрать между переключением и редактированием подсказки; где диалог не может показаться, такой как запуск -p, помеченный запрос заканчивается как ошибка
  • По умолчанию: true, переключаться автоматически
{
  "switchModelsOnFlag": false
}

См. Спросить перед переключением.

`ultracode`

Начните сеансы с ultracode включённым. С ним включённым Claude планирует workflow для каждой существенной задачи вместо ожидания, пока вы попросите. Claude планирует workflows только когда динамические workflows включены для вас и ваша модель поддерживает xhigh effort. Ключ не меняет уровень effort сеанса: ultracode работает на любом уровне, который использует сеанс. Claude Code читает этот ключ, но никогда его не записывает: /effort ultracode включает ultracode только для текущего сеанса.

  • Область действия: Any file
  • Тип: Boolean
    • true: сеансы начинаются с ultracode включённым, когда динамические workflows включены для вас и ваша модель поддерживает xhigh
    • false: сеансы начинаются с ultracode отключённым
  • По умолчанию: не установлено, поэтому ultracode отключён
  • Переопределения для каждого сеанса: /effort ultracode включает ultracode для одного сеанса без этого ключа, и /effort ultracode off отключает его для одного сеанса, когда этот ключ true. Флаг --effort ultracode также включает его для одного сеанса, на xhigh effort, и требует Claude Code v2.1.203 или позже
{
  "ultracode": true
}

Уровень effort сеанса поступает из effortLevel, modelSettings и других источников effort, и ограничение effort, такое как maxEffortLevel, снижает этот уровень без отключения ultracode. Это и форма /effort ultracode off требуют Claude Code v2.1.284 или позже. До v2.1.284 ultracode: true запускал сеанс на xhigh effort, и ограничение effort ниже xhigh держало ultracode отключённым. Запрос управления apply_flag_settings Agent SDK также принимает ключ.

Настройки разрешений

Решите, что Claude может делать без запроса, в каком режиме разрешений начинается сессия и что позволяет классификатор авторежима. Синтаксис правил и модель разрешений см. в разделе Настройка разрешений.

`allowManagedPermissionRulesOnly`

Сделайте управляемые настройки единственным источником правил разрешений среди настроек. Claude Code затем игнорирует правила allow, ask и deny в пользовательских, проектных, локальных файлах и файлах --settings, игнорирует --allowedTools, скрывает варианты «всегда разрешать» в запросах разрешений и прекращает сохранение новых правил.

Когда применяются родительские настройки от хоста встраивания, Claude Code рассматривает их как часть управляемого уровня. Он отбрасывает их правила allow и additionalDirectories и сохраняет их правила deny и ask, кроме правил Read и Edit, шаблон которых начинается с !. Хост не может исключить пути из управляемых правил с помощью правила !, независимо от того, установлен ли этот ключ.

Правила --disallowedTools и правила deny и ask текущей сессии по-прежнему применяются, в том числе после перезагрузки настроек Claude Code посреди сессии. Они только ограничивают, поэтому не могут расширить то, что разрешают управляемые правила. До версии 2.1.257 Claude Code отбрасывал эти правила командной строки и сессии при первой перезагрузке настроек.

О том, что может исключить шаблон ! в правиле --disallowedTools или в правиле сессии, см. Правила Read и Edit.

Когда вы устанавливаете этот ключ, Claude Code v2.1.282 или новее также игнорирует frontmatter allowed-tools в скиллах и файлах .claude/commands/ из следующих источников:

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

  • Область действия: Managed
  • Тип: Boolean
    • true: управляемые настройки становятся единственным источником правил разрешений среди настроек
    • false: Claude Code применяет правила разрешений из пользовательских, проектных, локальных файлов и файлов --settings в дополнение к управляемым
  • По умолчанию: не установлено, поэтому Claude Code применяет правила разрешений из пользовательских, проектных и локальных настроек, а также из --settings, в дополнение к управляемым
{
  "allowManagedPermissionRulesOnly": true
}

Этот ключ не фиксирует список разрешённых MCP-серверов; для этого установите allowManagedMcpServersOnly. См. Настройки только для управляемого уровня.

`autoMode`

Добавьте собственные правила к тому, что блокирует и разрешает классификатор авторежима. Используйте его, чтобы сообщить классификатору, каким репозиториям, бакетам и доменам доверяет ваша организация, чтобы он перестал блокировать рутинные внутренние операции. Классификатор поставляется со встроенными разрешающими и запрещающими правилами. Включите в массив буквальную строку "$defaults", чтобы сохранить встроенные правила в этой позиции и добавить свои вокруг них; опустите её, чтобы заменить встроенные правила своими.

  • Область действия: User or managed
  • Тип: объект с массивами правил в свободной форме environment, allow, soft_deny и hard_deny, а также Boolean classifyAllShell
  • По умолчанию: не установлено, поэтому классификатор использует только свои встроенные правила

Этот пример сохраняет встроенные правила soft_deny через "$defaults" и добавляет ещё одно, которое блокирует terraform apply:

{
  "autoMode": {
    "soft_deny": ["$defaults", "Never run terraform apply"]
  }
}

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

`autoMode.classifyAllShell`

Отправляйте каждую команду Bash и PowerShell через классификатор авторежима, пока авторежим активен. По умолчанию авторежим приостанавливает только разрешающие правила, которые могут запускать произвольный код: правила на весь инструмент и правила с подстановочными знаками, такие как Bash(*), а также префиксы интерпретаторов или обёрток оболочки, такие как Bash(python *). Команда, которой соответствует любое другое разрешающее правило, например Bash(npm test), минует классификатор, если только у неё нет разрешённых доменов для отдельной команды. Когда команда минует классификатор, деструктивный аргумент, который префикс правила не предусмотрел, может пройти незамеченным. Установка этого ключа приостанавливает все разрешающие правила для оболочки на время сессии, чтобы классификатор видел каждую команду. Требуется Claude Code v2.1.193 или новее.

  • Область действия: User or managed. Читается везде, где читается autoMode.
  • Тип: Boolean
    • true: пока авторежим активен, Claude Code отправляет каждую команду Bash и PowerShell через классификатор и приостанавливает ваши разрешающие правила для оболочки; вне авторежима правила по-прежнему применяются
    • false: авторежим приостанавливает только разрешающие правила, которые могут запускать произвольный код, такие как Bash(*) и Bash(python *); команда, которой соответствует любое другое разрешающее правило, минует классификатор, если только у неё нет разрешённых доменов для отдельной команды, а все остальные shell-команды проходят через него
  • По умолчанию: false
{
  "autoMode": {
    "classifyAllShell": true
  }
}

См. Направление всех shell-команд через классификатор. Требуется Claude Code v2.1.193 или новее.

`disableAutoMode`

Удалите авторежим из цикла Shift+Tab. Любая сессия, которая в противном случае начиналась бы в авторежиме, будь то из-за --permission-mode auto, файла настроек или встроенного значения по умолчанию, вместо этого начинается в default. Администраторы задают этот ключ в управляемых настройках, чтобы запретить разработчикам своей организации использовать авторежим.

  • Область действия: Any file. Наиболее полезен в управляемых настройках, где пользователи не могут его переопределить. Также принимается внутри permissions как permissions.disableAutoMode.
  • Тип: строка "disable"
  • По умолчанию: не установлено
{
  "disableAutoMode": "disable"
}

`permissions`

Управляйте тем, какие инструменты Claude может использовать без запроса, какие всегда требуют подтверждения, а какие заблокированы, и задайте режим разрешений, в котором начинается сессия. Все ключи permissions.* ниже вложены в этот объект.

  • Область действия: Any file
  • Тип: объект с allow, ask, deny, additionalDirectories, blockReadsOutsideWorkingDirectories, defaultMode, disableBypassPermissionsMode и disableAutoMode
  • По умолчанию: не установлено

Этот пример разрешает команды npm run без запроса, запрашивает подтверждение перед git push, блокирует чтение .env и запускает сессии в acceptEdits:

{
  "permissions": {
    "allow": ["Bash(npm run *)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"],
    "defaultMode": "acceptEdits"
  }
}

Три массива правил используют один синтаксис; см. Синтаксис правил разрешений в разделе permissions.allow. О том, как объединяются правила разрешений из разных файлов, см. как правила разрешений объединяются между областями действия; о том, как объединяются ключи настроек в целом, см. Приоритет настроек в руководстве по настройкам.

`useAutoModeDuringPlan`

Выберите, использует ли Claude Code классификатор авторежима для проверки shell-команд в режиме планирования. При значении по умолчанию true классификатор проверяет каждую команду во время планирования, когда авторежим доступен, и вы не видите запроса, за исключением удалений критических путей. Установите false, чтобы получать запрос разрешения для каждой команды вне встроенного набора команд только для чтения. Отображается в /config как Use auto mode during plan.

  • Область действия: User, local, or managed. Репозиторий не может отключить его за вас.
  • Тип: Boolean
    • true: то же, что и отсутствие значения; когда авторежим доступен, классификатор проверяет каждую shell-команду во время планирования вместо запроса к вам, за исключением удалений критических путей. Значение false в любом из этих файлов всё равно отключает его
    • false: вы получаете запрос разрешения для каждой команды вне встроенного набора команд только для чтения
  • По умолчанию: true
{
  "useAutoModeDuringPlan": false
}

`permissions.allow`

Перечислите использования инструментов, которые Claude Code одобряет без запроса. В правиле MCP * может встречаться только в имени инструмента после префикса mcp__<server>__, например mcp__github__get_*; в имени сервера он встречаться не может.

  • Область действия: Any file
  • Тип: массив строк правил разрешений
  • По умолчанию: не установлено
  • Переопределения для отдельной сессии: --allowedTools добавляет разрешающие правила на одну сессию, а запрещающее правило из любого файла настроек по-прежнему блокирует указанный в нём инструмент

Этот пример разрешает git diff и позволяет Claude Code читать ваш .zshrc без запроса:

{
  "permissions": {
    "allow": ["Bash(git diff *)", "Read(~/.zshrc)"]
  }
}

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

Синтаксис правил разрешений

Правила разрешений имеют формат Tool или Tool(specifier). Claude Code сначала проверяет правила deny, затем ask, затем allow, и решение принимает первое совпадение, независимо от того, насколько конкретно каждое правило; см. порядок проверки правил разрешений.

Каждая строка показывает одну форму правила и то, чему она соответствует.

Правило Чему соответствует
Bash Каждая команда Bash
Bash(npm run *) Команды, начинающиеся с npm run
Read(./.env) Чтение файла .env
WebFetch(domain:example.com) Запросы на загрузку с example.com

Полный синтаксис правил, включая поведение подстановочных знаков, шаблоны для конкретных инструментов в правилах Read, Edit, WebFetch, MCP и Agent, а также ограничения безопасности шаблонов Bash, см. в разделе Синтаксис правил разрешений.

`permissions.ask`

Перечислите использования инструментов, для которых у вас запрашивается подтверждение даже в режиме разрешений, который иначе одобрил бы их, например acceptEdits или bypassPermissions. В режиме dontAsk Claude Code отклоняет соответствующее использование инструмента вместо запроса.

  • Область действия: Any file
  • Тип: массив строк правил разрешений
  • По умолчанию: не установлено
{
  "permissions": {
    "ask": ["Bash(git push *)"]
  }
}

`permissions.deny`

Перечислите использования инструментов, которые Claude Code блокирует. Используйте этот ключ для файлов, содержащих API-ключи, секреты или значения окружения: Claude Code исключает соответствующие файлы из обнаружения файлов и результатов поиска, запрещает их чтение и блокирует инструменты Edit и Write для соответствующих путей.

Запрещающие правила Read и Edit применяются к встроенным файловым инструментам Claude, к файловым командам, которые Claude Code распознаёт в Bash, таким как cat, head, tail, sed и tee, и к целям перенаправлений Bash, таких как > file и < file; они не применяются к команде, которая читает файлы, не называя их, например grep -r pattern ., или к произвольным подпроцессам, поэтому для принудительного контроля на уровне ОС включите песочницу.

  • Область действия: Any file
  • Тип: массив строк правил разрешений
  • По умолчанию: не установлено
  • Переопределения для отдельной сессии: --disallowedTools добавляет запрещающие правила на одну сессию наряду с этим ключом

Этот пример запрещает чтение файлов .env, каталога secrets и файла учётных данных, а также блокирует команды curl:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Bash(curl *)"
    ]
  }
}

Имена инструментов поддерживают glob-шаблоны, поэтому "*" запрещает все инструменты, а "mcp__*" запрещает все MCP-инструменты. Claude Code игнорирует запрещающее правило для инструмента EndConversation, пока Claude доступен хотя бы один другой инструмент. Запрещающее правило Bash сопоставляется с командой в том виде, в каком её пишет Claude, поэтому Bash(curl *) не останавливает /usr/bin/curl или sh -c 'curl …'; см. чему не соответствует правило Bash. Этот ключ заменяет устаревшую конфигурацию ignorePatterns.

`permissions.additionalDirectories`

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

  • Область действия: Any file, с ограничениями на доступ на запись в песочнице, который дают записи из проектных и локальных настроек
  • Тип: массив путей к каталогам
  • По умолчанию: не установлено
  • Переопределения для отдельной сессии: --add-dir и /add-dir добавляют каталоги на одну сессию наряду с этим ключом
{
  "permissions": {
    "additionalDirectories": ["../docs/"]
  }
}

Как и правила allow, записи в .claude/settings.json проекта вступают в силу только после того, как вы подтвердите диалоговое окно доверия рабочему пространству для этой папки.

`permissions.blockReadsOutsideWorkingDirectories`

Заставьте файловые инструменты Claude отказывать в чтении за пределами ваших рабочих каталогов в любом режиме разрешений, включая bypassPermissions. Claude Code отклоняет вызовы Read, Grep, Glob и LSP для таких путей и сообщает Claude, чтобы он попросил вас добавить каталог с помощью /add-dir. Файлы, которые нужны самому Claude Code, остаются доступными для чтения, например ваши скиллы, плагины, правила, агенты, команды и файл памяти CLAUDE.md в ~/.claude/. Требуется Claude Code v2.1.257 или новее.

Shell-команды Claude Code блокирует иначе:

Команда Bash, которую парсер оболочки не может отследить, например команда, которая меняет каталог более одного раза или запускает подоболочку, вызывает запрос к вам даже в авторежиме и в режиме bypassPermissions. Запрос появляется, даже если команда не называет ни одного пути за пределами рабочих каталогов. Этот запрос не появляется, когда команда выполняется в песочнице и песочница обеспечивает блокировку.

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

  • Область действия: Any file. Значение true в любом файле применяется, поэтому репозиторий может включить блокировку для себя, но не может снять вашу.
  • Тип: Boolean
    • true: файловые инструменты Claude отказывают в чтении за пределами рабочих каталогов
    • false: то же, что и отсутствие значения; блокировка всё равно применяется, если другой файл устанавливает true
  • По умолчанию: не установлено, поэтому чтение за пределами рабочих каталогов подчиняется вашему режиму разрешений
{
  "permissions": {
    "blockReadsOutsideWorkingDirectories": true
  }
}

Каталоги, которые вы добавляете с помощью --add-dir, /add-dir или additionalDirectories в пользовательских или управляемых настройках, считаются рабочими каталогами для блокировки. Каталоги, добавленные только в настройках репозитория, не считаются: те, что указаны в .claude/settings.json, и те, что указаны в .claude/settings.local.json, если только git не сообщает, что этот файл не отслеживается. В каталоге, который не является git-репозиторием, или когда git отслеживает этот файл, Claude Code рассматривает .claude/settings.local.json как настройки репозитория, поэтому каталоги, которые должны оставаться доступными для чтения, указывайте в пользовательских настройках.

Когда autoMemoryDirectory задан в .claude/settings.json проекта или в .claude/settings.local.json, рассматриваемом как предоставленный репозиторием, Claude Code не загружает автоматическую память из этого каталога и ничего в него не сохраняет.

Чтобы снять блокировку, удалите ключ из всех файлов настроек, которые его устанавливают, затем начните новую сессию.

Команды в песочнице при действующей блокировке

Когда изоляция в песочнице включена, блокировка также распространяется на команды в песочнице. Claude Code запрещает им чтение вашего домашнего каталога и других корневых каталогов, содержащих пользовательские файлы: /Users, /home, /root, /Volumes, /mnt, /media, /run/media и /srv. Затем он снова открывает рабочие каталоги, worktree, которые Claude Code создаёт в сессии, временный каталог сессии и те части ~/.claude, которые нужны командам, например скиллы и плагины. Пока блокировка действует, записи allowRead и allowWrite из настроек репозитория не учитываются.

Когда рабочий каталог сессии является связанным git worktree, в том числе таким, в который Claude Code перешёл посреди сессии, общий каталог .git репозитория остаётся доступным для чтения и записи командам в песочнице, чтобы git продолжал там работать.

В следующих случаях блокировка не распространяется на команды в песочнице, тогда как файловые инструменты Claude продолжают её соблюдать:

  • Изоляция файловой системы отключена через sandbox.filesystem.disabled
  • Установлен allowManagedReadPathsOnly
  • Путь к каталогу, в котором вы запустили Claude Code, содержит glob-символ, например *, ? или [

При действующей блокировке Claude Code снова открывает командам в песочнице ваши глобальные файлы конфигурации git, чтобы git сохранял ваши идентификационные данные и настройки:

  • ~/.gitconfig
  • Файлы config, ignore и attributes в $XDG_CONFIG_HOME/git, который по умолчанию равен ~/.config/git
  • Файлы, на которые ваша глобальная конфигурация git ссылается через [include], [includeIf], core.excludesFile или core.attributesFile

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

В Linux и WSL2 файл конфигурации, являющийся символической ссылкой, может оставаться недоступным для чтения по собственному пути, и тогда git работает без него. ~/.git-credentials и $XDG_CONFIG_HOME/git/credentials остаются заблокированными.

Если снова открытый файл содержит секрет, например токен http.extraHeader, добавьте его путь в sandbox.filesystem.denyRead. Запись denyRead, охватывающая файл, всегда имеет приоритет над этим повторным открытием.

`permissions.defaultMode`

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

  • Область действия: Any file. auto и bypassPermissions не вступают в силу из проектных или локальных настроек, поэтому задавайте их в ~/.claude/settings.json. До версии 2.1.257 bypassPermissions вступал в силу из любого файла. Для диалогов, которые запускает расширение VS Code, Claude Code читает только пользовательские, управляемые значения и значения --settings.
  • Тип: строка, одно из значений:
    • "default": Claude Code без запроса выполняет только чтение
    • "acceptEdits": Claude Code также без запроса выполняет редактирование файлов и распространённые команды файловой системы, такие как mkdir и mv
    • "plan": Claude Code читает и планирует, но блокирует редактирование, пока вы не утвердите план
    • "auto": Claude Code работает без рутинных запросов; перед выполнением таких действий, как shell-команды и сетевые запросы, фоновый классификатор проверяет, что они соответствуют вашей задаче
    • "dontAsk": Claude Code автоматически отклоняет каждый вызов, который иначе потребовал бы запроса; чтение, другие действия, не требующие подтверждения, и заранее разрешённые инструменты по-прежнему выполняются
    • "bypassPermissions": Claude Code выполняет всё без запроса
    • "manual": псевдоним для "default" в Claude Code v2.1.200 или новее
  • По умолчанию: не установлено
  • Переопределения для отдельной сессии: --permission-mode и его эквивалент --dangerously-skip-permissions для bypassPermissions имеют приоритет над этим ключом на одну сессию
{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

Правила разрешений действуют поверх любого режима: правила deny блокируют в каждом режиме, включая bypassPermissions. См. Режимы разрешений. manual обозначает режим разрешений с меткой Manual в CLI и расширении VS Code; псевдоним требует Claude Code v2.1.200 или новее. В облачных сессиях Claude Code учитывает из этого ключа только acceptEdits, plan, default и auto. О диалогах, которые запускает расширение VS Code, см. какую настройку расширение читает для начального режима разрешений.

`permissions.disableBypassPermissionsMode`

Запретите кому-либо входить в режим bypassPermissions. Claude Code тогда отклоняет флаг --dangerously-skip-permissions и игнорирует permissionMode: bypassPermissions в определении агента, поэтому субагент работает в режиме разрешений родительской сессии.

  • Область действия: Any file. Обычно задаётся в управляемых настройках для соблюдения политики организации.
  • Тип: строка "disable"
  • По умолчанию: не установлено
  • Переопределения для отдельной сессии: этот ключ имеет приоритет над --dangerously-skip-permissions, который Claude Code отклоняет, пока ключ установлен
{
  "permissions": {
    "disableBypassPermissionsMode": "disable"
  }
}

До версии 2.1.223 Claude Code применял режим разрешений из frontmatter даже при отключённом обходе.

`skipAutoPermissionPrompt`

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

  • Область действия: User or managed. Репозиторий не может установить его за вас.
  • Тип: Boolean
    • true: Claude Code пропускает уведомление
    • false: то же, что и отсутствие значения; уведомление появляется один раз, если только другой из этих файлов не устанавливает true
  • По умолчанию: не установлено, поэтому уведомление появляется один раз
{
  "skipAutoPermissionPrompt": true
}

`skipDangerousModePermissionPrompt`

Пропустите диалоговое окно подтверждения, которое Claude Code показывает перед входом сессии в режим bypassPermissions, будь то из-за --dangerously-skip-permissions или defaultMode: "bypassPermissions". Claude Code записывает сюда true в ваших пользовательских настройках, когда вы один раз подтверждаете это диалоговое окно.

  • Область действия: User, local, or managed. Недоверенный репозиторий не может пропустить диалоговое окно за вас.
  • Тип: Boolean
    • true: Claude Code пропускает диалоговое окно подтверждения перед входом сессии в режим bypassPermissions
    • false: то же, что и отсутствие значения; диалоговое окно появляется, если только другой из этих файлов не устанавливает true
  • По умолчанию: не установлено, поэтому диалоговое окно появляется
{
  "skipDangerousModePermissionPrompt": true
}

Настройки песочницы

Изолируйте команды, которые выполняет Claude, от вашей файловой системы, сети и учётных данных. Информацию о том, как работает песочница и требования к платформе, см. в разделе Sandboxing.

`sandbox`

Изолируйте команды Bash, которые выполняет Claude, от вашей файловой системы и сети с помощью sandboxing. Включите песочницу с помощью enabled, затем сузьте или расширьте то, к чему могут обращаться изолированные команды, с помощью подобъектов filesystem, network и credentials. Песочница работает на macOS, Linux и WSL2.

  • Scope: Any file
  • Type: object с enabled, failIfUnavailable, autoAllowBashIfSandboxed, excludedCommands, allowUnsandboxedCommands, enableWeakerNestedSandbox, enableWeakerNetworkIsolation, allowAppleEvents, bwrapPath, socatPath, ignoreViolations и ripgrep, плюс объекты filesystem, network и credentials
  • Default: не установлено, поэтому Claude Code выполняет команды без песочницы

Это включает песочницу, пропускает запросы разрешений для изолированных команд, запускает docker вне песочницы, открывает два дополнительных пути записи, скрывает файл учётных данных AWS и предварительно разрешает GitHub и npm:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker *"],
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

Когда управляемые настройки задают логический ключ, такой как enabled или failIfUnavailable, это значение переопределяет всё, что устанавливает разработчик. Claude Code объединяет ключи-массивы во всех областях действия настроек, которые загружает сессия, поэтому разработчик может добавлять записи; см. Keep developers from widening the policy для блокировок, доступных только в управляемых настройках. Чтобы требовать песочницу для организации, см. Enforce sandboxing with managed settings.

`sandbox.enabled`

Включите sandboxing для команд Bash. Когда вы выбираете режим на панели /sandbox, Claude Code записывает этот ключ в .claude/settings.local.json для текущего проекта; установите его в ~/.claude/settings.json, чтобы изолировать каждый проект.

{
  "sandbox": {
    "enabled": true
  }
}

На Linux и WSL2 песочнице требуются bubblewrap и socat; см. Set up Linux and WSL2. Когда песочница не может запуститься, Claude Code выполняет команды без изоляции, если вы также не установите failIfUnavailable.

`sandbox.failIfUnavailable`

Заставьте Claude Code завершаться с ошибкой при запуске, когда sandbox.enabled имеет значение true, но песочница не может запуститься, потому что отсутствует зависимость или платформа не поддерживается. Без этого ключа Claude Code выполняет команды без изоляции. Эту настройку могут использовать управляемые развёртывания, которым песочница нужна как обязательный барьер безопасности.

На платформе, которую песочница не поддерживает, Claude Code не запускается при включённом ключе. См. Enforce sandboxing with managed settings.

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

{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true
  }
}

См. Enforce sandboxing with managed settings.

`sandbox.autoAllowBashIfSandboxed`

Позвольте Claude Code выполнять изолированные команды Bash без запроса разрешения. Команды, которые не могут выполняться в песочнице, по-прежнему проходят обычный поток разрешений, и правила deny и правила ask с ограничением содержимого, такие как Bash(git push *), по-прежнему применяются; простое правило Bash ask пропускается для изолированных команд. Установите значение false, чтобы изолированные команды тоже проходили через обычный поток разрешений, который вкладка Mode в /sandbox называет режимом обычных разрешений.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code выполняет изолированные команды Bash без запроса разрешения, с учётом правил deny и правил ask с ограничением содержимого; CLAUDE_CODE_SUBPROCESS_ENV_SCRUB отключает автоматическое разрешение
    • false: изолированные команды проходят обычный поток разрешений, поэтому решают ваши правила разрешений и режим разрешений. Вкладка Mode в /sandbox называет это режимом обычных разрешений
  • Default: true

Это сохраняет песочницу включённой и отправляет изолированные команды через обычный поток разрешений:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": false
  }
}

См. Sandbox modes, чтобы узнать, о чём всё ещё запрашивает режим автоматического разрешения и как он ведёт себя в режиме планирования.

`sandbox.excludedCommands`

Перечислите команды, которые Claude Code выполняет вне песочницы, например инструменты, которые не работают в ней. Каждая запись использует тот же синтаксис, что и содержимое правила разрешений Bash(...): точная команда, префикс, такой как docker *, или шаблон с подстановкой. Шаблон без подстановки означает точное совпадение, поэтому docker совпадает только с docker без аргументов.

Ваши записи выводят вызов Bash из песочницы, только когда они охватывают каждую команду в нём, и некоторые формы вызова остаются изолированными даже тогда. Одна лишь запись docker * не выводит npm ci && docker build . из песочницы.

{
  "sandbox": {
    "excludedCommands": ["docker *"]
  }
}

Claude Code сохраняет вызов Bash в изоляции, когда он имеет одну из этих форм, среди прочих:

  • Команда, начинающаяся с sudo, eval или xargs
  • cd, pushd или popd, где бы они ни появлялись в вызове
  • Подстановка команды, подоболочка или блок управления потоком, такой как if или for
  • Перенаправление, такое как docker build . > build.log, кроме того, которое только дублирует дескриптор файла, как 2>&1
  • Имя команды, которое поступает из переменной
  • git clone, git init, git worktree add, git worktree move или git bundle create с аргументом пути, который является абсолютным, начинается с ~ или содержит сегмент ..

Например, cd build && docker compose up остаётся изолированным при записи docker *, и добавление записи cd этого не меняет. При записи git * команда git clone <url> vendor/lib выполняется вне песочницы, но git clone <url> ~/tools остаётся изолированной. Клонирование записывает целое дерево файлов, возможно исполняемых, туда, куда указывает путь назначения.

Исключённые команды по-прежнему проходят обычный поток разрешений. Исключение — это удобство, а не граница безопасности: когда инструменту нужно писать только в определённое место, filesystem.allowWrite оставляет его в песочнице.

Записи из областей действия настроек, которые загружает сессия, объединяются в один список, если только песочница не является обязательной по требованию администратора. Пока это так, Claude Code игнорирует записи в .claude/settings.json и .claude/settings.local.json, чтобы клонированный репозиторий не мог вывести команды из песочницы. Записи в управляемых настройках, --settings и вашем ~/.claude/settings.json по-прежнему применяются, и никакая блокировка управляемых настроек не распространяется на этот список.

`sandbox.allowUnsandboxedCommands`

Позвольте Claude повторить попытку выполнения команды вне песочницы с параметром dangerouslyDisableSandbox после того, как песочница её заблокирует. Когда значение равно false, Claude Code игнорирует этот параметр. Тогда, пока песочница работает, команды, которые выполняет Claude, изолируются, если они не совпадают с записью excludedCommands. Вкладка Overrides в /sandbox показывает это состояние как Strict sandbox mode. Значение false в управляемых настройках включает строгий режим песочницы для разработчиков, на которых они распространяются.

  • Scope: Any file, с ограничением для настроек проекта и локальных настроек
  • Type: Boolean
    • true: Claude может повторить попытку выполнения команды вне песочницы с параметром dangerouslyDisableSandbox после того, как песочница её заблокирует
    • false: Claude Code игнорирует этот параметр, поэтому, пока песочница работает, команды, которые выполняет Claude, изолируются, если они не совпадают с записью excludedCommands
  • Default: true

Это обеспечивает строгий режим песочницы для всех, на кого распространяются управляемые настройки:

{
  "sandbox": {
    "enabled": true,
    "allowUnsandboxedCommands": false
  }
}

Значение false из управляемых настроек или --settings также делает песочницу обязательной по требованию администратора. Значение false в ваших пользовательских настройках имеет приоритет над значением true проекта, но не делает песочницу обязательной по требованию администратора. Приоритет над значением проекта требует Claude Code v2.1.285 или более поздней версии.

Кто подтверждает повторную попытку без изоляции, зависит от вашего режима разрешений и правил разрешения. См. The unsandboxed retry escape hatch.

Чтобы узнать, когда команды, которые вы вводите сами в ! shell-mode prompt, выполняются в изоляции, см. strict sandbox mode.

`sandbox.filesystem`

Управляйте тем, какие пути могут читать и записывать изолированные команды. По умолчанию они могут писать в рабочий каталог, временный каталог пользователя и каталоги, которые вы добавляете с помощью --add-dir, /add-dir или permissions.additionalDirectories, и могут читать остальную часть файловой системы, включая файлы учётных данных. Расширьте или сузьте это с помощью четырёх списков путей или отключите слой файловой системы с помощью disabled. См. Filesystem isolation для получения информации о границах по умолчанию.

  • Scope: Any file
  • Type: object с массивами allowWrite, denyWrite, denyRead и allowRead, плюс логические значения allowManagedReadPathsOnly и disabled
  • Default: не установлено, поэтому применяются границы чтения и записи по умолчанию

Это позволяет изолированным командам писать в каталог сборки и ваш kubeconfig, а также скрывает файл учётных данных AWS:

{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    }
  }
}

Claude Code применяет эти списки на границе песочницы ОС, поэтому они распространяются на каждый подпроцесс, который запускает изолированная команда, например kubectl, terraform или npm. Claude Code добавляет ваши permission rules в те же списки: правила Edit allow и deny — в allowWrite и denyWrite, правила Read deny — в denyRead, а правила WebFetch(domain:...) allow и deny — в списки доменов network.

Если не действует блокировка, Claude Code объединяет эти списки во всех файлах настроек, которые загружает сессия. allowManagedReadPathsOnly ограничивает allowRead записями из управляемых настроек, а allowManagedDomainsOnly делает то же самое для разрешённых доменов. Блокировки репозитория исключают записи из файлов настроек репозитория.

Configure sandboxing описывает источники, которые вы исключаете с помощью --setting-sources. Когда вы редактируете список во время сессии, Claude Code применяет изменение к работающей сессии.

Префиксы путей песочницы

Пути в allowWrite, denyWrite, denyRead, allowRead и credentials.files разрешаются по их префиксу:

Prefix Meaning Example
/ Абсолютный путь от корня файловой системы /tmp/build остаётся /tmp/build
~/ Относительно домашнего каталога ~/.kube становится $HOME/.kube
./ или без префикса Относительно корня проекта для настроек проекта или относительно ~/.claude для пользовательских настроек ./output в .claude/settings.json разрешается в <project-root>/output

Префикс //path для абсолютных путей также работает. Если вы используете одиночный слэш /path, ожидая разрешения относительно проекта, переключитесь на ./path. Этот синтаксис отличается от Read and Edit permission rules, которые используют //path для абсолютного пути и /path для пути относительно проекта: пути файловой системы песочницы используют стандартные соглашения, поэтому /tmp/build — это абсолютный путь.

Claude Code удаляет конечный слэш из пути каталога, поэтому ~/.aws и ~/.aws/ совпадают с одним и тем же каталогом. До v2.1.224 Claude Code передавал конечный слэш в песочницу, и Claude всё ещё мог читать или записывать пути под записью denyRead или denyWrite, написанной с ним.

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

  • allowWrite и denyWrite: на macOS подстановки работают. На Linux и WSL2 песочница монтирует конкретные пути, поэтому Claude Code пропускает запись, содержащую *, ? или [ после удаления конечного /**, и эта запись не имеет эффекта. Claude Code добавляет пути из ваших правил разрешений Edit в эти списки, поэтому то же ограничение действует и для них, а вкладка Config в /sandbox предупреждает о правилах разрешений Edit и Read, содержащих подстановки.
  • denyRead и allowRead: подстановки работают на каждой платформе. На Linux и WSL2 Claude Code разворачивает запись чтения в конкретные пути, с которыми она совпадает, чего он не делает для списков записи.

`sandbox.filesystem.allowWrite`

Добавьте пути, куда изолированные команды могут писать, помимо рабочего каталога, временного каталога пользователя и каталогов, которые вы добавили с помощью --add-dir, /add-dir или permissions.additionalDirectories. Используйте это, когда подпроцессу, такому как kubectl или инструмент сборки, нужно писать вне проекта.

Это позволяет сборке писать в /tmp/build и позволяет kubectl обновлять ваш kubeconfig:

{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"]
    }
  }
}

Claude Code объединяет записи allowWrite и пути из ваших правил разрешений Edit(...) allow во всех областях действия настроек, которые загружает сессия, исключая записи из настроек репозитория, пока включён permissions.blockReadsOutsideWorkingDirectories. Блокировки репозитория тоже могут исключать записи репозитория. Запись allowWrite не может снять защиту с protected path.

`sandbox.filesystem.denyWrite`

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

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

{
  "sandbox": {
    "filesystem": {
      "denyWrite": ["/etc", "/usr/local/bin"]
    }
  }
}

Claude Code объединяет записи во всех областях действия настроек, которые загружает сессия, и добавляет пути из ваших правил разрешений Edit(...) deny.

`sandbox.filesystem.denyRead`

Запретите изолированным командам чтение определённых путей, например файлов учётных данных, которые политика чтения по умолчанию в противном случае раскрыла бы. Чтобы защитить файл учётных данных и сохранить возможность использовать его через прокси песочницы, используйте вместо этого sandbox.credentials.

  • Scope: Any file
  • Type: array of path strings, using the sandbox path prefixes
  • Default: не установлено, поэтому изолированные команды сохраняют default read access, который включает файлы учётных данных, такие как ~/.aws/credentials
{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/.aws/credentials"]
    }
  }
}

Claude Code объединяет записи во всех областях действия настроек, которые загружает сессия, и добавляет пути из ваших правил разрешений Read(...) deny. Когда filesystem.disabled имеет значение true, Claude Code не применяет эти записи.

`sandbox.filesystem.allowRead`

Повторно откройте чтение для определённых путей внутри области, которую блокирует denyRead, чтобы организовать доступ на чтение только к рабочей области. Точная запись или запись с подстановкой в denyRead остаётся заблокированной внутри более широкого allowRead, как показывает overlap table. Когда запись denyRead с подстановкой, такая как ~/**/.env, совпадает с каталогом, Claude Code блокирует также чтение его содержимого. До v2.1.236 на macOS Claude Code повторно открывал пути, совпавшие с записью denyRead с подстановкой, везде, где их охватывала более широкая запись allowRead, и оставлял содержимое совпавшего каталога доступным для чтения.

Это блокирует чтение вашего домашнего каталога, кроме самого проекта:

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["."]
    }
  }
}

Claude Code разрешает запись . в корень проекта в настройках проекта и в ~/.claude в пользовательских настройках. Claude Code объединяет записи во всех файлах настроек, которые загружает сессия, если не установлен allowManagedReadPathsOnly, и исключает записи из настроек репозитория, пока включён permissions.blockReadsOutsideWorkingDirectories. Блокировки репозитория тоже могут исключать записи репозитория.

`sandbox.filesystem.allowManagedReadPathsOnly`

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

  • Scope: Managed
  • Type: Boolean
    • true: Claude Code учитывает только записи allowRead из управляемых настроек
    • false: записи allowRead из других файлов настроек могут объединяться
  • Default: false

Это блокирует чтение домашнего каталога, повторно открывает ~/work и не позволяет разработчикам повторно открыть что-либо ещё:

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["~/work"],
      "allowManagedReadPathsOnly": true
    }
  }
}

См. Keep developers from widening the policy.

`sandbox.filesystem.disabled`

Пропустите изоляцию файловой системы, сохранив изоляцию сети. Изолированные команды получают неограниченный доступ на чтение и запись к файловой системе хоста, а их исходящий сетевой трафик остаётся ограниченным network.allowedDomains. Используйте это, когда вы изолируете команды, чтобы контролировать, куда они подключаются, а не что они записывают. Требует Claude Code v2.1.216 или более поздней версии.

  • Scope: User or managed. Когда управляемые настройки вообще настраивают sandbox.filesystem или содержат запись sandbox.credentials.files с "mode": "deny", установить её могут только управляемые настройки.
  • Type: Boolean
    • true: Claude Code пропускает изоляцию файловой системы и сохраняет изоляцию сети
    • false: изоляция файловой системы остаётся включённой
  • Default: false, поэтому изоляция файловой системы остаётся включённой

Это оставляет файловую систему открытой и ограничивает исходящий сетевой трафик GitHub и npm:

{
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "disabled": true
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

При отключённом слое Claude Code не применяет записи denyRead или записи credentials.files с deny, тогда как записи credentials.envVars и применённые записи mask продолжают работать. autoAllowBashIfSandboxed по-прежнему по умолчанию имеет значение true, поэтому установите false, чтобы запросы разрешений продолжались. См. Disable filesystem isolation, чтобы получить полный список источников, которые могут её установить, и узнать, что меняется при отключении изоляции. Требует Claude Code v2.1.216 или более поздней версии.

`sandbox.ignoreViolations`

Отключите отчёты о нарушениях песочницы для путей, к которым команда, как вы ожидаете, будет обращаться и получать отказ, например для инструмента, который проверяет /etc/hosts при запуске, чтобы эти отказы не отображались как нарушения и не попадали в то, что видит Claude. Песочница по-прежнему блокирует доступ; подавляется только отчёт. Ключи — это подстроки для сопоставления с командой, где * совпадает с любой командой, а значения — это подстроки нарушения, которое нужно игнорировать для этой команды, например путь файловой системы.

{
  "sandbox": {
    "ignoreViolations": {
      "*": ["/etc/hosts"]
    }
  }
}

`sandbox.enableWeakerNestedSandbox`

Запустите песочницу Linux внутри непривилегированного контейнера Docker, где bubblewrap не может смонтировать новый /proc. Вместо этого внутренняя песочница монтирует через bind-mount существующий /proc контейнера, что раскрывает информацию о процессах, которую новое монтирование скрыло бы. Это снижает безопасность; используйте это, только когда внешний контейнер уже обеспечивает необходимую вам изоляцию.

{
  "sandbox": {
    "enabled": true,
    "enableWeakerNestedSandbox": true
  }
}

Только Linux и WSL2. См. Bubblewrap fails to start inside a container.

`sandbox.enableWeakerNetworkIsolation`

Позвольте изолированным командам на macOS обращаться к системной службе доверия TLS, com.apple.trustd.agent. Инструментам на основе Go, таким как gh, gcloud и terraform, это нужно для проверки сертификатов TLS, когда вы используете network.httpProxyPort с MITM-прокси и пользовательским ЦС. Это снижает безопасность, открывая потенциальный путь утечки данных через службу доверия.

{
  "sandbox": {
    "enabled": true,
    "enableWeakerNetworkIsolation": true
  }
}

Если вы не используете MITM-прокси, вместо этого перечислите проблемные инструменты в excludedCommands; см. Go-based CLIs fail TLS verification on macOS.

`sandbox.allowAppleEvents`

Позвольте изолированным командам на macOS отправлять Apple Events, которые нужны open, osascript и инструментам, открывающим URL-адреса в браузере; без этого они завершаются с ошибкой -600. Это снимает изоляцию выполнения кода: изолированные команды могут запускать другие приложения без изоляции и без запроса пользователю, а также отправлять команды AppleScript работающим приложениям, таким как Terminal, с учётом запроса согласия на автоматизацию macOS для каждого приложения (TCC).

  • Scope: User or managed
  • Type: Boolean
    • true: изолированные команды на macOS могут отправлять Apple Events
    • false: изолированные команды на macOS не могут отправлять Apple Events, поэтому open и osascript завершаются с ошибкой -600
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "allowAppleEvents": true
  }
}

Чтобы сохранить изоляцию и всё же запускать один такой инструмент, добавьте его вместо этого в excludedCommands. См. Apple Events on macOS.

`sandbox.ripgrep`

Укажите песочнице собственный двоичный файл ripgrep вместо того, который использует Claude Code, например когда вашей платформе нужен иначе собранный rg.

  • Scope: User or managed
  • Type: object с command — путём к двоичному файлу ripgrep, и необязательным args — массивом аргументов, добавляемых в начало
  • Default: не установлено, поэтому песочница использует тот же двоичный файл ripgrep, что и Claude Code. Это встроенный двоичный файл, если вы не установите USE_BUILTIN_RIPGREP в 0
{
  "sandbox": {
    "ripgrep": {
      "command": "/usr/local/bin/rg"
    }
  }
}

`sandbox.bwrapPath`

Укажите песочнице двоичный файл bubblewrap, установленный вне PATH, например поставляемую копию на изолированном от сети хосте. Claude Code использует этот путь как для проверки зависимостей при запуске, так и при обёртывании каждой изолированной команды.

  • Scope: Managed. Claude Code читает его только из управляемых настроек, чтобы пользовательский, проектный или локальный файл не мог указать песочнице другой двоичный файл.
  • Type: string, an absolute path; Claude Code drops a relative path and falls back to PATH lookup
  • Default: не установлено, поэтому Claude Code находит bwrap в PATH
{
  "sandbox": {
    "enabled": true,
    "bwrapPath": "/opt/admin/bwrap"
  }
}

Только Linux и WSL2.

`sandbox.socatPath`

Укажите сетевому прокси песочницы двоичный файл socat, установленный вне PATH.

  • Scope: Managed
  • Type: string, an absolute path; Claude Code drops a relative path and falls back to PATH lookup
  • Default: не установлено, поэтому Claude Code находит socat в PATH
{
  "sandbox": {
    "enabled": true,
    "socatPath": "/opt/admin/socat"
  }
}

Только Linux и WSL2.

`sandbox.credentials`

Объявите файлы учётных данных и переменные окружения, которые нужно защитить от изолированных команд. Каждая запись указывает файл path или переменную name и mode: deny скрывает учётные данные внутри песочницы, а mask показывает изолированным командам заполнитель, в то время как sandbox proxy подставляет реальное значение в исходящих запросах. Claude Code защищает только перечисленные вами записи; встроенного списка запрещённых учётных данных нет.

  • Scope: Any file. Claude Code учитывает записи mask, allowPlaintextInject, awsPairs и sigv4 только из пользовательских настроек, управляемых настроек и флага --settings.
  • Type: object с files, envVars, allowPlaintextInject, awsPairs и sigv4
  • Default: не установлено, поэтому никакие учётные данные не защищены

Это скрывает файл учётных данных AWS и удаляет GITHUB_TOKEN из изолированных команд:

{
  "sandbox": {
    "credentials": {
      "files": [{ "path": "~/.aws/credentials", "mode": "deny" }],
      "envVars": [{ "name": "GITHUB_TOKEN", "mode": "deny" }]
    }
  }
}

Защита файла deny является частью слоя файловой системы, поэтому она не действует, когда вы disable filesystem isolation; защита переменных окружения по-прежнему действует.

Недействительные записи учётных данных в управляемых настройках

Когда запись sandbox.credentials в управляемых настройках не проходит проверку, Claude Code продолжает защищать учётные данные, где это возможно:

  • Запись в files или envVars, у которой по-прежнему действительный path или name и mode со значением mask или deny, например запись, шаблон extract которой не содержит группы захвата, понижается до mode: "deny" с предупреждением, поэтому учётные данные остаются заблокированными, а не замаскированными, пока вы не исправите запись. Пониженная запись files закрепляет filesystem.disabled так же, как явная запись deny, а предупреждение отмечает, что её блокировка чтения не применяется, если управляемые настройки отключают изоляцию файловой системы.
  • Запись с неизвестным mode или недействительным path или name удаляется.
  • В каждом случае выводится предупреждение; независимо от того, понижена запись или удалена, остальные действительные записи по-прежнему применяются, а полностью недействительное значение credentials отбрасывается, тогда как остальная часть sandbox по-прежнему применяется.

Действует в v2.1.191 и более поздних версиях; до v2.1.221 каждая недействительная запись удалялась. Для других управляемых ключей с обработкой на уровне отдельных полей см. Invalid entries in managed settings.

`sandbox.credentials.files`

Защитите файлы или каталоги учётных данных от изолированных команд. С "mode": "deny" Claude Code блокирует чтение пути внутри песочницы — та же блокировка чтения, что и у sandbox.filesystem.denyRead. С "mode": "mask" изолированные команды на Linux и WSL2 читают копию файла с сигнальным значением, а прокси песочницы подставляет реальное значение в исходящих запросах к injectHosts этой записи; на macOS файл вместо этого недоступен для чтения внутри песочницы. "mode": "mask" требует Claude Code v2.1.221 или более поздней версии.

  • Scope: Any file. Claude Code отбрасывает записи mask из проектного .claude/settings.json и локального .claude/settings.local.json.
  • Type: array of objects, each with path and a mode of "deny" or "mask", plus the optional mask fields for files
  • Default: не установлено, поэтому никакие файлы учётных данных не защищены

Это скрывает файл учётных данных AWS и маскирует файл хостов gh, подставляя реальное значение только в запросах к api.github.com:

{
  "sandbox": {
    "credentials": {
      "files": [
        { "path": "~/.aws/credentials", "mode": "deny" },
        { "path": "~/.config/gh/hosts.yml", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}

Пути используют те же prefixes, что и настройки sandbox.filesystem.*, и Claude Code объединяет массивы из всех областей действия настроек, которые загружает сессия. Protect credentials описывает, что по-прежнему применяется из источников, которые вы исключаете с помощью --setting-sources. Записи mask требуют Claude Code v2.1.221 или более поздней версии.

Подстановка mask работает только через прокси песочницы, поэтому установите sandbox.network.tlsTerminate или allowPlaintextInject для тестовых сетей с обычным HTTP. mask применяется к одному файлу, поэтому перечислите каждый файл учётных данных отдельно. Claude Code принимает, но игнорирует поля mask в записи deny. Mask credentials описывает, какие источники настроек учитываются, а Mask credential files — когда запись откатывается к deny.

Поля маски для файлов

Запись mask принимает эти необязательные поля. Без extract или decode Claude Code заменяет всё содержимое файла одним сигнальным значением. На macOS с включённой изоляцией файловой системы Claude Code применяет запись mask как deny до запуска extract или decode; см. Mask credential files.

Field Type What it does
extract string, a regular expression with at least one capturing group Маскирует только текст, захваченный группой 1 каждого совпадения, чтобы остальная часть файла оставалась пригодной для разбора. Если также установлен decode, Claude Code проверяет каждый захват как возможный JWT вместо прямой замены. Требует v2.1.221 или более поздней версии
onExtractNoMatch "warn", "deny" или "error"; default "warn" Что происходит, когда extract или decode не находит ничего для маскирования. warn оставляет файл доступным для чтения как есть внутри песочницы, deny делает его недоступным для чтения, а error останавливает настройку песочницы, пока вы не исправите конфигурацию. Claude Code рассматривает deny как error, когда блокировка чтения не будет применяться, потому что вы disable filesystem isolation или запись sandbox.filesystem.allowRead повторно открывает путь. Требует v2.1.221 или более поздней версии; случай decode требует v2.1.224 или более поздней версии
decode the string "jwt" Находит JSON Web Tokens (JWT) в файле с помощью встроенного шаблона или с помощью extract, если он установлен, проверяет каждого кандидата и заменяет его структурно корректным поддельным токеном, чтобы код внутри песочницы, который декодирует токен, продолжал работать. Когда ни один кандидат не проходит проверку, результат определяет onExtractNoMatch. Требует v2.1.224 или более поздней версии
maskClaims array of strings, at least one claim name; requires decode Маскирует только указанные утверждения (claims) верхнего уровня полезной нагрузки внутри каждого проверенного JWT и пересобирает токен вокруг изменённой полезной нагрузки, чтобы другие утверждения оставались доступными для чтения. Когда ни одно из указанных утверждений не совпадает, результат определяет onExtractNoMatch. Требует v2.1.224 или более поздней версии
maskDuplicates Boolean, default false Также заменяет дословные копии каждого замаскированного значения в других местах файла, например секрет, вставленный в комментарий. Claude Code сопоставляет необработанные подстроки, поэтому используйте это только для длинных секретов с высокой энтропией. Учитывается, только когда установлен extract или decode. Требует v2.1.221 или более поздней версии
injectHosts array of strings, each a host that sandbox.network.allowedDomains also admits Сужает набор хостов, для которых прокси песочницы подставляет реальное значение. Если не установлено, прокси подставляет его в запросах к каждому хосту в sandbox.network.allowedDomains. Требует v2.1.221 или более поздней версии

Это маскирует только значение oauth_token в файле хостов gh, заменяет все другие его копии в файле, делает файл недоступным для чтения, если шаблон ничего не находит, и подставляет реальный токен только в запросах к api.github.com:

{
  "sandbox": {
    "credentials": {
      "files": [
        {
          "path": "~/.config/gh/hosts.yml",
          "mode": "mask",
          "extract": "oauth_token:\\s*(\\S+)",
          "maskDuplicates": true,
          "onExtractNoMatch": "deny",
          "injectHosts": ["api.github.com"]
        }
      ]
    }
  }
}

`sandbox.credentials.envVars`

Защитите переменные окружения от изолированных команд. С "mode": "deny" Claude Code удаляет переменную из окружения изолированных команд. С "mode": "mask" изолированные команды видят сигнальное значение, уникальное для сессии, а прокси песочницы подставляет реальное значение в исходящих запросах к injectHosts этой записи, поэтому такие инструменты, как gh и npm, продолжают проходить аутентификацию, никогда не получая реальных учётных данных. "mode": "mask" требует Claude Code v2.1.199 или более поздней версии.

  • Scope: Any file. Claude Code отбрасывает записи mask из проектного .claude/settings.json и локального .claude/settings.local.json.
  • Type: array of objects, each with name and a mode of "deny" or "mask", plus the optional mask fields for environment variables
  • Default: не установлено, поэтому никакие переменные окружения не защищены

Это удаляет NPM_TOKEN из изолированных команд и маскирует GITHUB_TOKEN, подставляя реальное значение только в запросах к api.github.com:

{
  "sandbox": {
    "credentials": {
      "envVars": [
        { "name": "NPM_TOKEN", "mode": "deny" },
        { "name": "GITHUB_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}

name должно начинаться с буквы или подчёркивания и содержать только буквы, цифры и подчёркивания. Claude Code объединяет массивы из всех областей действия настроек, которые загружает сессия, и применяет deny, когда одна и та же переменная встречается с обоими режимами. Protect credentials описывает, что по-прежнему применяется из источников, которые вы исключаете с помощью --setting-sources. Записи mask требуют Claude Code v2.1.199 или более поздней версии.

Подстановка mask работает только через прокси песочницы, поэтому установите sandbox.network.tlsTerminate или allowPlaintextInject для тестовых сетей с обычным HTTP; см. Mask credentials. Claude Code принимает, но игнорирует поля mask в записи deny.

Поля маски для переменных окружения

Запись mask принимает эти необязательные поля. Без extract или decode Claude Code заменяет всё значение одним сигнальным значением. extract и decode нельзя комбинировать в одной записи.

Field Type What it does
extract string, a regular expression with at least one capturing group Маскирует только текст, захваченный группой 1 каждого совпадения, например пароль внутри строки подключения DATABASE_URL, чтобы остальная часть значения оставалась пригодной для разбора. Требует v2.1.224 или более поздней версии
onExtractNoMatch "warn", "deny" или "error"; default "warn". В записи с decode принимается только "warn" Что происходит, когда extract ничего не находит. warn передаёт переменную без маскирования, deny удаляет её внутри песочницы, а error останавливает настройку песочницы, пока вы не исправите конфигурацию. Требует v2.1.224 или более поздней версии
decode the string "jwt" Проверяет, что всё значение является JWT, и заменяет его структурно корректным поддельным токеном, чтобы код внутри песочницы, который декодирует токен, продолжал работать; прокси подставляет весь реальный токен в исходящем трафике. Значение, не прошедшее проверку, передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии
maskClaims array of strings, at least one claim name; requires decode Маскирует только указанные утверждения (claims) верхнего уровня полезной нагрузки внутри декодированного JWT и пересобирает токен вокруг изменённой полезной нагрузки, чтобы другие утверждения оставались доступными для чтения. Когда ни одно из указанных утверждений не совпадает, переменная передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии
injectHosts array of strings, each a host that sandbox.network.allowedDomains also admits Сужает набор хостов, для которых прокси песочницы подставляет реальное значение. Если не установлено, прокси подставляет его в запросах к каждому хосту в sandbox.network.allowedDomains. Указывайте IPv6-адрес назначения как сжатый адрес без скобок, например "::1", а не в форме со скобками; см. IPv6 destinations in injectHosts. Требует v2.1.199 или более поздней версии

Это маскирует только пароль внутри DATABASE_URL, удаляет переменную, если шаблон ничего не находит, и маскирует JWT в SERVICE_JWT, оставляя доступными для чтения все утверждения, кроме api_key:

{
  "sandbox": {
    "credentials": {
      "envVars": [
        {
          "name": "DATABASE_URL",
          "mode": "mask",
          "extract": "://[^:]+:([^@]+)@",
          "onExtractNoMatch": "deny"
        },
        {
          "name": "SERVICE_JWT",
          "mode": "mask",
          "decode": "jwt",
          "maskClaims": ["api_key"]
        }
      ]
    }
  }
}

`sandbox.credentials.allowPlaintextInject`

Разрешите подстановку mask в обычных HTTP-запросах, а также в HTTPS с терминированием TLS. При обычном HTTP подлинность вышестоящего сервера не проверяется, а учётные данные передаются в открытом виде, поэтому оставляйте это отключённым за пределами доверенных тестовых сетей. Требует Claude Code v2.1.199 или более поздней версии.

  • Scope: User or managed
  • Type: Boolean
    • true: Claude Code разрешает подстановку mask в обычных HTTP-запросах, а также в HTTPS с терминированием TLS
    • false: Claude Code разрешает подстановку mask только в HTTPS с терминированием TLS
  • Default: false
{
  "sandbox": {
    "credentials": {
      "allowPlaintextInject": true
    }
  }
}

Требует Claude Code v2.1.199 или более поздней версии.

`sandbox.credentials.awsPairs`

Сгруппируйте замаскированные переменные окружения, которые образуют один набор учётных данных AWS, для SigV4 re-signing, когда ваши учётные данные хранятся в переменных с нестандартными именами. Claude Code автоматически связывает стандартную тройку AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY и AWS_SESSION_TOKEN, когда вы маскируете их значения целиком, поэтому этот ключ нужен только для других имён. Требует Claude Code v2.1.224 или более поздней версии.

  • Scope: User or managed
  • Type: array of objects, each with accessKeyIdVar, secretAccessKeyVar, and optionally sessionTokenVar, naming sandbox.credentials.envVars entries
  • Default: не установлено, поэтому связывается только стандартная тройка

Это связывает три переменные с пользовательскими именами в один набор учётных данных AWS для повторного подписания:

{
  "sandbox": {
    "credentials": {
      "awsPairs": [
        {
          "accessKeyIdVar": "MY_KEY_ID",
          "secretAccessKeyVar": "MY_SECRET_KEY",
          "sessionTokenVar": "MY_SESSION_TOKEN"
        }
      ]
    }
  }
}

Каждая указанная переменная должна быть записью mask со значением целиком в sandbox.credentials.envVars, без extract или decode, и может занимать только один слот среди всех пар. Также действуют следующие правила:

  • Прокси повторно подписывает запросы к хостам, перечисленным в injectHosts записи идентификатора ключа доступа
  • Когда установлен sessionTokenVar, прокси отправляет реальный токен как x-amz-security-token в повторно подписанных запросах
  • Указание любой из стандартных переменных в паре заменяет автоматическое связывание

`sandbox.credentials.sigv4`

Выберите, что прокси песочницы делает с формами запросов AWS, которые он не может повторно подписать: streaming — для потоковых загрузок aws-chunked, presigned — для предварительно подписанных URL-адресов и sigv4a — для асимметричных подписей SigV4A. Это применяется только к запросам, подписанным с помощью заполнителя идентификатора ключа доступа замаскированной пары. Требует Claude Code v2.1.224 или более поздней версии.

  • Scope: User or managed
  • Type: object с streaming, presigned и sigv4a, каждый из которых имеет одно из значений:
    • "deny": прокси завершает запрос с ошибкой
    • "passthrough": прокси пересылает запрос, подписанный замаскированным заполнителем, поэтому инструмент получает собственный отказ AWS
  • Default: не установлено, поэтому каждая форма имеет значение "deny"

Это пересылает потоковые загрузки вместо того, чтобы завершать их с ошибкой на прокси:

{
  "sandbox": {
    "credentials": {
      "sigv4": {
        "streaming": "passthrough"
      }
    }
  }
}

С deny прокси завершает запрос с ошибкой. С passthrough прокси пересылает запрос с подписью, вычисленной из замаскированного заполнителя, поэтому AWS его отклоняет, и вызывающий инструмент получает собственный ответ AWS вместо ошибки прокси.

`sandbox.network`

Управляйте тем, к каким хостам, портам и сокетам могут обращаться изолированные команды. Песочница направляет исходящий трафик через прокси, который применяет эти списки; см. Network isolation, чтобы узнать, как прокси принимает решения и когда он запрашивает разрешение.

  • Scope: Any file. strictAllowlist, allowManagedDomainsOnly и tlsTerminate читаются из меньшего числа источников, как указано в их описаниях.
  • Type: object с подключами ниже
  • Default: не установлено, поэтому никакие домены не разрешены заранее, и ваш режим разрешений определяет, что происходит с каждым новым хостом

Это заранее разрешает GitHub и npm, блокирует uploads.github.com и позволяет командам привязываться к localhost:

{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"],
      "deniedDomains": ["uploads.github.com"],
      "allowLocalBinding": true
    }
  }
}

Claude Code объединяет подключи-массивы во всех областях действия настроек, поэтому проект может добавлять домены к вашему пользовательскому списку, если не действует блокировка репозитория. Правила разрешений WebFetch(domain:...) allow и deny пополняют те же списки разрешённых и запрещённых доменов.

`sandbox.network.allowUnixSockets`

Перечислите пути Unix-сокетов, к которым изолированные команды могут подключаться на macOS. Claude Code игнорирует этот список на Linux и WSL2, где фильтр seccomp не может проверять пути сокетов; там используйте вместо этого allowAllUnixSockets.

{
  "sandbox": {
    "network": {
      "allowUnixSockets": ["~/.ssh/agent-socket"]
    }
  }
}

Путь сокета может предоставлять широкий доступ: например, разрешение /var/run/docker.sock позволяет изолированной команде управлять демоном Docker. См. Security limitations.

`sandbox.network.allowAllUnixSockets`

Позвольте изолированным командам подключаться к любым Unix-сокетам. На Linux и WSL2 seccomp filter песочницы блокирует вызовы socket(AF_UNIX, ...), поэтому это единственный способ разрешить там Unix-сокеты. Когда фильтр отсутствует, о чём /sandbox сообщает на вкладке Dependencies, песочница не блокирует вызовы Unix-сокетов. См. Set up Linux and WSL2, чтобы узнать, откуда берётся фильтр.

{
  "sandbox": {
    "network": {
      "allowAllUnixSockets": true
    }
  }
}

На WSL2 true также снова открывает сокет interop, который запускает двоичные файлы Windows, такие как cmd.exe и powershell.exe.

`sandbox.network.allowLocalBinding`

Позвольте изолированным командам на macOS прослушивать сетевые порты, например для запуска сервера разработки, и подключаться к любому порту на localhost. Команда, которая прослушивает адрес, отличный от loopback, принимает подключения с других машин. Ключ не действует на Linux и WSL2, где у каждой изолированной команды есть собственный интерфейс loopback. Чтобы обратиться к серверу на хосте из Linux или WSL2, см. A command fails to reach a server on localhost.

{
  "sandbox": {
    "network": {
      "allowLocalBinding": true
    }
  }
}

`sandbox.network.allowMachLookup`

Перечислите дополнительные имена служб XPC и Mach, которые может искать песочница macOS. Инструментам, взаимодействующим через XPC, таким как iOS Simulator или Playwright, нужно, чтобы их службы были перечислены здесь.

Это разрешает все службы с префиксом com.apple.coresimulator.:

{
  "sandbox": {
    "network": {
      "allowMachLookup": ["com.apple.coresimulator.*"]
    }
  }
}

`sandbox.network.allowedDomains`

Заранее разрешите домены для исходящего трафика изолированных команд, чтобы песочница не запрашивала для них разрешение. Подстановки, такие как *.example.com, совпадают с поддоменами, а необязательный суффикс :port ограничивает запись одним портом; запись без порта совпадает с любым портом.

Это заранее разрешает GitHub на любом порту, все поддомены npm и один хост API только на порту 443:

{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "api.example.com:443"]
    }
  }
}

Записывайте IPv6-литералы в скобках, с необязательным портом: "[::1]" разрешает любой порт, а "[::1]:443" — один порт. Форма со скобками требует Claude Code v2.1.229 или более поздней версии. См. IPv6 addresses in domain lists.

`sandbox.network.deniedDomains`

Заблокируйте домены для исходящего трафика изолированных команд, используя тот же синтаксис подстановок, портов и IPv6, что и allowedDomains. Запрещённый домен остаётся заблокированным, даже когда с ним также совпадает запись allowedDomains.

  • Scope: Any file
  • Type: array of strings, each a domain, wildcard pattern, or IP literal, with an optional :port suffix
  • Default: не установлено
{
  "sandbox": {
    "network": {
      "deniedDomains": ["sensitive.cloud.example.com"]
    }
  }
}

Claude Code объединяет этот список из всех источников настроек, которые загружает сессия, даже когда установлен allowManagedDomainsOnly, поэтому разработчик всегда может ужесточить список запрещённых доменов. Для IPv6-литералов см. IPv6 addresses in domain lists.

Запись с конечной точкой, которая обозначает полностью определённое доменное имя, например example.com., блокирует те же подключения, что и example.com.

`sandbox.network.strictAllowlist`

Запретите изолированным командам доступ к хостам вне списка разрешённых доменов вместо запроса подтверждения. Список разрешённых доменов — это allowedDomains плюс домены из правил WebFetch(domain:...) allow, или только записи управляемых настроек, когда установлен allowManagedDomainsOnly. Locks that apply without an admin-required sandbox описывает записи репозитория. Требует Claude Code v2.1.219 или более поздней версии.

  • Scope: User or managed. Репозиторий не может его включить или отключить.
  • Type: Boolean
    • true: Claude Code запрещает изолированным командам доступ к хостам вне списка разрешённых доменов
    • false: если другой доверенный файл настроек не устанавливает true, Claude Code решает судьбу хоста вне списка разрешённых доменов в зависимости от режима разрешений, а не отказывает сразу: в авторежиме он проверяет хост по per-command allowed domains команды, в режиме dontAsk отказывает, в режиме bypassPermissions и в интерактивных терминальных сессиях режима планирования, где доступен обход, разрешает, а в остальных случаях спрашивает вас
  • Default: false
{
  "sandbox": {
    "network": {
      "strictAllowlist": true
    }
  }
}

Claude Code применяет это только к изолированным командам; внутрипроцессные инструменты, такие как WebFetch, по-прежнему следуют своим permission rules. Когда любой из учитываемых источников устанавливает значение true, оно остаётся включённым. См. Network isolation. Требует Claude Code v2.1.219 или более поздней версии.

`sandbox.network.allowManagedDomainsOnly`

Ограничьте сетевой список разрешённых доменов тем, что определяют управляемые настройки. Тогда Claude Code учитывает только allowedDomains и правила WebFetch(domain:...) allow из управляемых настроек, игнорирует домены из пользовательских, проектных, локальных настроек и --settings и автоматически блокирует неразрешённый домен вместо запроса.

  • Scope: Managed
  • Type: Boolean
    • true: Claude Code учитывает только allowedDomains и правила WebFetch(domain:...) allow из управляемых настроек и блокирует неразрешённый домен вместо запроса
    • false: домены из других файлов настроек могут объединяться в список разрешённых доменов
  • Default: false

Это ограничивает список разрешённых доменов GitHub и npm и игнорирует любые домены, которые добавляют разработчики:

{
  "sandbox": {
    "network": {
      "allowManagedDomainsOnly": true,
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

Пока ключ имеет значение true, песочница является обязательной по требованию администратора, и только управляемые настройки могут задать порт прокси.

Запрещённые домены по-прежнему объединяются из всех источников, которые загружает сессия. См. Keep developers from widening the policy.

`sandbox.network.httpProxyPort`

Укажите песочнице ваш собственный HTTP-прокси вместо того, который запускает Claude Code. Организации делают это, чтобы проверять HTTPS-трафик, применять собственные правила фильтрации или записывать запросы в лог. Ваш прокси берёт на себя фильтрацию, и Claude Code перестаёт применять свои списки доменов и сетевые запросы разрешений к трафику, отправляемому туда. Если не установлено, Claude Code запускает собственный прокси для HTTP-трафика.

{
  "sandbox": {
    "network": {
      "httpProxyPort": 8080
    }
  }
}

Также установите socksProxyPort, если ваш прокси должен обрабатывать и SOCKS-трафик; если установлен только один из двух, Claude Code по-прежнему запускает собственный прокси для другого протокола. См. Custom proxy configuration.

`sandbox.network.socksProxyPort`

Укажите песочнице ваш собственный SOCKS5-прокси вместо того, который запускает Claude Code. Ваш прокси берёт на себя фильтрацию, и Claude Code перестаёт применять свои списки доменов и сетевые запросы разрешений к трафику, отправляемому туда. Если не установлено, Claude Code запускает собственный прокси для SOCKS-трафика.

{
  "sandbox": {
    "network": {
      "socksProxyPort": 8081
    }
  }
}

См. Custom proxy configuration.

`sandbox.network.tlsTerminate`

Заставьте прокси песочницы терминировать TLS, чтобы он мог читать содержимое HTTPS-запросов. Это экспериментальная функция, и она необходима для credential substitution mask. Установите {}, чтобы создать эфемерный центр сертификации для сессии, или установите caCertPath и caKeyPath, чтобы использовать собственный.

  • Scope: User or managed. Репозиторий не может её включить или предоставить центр сертификации.
  • Type: object с необязательными строками caCertPath и caKeyPath, каждая из которых — путь к файлу
  • Default: не установлено, поэтому прокси не терминирует и не проверяет TLS
{
  "sandbox": {
    "network": {
      "tlsTerminate": {}
    }
  }
}

Когда её устанавливают несколько учитываемых источников, Claude Code использует значение из источника с наивысшим приоритетом: управляемые настройки, затем флаг --settings, затем пользовательские настройки. Требует Claude Code v2.1.199 или более поздней версии.

Память и контекст

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

`autoCompactEnabled`

Позвольте Claude Code автоматически компактизировать беседу при приближении контекста к лимиту. Отображается в /config как Auto-compact, и переключение его там записывает этот ключ в ваши пользовательские параметры.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code автоматически компактизирует беседу при приближении контекста к лимиту
    • false: Claude Code не выполняет автоматическую компактизацию
  • Default: true
  • Per-session overrides: DISABLE_AUTO_COMPACT отключает автоматическую компактизацию на одну сессию; какой бы из двух параметров её ни отключил, другой не может её включить обратно
{
  "autoCompactEnabled": false
}

Команда /compact продолжает работать, пока автоматическая компактизация отключена.

`autoCompactWindow`

Установите, насколько полным становится окно контекста перед тем, как Claude Code автоматически выполняет компактизацию.

  • Scope: Any file
  • Type: количество токенов от 100000 до 1000000. Claude Code ограничивает значение окном контекста вашей модели; обзор моделей перечисляет окно каждой модели
  • Default: не установлено, поэтому Claude Code выбирает окно, оптимизированное для вашей модели
  • Per-session overrides: --autocompact имеет приоритет над этим ключом на одну сессию, и CLAUDE_CODE_AUTO_COMPACT_WINDOW имеет приоритет над обоими
{
  "autoCompactWindow": 500000
}

Установите его с помощью команды /autocompact, которая записывает этот ключ в ваши пользовательские параметры. Установка окна автоматической компактизации описывает, как команда, флаг, переменная и параметр взаимодействуют.

`autoMemoryDirectory`

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

  • Scope: Any file
  • Type: строка, абсолютный путь каталога или путь с префиксом ~/
  • Default: не установлено, поэтому Claude Code использует ~/.claude/projects/<project>/memory/
{
  "autoMemoryDirectory": "~/my-memory-dir"
}

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

`autoMemoryEnabled`

Включите или отключите автоматическую память. Когда false, Claude не читает и не записывает в каталог автоматической памяти. Вы также можете переключить её с помощью /memory во время сессии, что записывает этот ключ в ваши пользовательские параметры.

  • Scope: Any file
  • Type: Boolean
    • true: то же самое, что и не установлено; автоматическая память остаётся включённой, если что-то, имеющее приоритет над этим ключом, не отключит её на сессию, например --bare, безопасный режим или CLAUDE_CODE_DISABLE_AUTO_MEMORY
    • false: Claude не читает и не записывает в каталог автоматической памяти
  • Default: true
  • Per-session overrides: CLAUDE_CODE_DISABLE_AUTO_MEMORY имеет приоритет над этим ключом на одну сессию в любом направлении
{
  "autoMemoryEnabled": false
}

`bashOutputMaxChars`

Установите, сколько символов вывода успешной команды Bash или PowerShell Claude получает встроенным образом. Когда вывод превышает лимит, Claude Code сохраняет его в файл, и Claude получает краткий предпросмотр плюс путь к файлу. Увеличьте лимит, когда вывод команды, такой как подробная сборка или полный журнал набора тестов, регулярно превышает значение по умолчанию и вы хотите, чтобы Claude прочитал его без открытия файла. Требуется Claude Code v2.1.261 или позже.

  • Scope: Any file
  • Type: количество символов, положительное целое число. Claude Code ограничивает значение диапазоном 4000 на 128000
  • Default: не установлено, поэтому Claude получает до 30 000 символов встроенным образом
{
  "bashOutputMaxChars": 100000
}

Когда вы устанавливаете этот ключ, Claude Code игнорирует переменную окружения BASH_MAX_OUTPUT_LENGTH.

`claudeMd`

Внедрите инструкции в стиле CLAUDE.md как управляемую организацией память без развёртывания отдельного файла. Claude Code загружает текст как запись управляемой памяти перед файлами CLAUDE.md пользователя и проекта.

  • Scope: Managed
  • Type: строка, текст файла CLAUDE.md; напишите его так, как вы бы написали файл, включая Markdown, с разрывами строк как \n
  • Default: не установлено

Этот пример развёртывает два правила как короткий список Markdown:

{
  "claudeMd": "# Engineering rules\n\n- Always run make lint before committing.\n- Never push directly to main."
}

См. Развёртывание CLAUDE.md на уровне организации.

`claudeMdExcludes`

Пропускайте определённые файлы CLAUDE.md при загрузке Claude Code памяти. В большом монорепозитории используйте его для пропуска файлов CLAUDE.md из других команд, которые не относятся к вашей работе; Исключение нерелевантных файлов CLAUDE.md в руководстве по большим кодовым базам проходит через этот случай. Шаблоны совпадают с абсолютными путями файлов.

  • Scope: Any file
  • Type: массив строк, каждая из которых является шаблоном glob или абсолютным путём
  • Default: не установлено, поэтому Claude Code загружает каждый найденный файл CLAUDE.md
{
  "claudeMdExcludes": ["**/vendor/**/CLAUDE.md"]
}

Исключения применяются только к файлам памяти пользователя, проекта и локальной памяти; файлы CLAUDE.md управляемой политики не могут быть исключены.

`env`

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

  • Scope: Any file
  • Type: объект, отображающий имена переменных на строковые значения
  • Default: не установлено

Этот пример отключает автоматическую компактизацию и маршрутизирует запросы API через прокси:

{
  "env": {
    "DISABLE_AUTO_COMPACT": "1",
    "ANTHROPIC_BASE_URL": "https://proxy.example.com"
  }
}

Как значения `env` взаимодействуют с вашей оболочкой

  • Значение здесь перезаписывает ту же переменную, экспортированную в вашей оболочке, и когда более одного файла параметров устанавливает переменную, применяется наиболее приоритетный. Переменные, которые Claude Code игнорирует в env перечисляет исключения для параметров проекта и локальных параметров.
  • Когда приложение Claude Desktop или самостоятельно размещённая среда запускает сессию, среда запуска, которую оно создаёт, имеет приоритет вместо этого: Claude Code игнорирует значение env из любого файла параметров для переменной, которую среда запуска уже устанавливает. Журнал отладки называет каждую игнорируемую переменную.
  • Чтобы отменить экспорт оболочки, установите переменную на "". Claude Code рассматривает пустое значение как не установленное для выбора поставщика, и подпроцессы наследуют пустое значение.
  • NO_COLOR и FORCE_COLOR, установленные здесь, достигают только подпроцессов. Чтобы изменить цвета собственного интерфейса Claude Code, установите их в вашей оболочке перед запуском claude.
  • Значения здесь представляют собой простой текст в файле параметров и достигают каждого подпроцесса, который запускает Claude Code. Для токена OTLP, который ротируется, используйте otelHeadersHelper; для учётных данных API используйте apiKeyHelper.

Когда Claude Code применяет значения `env`

  • Из пользовательских параметров, --settings и управляемых параметров: при запуске и снова в работающей сессии, когда сохранённое изменение изменяет объединённый env.
  • Из параметров проекта и локальных параметров: после того, как вы доверяете рабочей области, или при запуске в режиме -p, который никогда не показывает диалог доверия, и снова, когда сохранённое изменение изменяет объединённый env.
  • Переменные, которые Claude Code классифицирует как безопасные, такие как выбор модели, тайм-ауты и лимиты, и переключатели функций: при запуске из каждого файла параметров, кроме переменных, которые параметры проекта и локальные параметры не могут устанавливать.
  • После того, как вы переместите сессию с помощью /cd на v2.1.246 или позже: значения env нового каталога проекта и локальные, поверх предыдущего каталога.

Переменные, которые Claude Code игнорирует в `env`

  • Настройки проекта и локальные настройки не могут задавать переменные, которые не должен контролировать извлечённый репозиторий; задавайте их вместо этого в оболочке, пользовательских настройках или управляемых настройках. Claude Code отбрасывает каждую такую переменную, за исключением нескольких значений, отключающих телеметрию, и записывает в лог предупреждение, которое можно увидеть с помощью claude --debug. К ним относятся:

    • Переменные, определяющие, где Claude Code хранит или записывает собственные файлы: CLAUDE_CONFIG_DIR, CLAUDE_CODE_TMPDIR и переменные каталогов операционной системы, такие как HOME, TMPDIR, TMP, TEMP и семейство XDG_*.

    • Переменные Windows, определяющие программы и общесистемную конфигурацию для процессов, которые запускает Claude Code, такие как SystemRoot, ComSpec, ProgramData, LOCALAPPDATA, PATHEXT, PSModulePath и семейство ProgramFiles.

    • Переменные, экспортирующие содержимое сессии: OTEL_LOG_RAW_API_BODIES и пара переменных подробной бета-трассировки ENABLE_BETA_TRACING_DETAILED и BETA_TRACING_ENDPOINT.

    • Переменные экспортера OpenTelemetry, которые включают телеметрию, определяют, куда она отправляется, или определяют, какое содержимое она собирает:

      • CLAUDE_CODE_ENABLE_TELEMETRY, а также пара переменных бета-версии расширенной телеметрии CLAUDE_CODE_ENHANCED_TELEMETRY_BETA и ENABLE_ENHANCED_TELEMETRY_BETA
      • Селекторы экспортеров OTEL_LOGS_EXPORTER, OTEL_METRICS_EXPORTER и OTEL_TRACES_EXPORTER
      • Переменные содержимого OTEL_LOG_USER_PROMPTS, OTEL_LOG_ASSISTANT_RESPONSES, OTEL_LOG_TOOL_CONTENT и OTEL_LOG_TOOL_DETAILS
      • Переменные OTEL_EXPORTER_OTLP_*, имена которых заканчиваются на _ENDPOINT, _HEADERS, _PROTOCOL, _CERTIFICATE, _CLIENT_KEY или _INSECURE, в общей форме и в формах для отдельных сигналов, например OTEL_EXPORTER_OTLP_ENDPOINT и OTEL_EXPORTER_OTLP_METRICS_HEADERS
      • OTEL_EXPORTER_PROMETHEUS_HOST и OTEL_EXPORTER_PROMETHEUS_PORT

      Только эти значения всё ещё применяются из параметров проекта и локальных параметров, потому что они отключают что-то: none для трёх селекторов exporter и значение off, такое как 0 для OTEL_LOG_USER_PROMPTS, OTEL_LOG_TOOL_CONTENT и OTEL_LOG_TOOL_DETAILS. Такое значение переопределяет ту же переменную в ваших пользовательских параметрах, но не ту, которую среда, из которой вы запускаете Claude Code, файл --settings или управляемые параметры устанавливают.

      Когда файл параметров проекта или локальных параметров устанавливает переменную в этой группе, локальная интерактивная сессия показывает уведомление при запуске. Запустите /status или claude doctor, чтобы увидеть, какие из них Claude Code игнорировал и какие отключили телеметрию; оба перечисляют имена, никогда значения. Неинтерактивный запуск с -p или сессия Agent SDK не показывает уведомление, поэтому проверьте, что ваш сборщик всё ещё получает данные после обновления. Если нет, установите переменные в ваши пользовательские параметры, управляемые параметры, среду задания или файл, который вы передаёте с помощью --settings.

      Игнорирование этой группы в параметрах проекта и локальных параметрах требует Claude Code v2.1.282 или позже.

    • Переменные, которые изменяют способ запуска или синхронизации Claude Code, такие как CLAUDE_CODE_PROCESS_WRAPPER, CLAUDE_CODE_SYNC_SKILLS, CLAUDE_CODE_SYNC_PLUGINS, CLAUDE_CODE_PLUGIN_CACHE_DIR и CLAUDE_CODE_PLUGIN_SEED_DIR.

    До v2.1.251 параметры проекта и локальные параметры могли также устанавливать переменные в этом списке, которые выбирают, где Claude Code записывает свои файлы или которые экспортируют содержимое сессии, кроме HOME и XDG_CONFIG_HOME.

  • Переменные идентификации, которыми владеют среды хостинга Claude Code, такие как CLAUDE_CODE_REMOTE и CLAUDE_CODE_ACCOUNT_UUID, игнорируются из каждого файла.

  • CLAUDE_CODE_MESSAGING_SOCKET и CLAUDE_CODE_MESSAGING_TOKEN, которые Claude Code экспортирует сам, игнорируются из каждого файла. Игнорирование переменной сокета требует Claude Code v2.1.224 или позже, а игнорирование токена требует v2.1.228 или позже.

  • CLAUDE_CODE_PROJECT_DIR_NAME, которую Claude Code читает только из среды запуска, игнорируется из каждого файла; требует v2.1.234 или позже.

  • CLAUDE_CODE_RESTRICTED, которую Claude Code читает только из среды запуска, игнорируется из каждого файла.

  • CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY, которую Claude Code читает только из среды запуска, игнорируется из каждого файла. Переменная требует Claude Code v2.1.283 или позже.

  • CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT и CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT, которые Claude Code читает только из среды запуска, игнорируются из каждого файла.

`fileCheckpointingEnabled`

Позвольте Claude Code создавать снимки файлов перед каждым редактированием, чтобы /rewind мог их восстановить. Отображается в /config как Rewind code (checkpoints), и переключение его там записывает этот ключ в ваши пользовательские параметры.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code создаёт снимки файлов перед каждым редактированием, чтобы /rewind мог их восстановить
    • false: Claude Code не создаёт снимки файлов, поэтому /rewind не может их восстановить
  • Default: true
  • Per-session overrides: CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING отключает checkpointing на одну сессию; какой бы из двух параметров его ни отключил, другой не может его включить обратно
{
  "fileCheckpointingEnabled": false
}

В запуске -p или сессии Agent SDK Claude Code игнорирует этот ключ. SDK включает checkpointing с помощью своей опции enableFileCheckpointing, и простой запуск -p требует CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true. См. File checkpointing в Agent SDK.

`plansDirectory`

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

  • Scope: Any file
  • Type: строка, путь относительно корня проекта
  • Default: не установлено, поэтому Claude Code использует ~/.claude/plans
{
  "plansDirectory": "./plans"
}

`skillListingBudgetFraction`

Каждый ход Claude видит список ваших skills с их описаниями, и Claude Code ограничивает этот список долей окна контекста. Когда список превышает лимит, Claude Code сохраняет имя каждого skill, но отбрасывает описания наименее используемых skills, поэтому Claude всё ещё может вызывать эти skills, но менее вероятно выбрать один самостоятельно. Увеличьте этот ключ, чтобы сохранить больше описаний видимыми за счёт большего контекста за ход.

  • Scope: Any file
  • Type: число, доля больше 0 и не более 1
  • Default: 0.01, что резервирует 1% окна контекста
{
  "skillListingBudgetFraction": 0.02
}

Чтобы увидеть, сколько контекста использует список и какие skills вносят наибольший вклад, запустите /doctor.

`skillListingMaxDescChars`

Каждый ход Claude видит список ваших skills, который показывает текст description и when_to_use каждого skill. Этот ключ ограничивает, сколько символов этого текста Claude Code показывает для каждого skill; более длинный текст обрезается на лимите.

  • Scope: Any file
  • Type: количество символов, положительное целое число
  • Default: 1536
{
  "skillListingMaxDescChars": 2048
}

Увеличьте его, чтобы сохранить длинные описания нетронутыми за счёт большего контекста за ход; уменьшите его, чтобы вместить больше skills под skillListingBudgetFraction.

`taskOutputMaxChars`

До v2.1.276 вы устанавливали этот ключ на количество символов вывода фонового задания, которое Claude получал встроенным образом, когда читал задание с помощью инструмента TaskOutput.

Интерфейс и терминал

Измените внешний вид и поведение Claude Code в вашем терминале: тему, режим редактора, строку состояния, спиннер, уведомления внутри сеанса и доступность. См. Конфигурация терминала.

`askUserQuestionTimeout`

Позвольте диалогу AskUserQuestion без ответа автоматически продолжить работу после периода неактивности, отправив любые уже выбранные вами параметры. Установите это значение, когда вы отходите и хотите, чтобы Claude продолжил работу без вас. По умолчанию вопросы ждут, пока вы на них ответите. Требуется Claude Code v2.1.200 или более поздняя версия.

  • Область действия: User or managed
  • Тип: строка, одно из значений "60s", "5m", "10m" или "never"
  • По умолчанию: "never"
  • Переопределения для отдельного сеанса: CLAUDE_AFK_TIMEOUT_MS имеет приоритет над этим ключом для одного сеанса
{
  "askUserQuestionTimeout": "5m"
}

Появляется в /config как Question auto-continue timeout, который записывает этот ключ в пользовательские параметры; Claude Code скрывает строку, пока управляемые параметры или флаг --settings устанавливают ключ. Требуется Claude Code v2.1.200 или более поздняя версия.

`autoContinueAtUsageLimit`

После того как лимит использования claude.ai остановит ваш сеанс, ждите в открытом сеансе и автоматически продолжите задачу после сброса. См. Отключение автоматического продолжения. Требуется Claude Code v2.1.234 или более поздняя версия.

  • Область действия: User or managed. Читается из пользовательских параметров, --settings и управляемых параметров только. Когда ни один из них не устанавливает ключ, файл параметров проекта или локальных параметров, который его устанавливает, отключает функцию, а не игнорируется.
  • Тип: Boolean
    • true: после того как лимит использования claude.ai остановит ваш сеанс, Claude Code ждет в открытом сеансе и автоматически продолжает задачу после сброса
    • false: Claude Code не запускает ожидание самостоятельно. Вы все еще можете начать ожидание самостоятельно из меню параметров лимита использования
  • По умолчанию: true
{
  "autoContinueAtUsageLimit": false
}

Появляется в /config как Continue automatically at usage limit, который записывает этот ключ в пользовательские параметры; Claude Code скрывает строку, пока управляемые параметры или флаг --settings устанавливают ключ.

`autoScrollEnabled`

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

  • Область действия: Any file
  • Тип: Boolean
    • true: разговор следует за новым выводом в конец
    • false: вы остаетесь там, где вы прокручивали, пока Claude продолжает работу; подсказки разрешений все еще появляются ниже стенограммы
  • По умолчанию: true
{
  "autoScrollEnabled": false
}

Появляется в /config как Auto-scroll, когда включено полноэкранное отображение, которое записывает этот ключ в пользовательские параметры.

`axScreenReader`

Отображайте вывод, удобный для программ чтения с экрана: плоский текст без декоративных границ или анимации. Режим программы чтения с экрана использует классический рендерер, поэтому параметр tui не имеет эффекта, пока он активен; прикрепленные фоновые сеансы все еще отображаются в полноэкранном режиме.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code отображает плоский текст без декоративных границ или анимации, используя классический рендерер
    • false: Claude Code отображается нормально
  • По умолчанию: не установлено, поэтому режим программы чтения с экрана отключен
  • Переопределения для отдельного сеанса: --ax-screen-reader имеет приоритет над CLAUDE_AX_SCREEN_READER, и оба имеют приоритет над этим ключом для одного сеанса
{
  "axScreenReader": true
}

`bashEditDiffEnabled`

Выберите, записывает ли Claude Code, какие файлы изменились в репозитории Git, пока выполняется команда Bash. Когда он их записывает, вы видите их diff в терминале после команды, и ваши PostToolUse Bash hooks получают список измененных файлов.

Указанный файл не всегда является файлом, который команда изменила. Изменение, которое другая программа или другой вызов Bash сделали во время выполнения команды, может также появиться там.

Установите ключ на true, чтобы записывать их в каждом режиме разрешений. Требуется Claude Code v2.1.269 или более поздняя версия.

  • Область действия: User or managed. true считается только из ваших пользовательских параметров, JSON, переданного с --settings, или управляемых параметров, поэтому true в файле .claude/settings.json или .claude/settings.local.json репозитория не может включить запись. false в любом файле репозитория все еще отключает его, если только файл с более высоким приоритетом не устанавливает true.
  • Тип: Boolean
  • По умолчанию: не установлено, поэтому Claude Code записывает изменения в режиме auto и режиме bypassPermissions, когда он направляет Claude на редактирование файлов через Bash
  • Переопределения для отдельного сеанса: CLAUDE_CODE_BASH_EDIT_DIFF имеет приоритет над этим ключом для одного сеанса
{
  "bashEditDiffEnabled": true
}

`companyAnnouncements`

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

  • Область действия: Any file
  • Тип: массив строк
  • По умолчанию: не установлено, поэтому объявление не отображается
{
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.example.com"
  ]
}

`defaultShell`

Выберите, запускается ли Bash или PowerShell команды оболочки, которые вы вводите с префиксом ! в поле ввода, те, которые Claude Code запускает напрямую и добавляет в сеанс.

"powershell" работает только при включенном инструменте PowerShell. Инструмент включен по умолчанию в Windows без Git Bash и в Windows с Git Bash для учетных записей claude.ai и Console. В сеансах Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, а также на macOS, Linux и WSL установите CLAUDE_CODE_USE_POWERSHELL_TOOL=1, чтобы включить инструмент. Установите эту переменную на 0, чтобы отключить инструмент.

  • Область действия: Any file
  • Тип: строка, одно из:
    • "bash": Claude Code запускает ваши команды ! в Bash
    • "powershell": Claude Code запускает ваши команды ! в PowerShell
  • По умолчанию: "bash", или "powershell" в Windows, когда Bash недоступен
{
  "defaultShell": "powershell"
}

Если названная вами оболочка недоступна, Claude Code использует другую: "powershell" возвращается к Bash, когда инструмент PowerShell отключен, и "bash" возвращается к PowerShell, когда Bash не установлен.

`dialogExpiry`

Установите крайний срок для диалогов, которые Claude Code пересылает удаленному клиенту, такому как хост Remote Control или SDK, и для диалога одобрения удерживаемого кросс-сеансового сообщения. На Claude Code v2.1.236 или более поздней версии тот же крайний срок ограничивает подсказку согласия на использование кредитов Fable в середине сеанса](/ru/model-config#fable-and-usage-credits) в сеансе, в котором может никого не быть у терминала. Когда ответ не поступает до крайнего срока, Claude Code отменяет диалог и продолжает с его действием по умолчанию без действия. Требуется Claude Code v2.1.224 или более поздняя версия.

  • Область действия: User or managed
  • Тип: строка, одно из "60s", "5m", "10m" или "never", что отключает крайний срок
  • По умолчанию: "5m"
  • Переопределения для отдельного сеанса: CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS имеет приоритет над этим ключом для одного сеанса
{
  "dialogExpiry": "10m"
}

Подсказки разрешений и вопросы AskUserQuestion используют свои собственные потоки и не регулируются этим крайним сроком. Появляется в /config как Dialog expiry, который записывает этот ключ в пользовательские параметры; строка требует Claude Code v2.1.232 или более поздней версии, и Claude Code скрывает ее, пока управляемые параметры или флаг --settings устанавливают ключ.

`editorMode`

Выберите режим сочетания клавиш для приглашения ввода.

  • Область действия: Any file
  • Тип: строка, одно из:
    • "normal": стандартные сочетания клавиш в приглашении ввода
    • "vim": редактирование в стиле vim с режимами NORMAL, INSERT и VISUAL
  • По умолчанию: "normal"
{
  "editorMode": "vim"
}

Появляется в /config как Editor mode, который записывает этот ключ в пользовательские параметры.

`emojiCompletionEnabled`

Показывайте предложения эмодзи, когда вы вводите : плюс сокращение в приглашение ввода, и замените завершенное сокращение, такое как :heart:, его эмодзи. Установите это значение на false, чтобы отключить оба.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code показывает предложения эмодзи после : и заменяет завершенное сокращение его эмодзи
    • false: Claude Code ни предлагает эмодзи, ни заменяет сокращения
  • По умолчанию: true
{
  "emojiCompletionEnabled": false
}

См. Сокращения эмодзи. Требуется Claude Code v2.1.217 или более поздняя версия.

`fileSuggestion`

Запустите вашу собственную команду для предоставления автодополнения пути файла @ вместо встроенного предложения файла. Встроенное предложение использует быстрый обход файловой системы; большой монорепо может работать лучше с индексированием, специфичным для проекта, таким как предварительно построенный индекс файлов.

  • Область действия: Any file. В соответствии с воротами строки состояния и предложения файла, Claude Code отключает команду или запускает только управляемое значение и пропускает ваше без предупреждения.
  • Тип: объект с type, всегда "command", и command, команда оболочки для запуска
  • По умолчанию: не установлено, поэтому Claude Code использует встроенное предложение файла
{
  "fileSuggestion": {
    "type": "command",
    "command": "~/.claude/file-suggestion.sh"
  }
}

После сохранения введите @ с последующей частью пути в приглашение: предложения поступают из вывода вашей команды.

Ввод и вывод команды

Claude Code запускает команду с теми же переменными окружения, что и hooks, включая CLAUDE_PROJECT_DIR, и прекращает ожидание через пять секунд. Команда получает JSON на stdin с полем query, содержащим то, что вы до сих пор вводили:

{"query": "src/comp"}

Выведите пути файлов, разделенные новой строкой, на stdout. Claude Code показывает максимум 15:

src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx

Следующий скрипт читает запрос и передает его индексу файлов репозитория:

#!/bin/bash
query=$(cat | jq -r '.query')
# Replace your-repo-file-index with your own file search command
your-repo-file-index --query "$query" | head -20

`footerLinksRegexes`

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

  • Область действия: User or managed
  • Тип: массив объектов, каждый с type, установленным на "regex", регулярное выражение pattern, шаблон url и необязательный label; заполнители {name} в url и label заполняются из именованных групп захвата в pattern
  • По умолчанию: не установлено, поэтому значки не отображаются

Этот пример соответствует ключам проблем, таким как PROJ-1234, и создает каждую ссылку из захваченного ключа:

{
  "footerLinksRegexes": [
    {
      "type": "regex",
      "pattern": "\\b(?<key>PROJ-\\d+)\\b",
      "url": "https://issues.example.com/browse/{key}",
      "label": "{key}"
    }
  ]
}

С этой конфигурацией, когда PROJ-1234 появляется в результате инструмента или в ответе Claude, значок PROJ-1234 появляется в нижнем колонтитуле, ссылаясь на https://issues.example.com/browse/PROJ-1234.

Ограничения значков

URL, метка и количество значков каждой записи ограничены следующим образом:

Ограничение Поведение
Источник URL Захваченные значения кодируются в URL, и построенный URL должен совместно использовать источник шаблона. Захват может заполнить сегмент пути или значение запроса, но не может изменить, куда указывает ссылка
Длина URL Построенные URL длиннее 2048 символов удаляются
Схема URL Должна быть https, http или признанная схема глубокой ссылки редактора или рабочего пространства: vscode, vscode-insiders, cursor, windsurf, zed, jetbrains, idea, slack, linear, notion, figma
Метка По умолчанию соответствует совпадающему тексту и усекается до 28 столбцов отображения
Количество значков Максимум 5 значков отображаются. Самый старый вытесняется новыми совпадениями, и /clear удаляет их

Когда ход завершается, Claude Code сопоставляет регулярное выражение pattern каждой записи с выводом хода в главном потоке, поэтому медленное регулярное выражение блокирует пользовательский интерфейс до его завершения. Вложенные квантификаторы, такие как (a+)+$, могут занимать экспоненциально долго для определенных входов и заморозить сеанс, поэтому держите каждый pattern линейным и избегайте вложения + или *.

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

`keybindingFlavor`

В v2.1.238 через v2.1.260 установка его на "readline" заставляла Ctrl+W удалять назад к предыдущему пробелу вместо только предыдущего слова.

  • Область действия: Any file
  • Тип: строка, "classic" или "readline"
  • По умолчанию: не установлено

`maxProseWidth`

Ограничьте ширину прозы в ответах Claude, чтобы строки оставались читаемыми в широком терминале. Абзацы, заголовки, списки и цитаты переносятся в пределах этого количества столбцов, в то время как таблицы и блоки кода сохраняют полную ширину терминала. Требуется Claude Code v2.1.282 или более поздняя версия.

  • Область действия: Any file
  • Тип: количество столбцов терминала, целое число, минимум 40. Claude Code игнорирует любое другое значение
  • По умолчанию: не установлено, поэтому проза переносится на край терминала
{
  "maxProseWidth": 80
}

`prefersReducedMotion`

Уменьшите или отключите анимацию интерфейса, такую как спиннер, мерцание и эффекты вспышки. Появляется в /config как Reduce motion.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code уменьшает или отключает анимацию интерфейса, такую как спиннер, мерцание и эффекты вспышки
    • false: то же самое, что не установлено; Claude Code показывает свои анимации
  • По умолчанию: false
{
  "prefersReducedMotion": true
}

`promptSuggestionEnabled`

Показывайте или скрывайте предложения приглашения, затемненные предсказания, которые появляются в вашем приглашении ввода. Установите это значение на false или отключите Prompt suggestions в /config, чтобы скрыть их.

  • Область действия: Any file
  • Тип: Boolean
    • true: вы видите предложения приглашения в вашем приглашении ввода
    • false: Claude Code скрывает предложения приглашения
  • По умолчанию: true
  • Переопределения для отдельного сеанса: CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION имеет приоритет над этим ключом для одного сеанса
{
  "promptSuggestionEnabled": false
}

Предложения приглашения требуют учетную запись claude.ai или Console с включенной телеметрией. На Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, или с отключенной телеметрией, такой как DISABLE_TELEMETRY, этот ключ не имеет эффекта и только CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1 включает их.

`respectGitignore`

Контролируйте, оставляет ли средство выбора файлов @ файлы, которые соответствуют шаблонам .gitignore. Появляется в /config как Respect .gitignore in file picker.

  • Область действия: Any file. Когда ни один файл параметров его не устанавливает, Claude Code возвращается к respectGitignore в ~/.claude.json, который переключатель /config записывает.
  • Тип: Boolean
    • true: средство выбора файлов @ оставляет файлы, которые соответствуют шаблонам .gitignore
    • false: средство выбора файлов @ включает файлы, которые соответствуют шаблонам .gitignore
  • По умолчанию: true
{
  "respectGitignore": false
}

`respondToBashCommands`

Выберите, отвечает ли Claude после того, как вы запустите команду оболочки с префиксом ! в поле ввода. По умолчанию Claude Code добавляет вывод команды в разговор и Claude отвечает на него. Установите этот ключ на false, чтобы добавить вывод в контекст без ответа, чтобы вы могли запустить несколько команд и спросить о них вместе.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code добавляет вывод команды в разговор и Claude отвечает на него
    • false: Claude Code добавляет вывод в контекст без ответа
  • По умолчанию: true
{
  "respondToBashCommands": false
}

См. Режим оболочки с префиксом !.

`showClearContextOnPlanAccept`

Когда Claude завершает план в режиме плана, он показывает меню одобрения. Планирование может использовать много контекста, поэтому этот ключ добавляет первый вариант в это меню, Yes, clear context and …, который одобряет план, очищает контекст разговора и начинает реализацию только из плана. Остальная часть метки называет режим разрешений, в котором продолжается сеанс, и показывает, сколько вашего контекста использовало планирование.

  • Область действия: Any file
  • Тип: Boolean
    • true: меню одобрения плана получает первый вариант, Yes, clear context and …, который одобряет план и очищает контекст разговора
    • false: меню одобрения плана не показывает вариант очистки контекста
  • По умолчанию: false
{
  "showClearContextOnPlanAccept": true
}

`showTurnDuration`

Показывайте или скрывайте сообщение о продолжительности хода после каждого ответа, такое как "Cooked for 1m 6s · done 6:05 PM". Часы после "done" показывают, когда ход завершился; timeFormat и timeZone контролируют его формат и зону. Появляется в /config как Show turn duration.

  • Область действия: Any file. Значение в ~/.claude.json из более старой версии применяется, когда ни один файл параметров его не устанавливает.
  • Тип: Boolean
    • true: вы видите сообщение о продолжительности хода после каждого ответа
    • false: Claude Code скрывает сообщение о продолжительности хода
  • По умолчанию: true
{
  "showTurnDuration": false
}

`spellcheck`

Подчеркивайте неправильно написанные слова в приглашении ввода по мере ввода, используя установленную вами программу проверки орфографии. Claude Code проверяет только текст в поле ввода. Проверка орфографии по мере ввода охватывает установку aspell, hunspell или ispell и то, что проверяет программа проверки. Требуется Claude Code v2.1.235 или более поздняя версия.

  • Область действия: User or managed. Блок из самого высокого уровня, который его устанавливает, применяется в целом.
  • Тип: объект с enabled (Boolean), checker ("aspell", "hunspell", "ispell" или "auto"), language (строка, передаваемая программе проверки как имя ее словаря) и color (строка, имя цвета терминала, #rrggbb, rgb(r,g,b), ansi256(n) или ansi:<name>)
  • По умолчанию: не установлено, поэтому проверка орфографии отключена; checker по умолчанию "auto", первый из трех найденных на PATH; language по умолчанию собственный словарь программы проверки; color по умолчанию цвет ошибки темы
{
  "spellcheck": { "enabled": true, "language": "en_GB" }
}

`spinnerTipsEnabled`

Пока Claude работает, строка спиннера вращается через короткие советы о функциях Claude Code, такие как "Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable." Установите этот ключ на false, чтобы скрыть их. Появляется в /config как Show tips.

  • Область действия: Any file
  • Тип: Boolean
    • true: вы видите советы в спиннере, пока Claude работает
    • false: Claude Code скрывает советы спиннера
  • По умолчанию: true
{
  "spinnerTipsEnabled": false
}

`spinnerTipsOverride`

Добавьте свои собственные советы к советам спиннера, которые Claude Code показывает, пока Claude работает, или замените встроенные советы своими. Claude Code помещает ваши советы в ту же ротацию, что и встроенные.

Если вы установите spinnerTipsEnabled на false, Claude Code скроет все советы, включая ваши.

  • Область действия: Any file. Claude Code соблюдает объекты советов, tipsFile, label и excludeDefault из пользовательских параметров, флага --settings и управляемых параметров; из параметров проекта и локальных параметров он читает только простые строковые советы.
  • Тип: объект с полями tips, tipsFile, label и excludeDefault, каждое необязательное
  • По умолчанию: не установлено, поэтому Claude Code показывает только встроенные советы

Объекты советов, tipsFile, label и правило в строке Scope, что параметры проекта и локальные параметры вносят только простые строки, требуют Claude Code v2.1.247 или более поздней версии.

Каждая запись tips — это простая строка или объект с этими полями:

Поле Обязательно Описание
id Да До 64 букв, цифр, ., _ или -. Claude Code ключает историю показа совета на нем, поэтому охлаждение совета выживает переупорядочение списка. Из двух записей с одинаковым id Claude Code использует первую
text Да Совет, одна строка до 500 символов. Claude Code удаляет ANSI-экранирования и управляющие символы и сворачивает пробелы
cooldownSessions Нет Сеансы Claude Code ждет перед повторным показом совета, 0 до 1000, по умолчанию 0
priority Нет Порядок среди советов, которые не показывались одинаково долго, выше первым, -10 до 10, по умолчанию 0

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

Claude Code читает максимум 200 советов в tips и tipsFile и удаляет неправильную запись с предупреждением отладки вместо отклонения файла параметров.

Используйте оставшиеся поля для именования файла советов, установки префикса и скрытия встроенных советов:

  • tipsFile: абсолютный или ~/ путь к локальному JSON-файлу, содержащему массив одинаковых записей, или объект с массивом tips, до 256 КБ. Claude Code читает файл один раз за процесс, поэтому он загружает ваши правки при следующем запуске. Вы не можете установить его через управляемые параметры сервера; развертывайте встроенные tips там или развертывайте путь в локальном managed-settings.json.
  • label: префикс Claude Code показывает перед советами из пользовательских параметров, --settings и управляемых параметров, до 40 символов. По умолчанию Tip, тот же префикс, что и встроенные советы, и советы из параметров проекта и локальных параметров всегда его используют.
  • excludeDefault: установите его на true, чтобы скрыть встроенные советы и показать только ваши. Когда Claude Code не может загрузить какой-либо из ваших советов, например потому что tipsFile не существует или каждая запись неправильна, он сохраняет встроенную ротацию вместо пустого спиннера.

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

Этот пример в ваших пользовательских параметрах добавляет простой строковый совет и объектный совет в ротацию под префиксом Acme tip:

{
  "spinnerTipsOverride": {
    "label": "Acme tip",
    "tips": [
      "Run /review before opening a PR",
      {
        "id": "gateway-errors",
        "text": "Seeing 5xx errors? Check the gateway status page first",
        "cooldownSessions": 5,
        "priority": 2
      }
    ]
  }
}

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

  • label: Claude Code показывает оба совета как Acme tip: ... вместо Tip: ....
  • Простая строка: Claude Code дает ей значения по умолчанию, поэтому она может появиться снова в очень следующем сеансе.
  • id: Claude Code ключает историю показа второго совета на gateway-errors, поэтому его охлаждение все еще применяется после добавления или переупорядочения советов.
  • cooldownSessions: после того как Claude Code показывает совет gateway-errors, он не показывает этот совет снова до пяти сеансов спустя.
  • priority: когда совет gateway-errors и другой совет не показывались одинаково долго, например когда ни один еще не был показан, Claude Code показывает gateway-errors первым. Простая строка имеет приоритет по умолчанию, 0.

Пока Claude работает, Claude Code показывает ваши советы в спиннере с вашим префиксом, такие как Acme tip: Run /review before opening a PR.

`spinnerVerbs`

Пока ход выполняется, спиннер показывает вращающийся глагол, такой как "Accomplishing", "Architecting" или "Baking". Используйте этот ключ, чтобы добавить свои собственные глаголы в эту ротацию или заменить встроенный список своим.

  • Область действия: Any file
  • Тип: объект с массивом verbs строк и mode, одно из:
    • "append": Claude Code добавляет ваши глаголы к встроенному набору
    • "replace": Claude Code показывает только ваши глаголы
  • По умолчанию: не установлено, поэтому Claude Code использует встроенные глаголы

Этот пример добавляет два глагола к встроенному набору:

{
  "spinnerVerbs": {
    "mode": "append",
    "verbs": ["Pondering", "Crafting"]
  }
}

В режиме "replace" с пустым массивом verbs Claude Code сохраняет встроенные глаголы.

`statusLine`

Запустите вашу собственную команду для отображения строки состояния ниже приглашения с контекстом, таким как модель, стоимость или ветка git. Необязательные поля регулируют интервал, добавляют периодические повторные запуски и скрывают встроенный индикатор режима vim, когда ваш скрипт отображает vim.mode сам.

  • Область действия: Any file. Когда allowManagedHooksOnly включен или disableAllHooks установлен вне управляемых параметров, запускается только значение управляемых параметров.
  • Тип: объект с type, установленным на "command" и строкой command, плюс необязательный padding как количество символов, refreshInterval как количество секунд, минимум 1, и hideVimModeIndicator как Boolean
  • По умолчанию: не установлено, поэтому нет строки состояния

Этот пример выводит имя модели и использование контекста и добавляет два символа горизонтального интервала:

{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
    "padding": 2
  }
}

Пример требует установленного jq и запускается в оболочке. Для эквивалентов PowerShell и Git Bash см. Конфигурация Windows; для полной настройки см. Ручная настройка строки состояния.

`subagentStatusLine`

Когда Claude запускает подагентов, Claude Code перечисляет их в отображении задач ниже приглашения, одна строка на подагента, показывающая name · description · token count. Этот ключ позволяет вам запустить вашу собственную команду для переписания этих строк, например для показа использования контекста каждого подагента в процентах. При каждом обновлении Claude Code отправляет видимые строки как один JSON-объект на stdin с массивом tasks, содержащим id, name, status, model, tokenCount каждого подагента и многое другое, и заменяет строку для каждого id, который вы пишете обратно как строку {"id", "content"}. Строки, которые вы не пишете обратно, сохраняют отображение по умолчанию.

  • Область действия: Any file. Когда allowManagedHooksOnly включен или disableAllHooks установлен вне управляемых параметров, запускается только значение управляемых параметров.
  • Тип: объект с type, установленным на "command" и строкой command
  • По умолчанию: не установлено, поэтому Claude Code отображает строки по умолчанию
{
  "subagentStatusLine": {
    "type": "command",
    "command": "jq -c '.tasks[] | {id, content: \"\\(.name): \\(.tokenCount) tokens\"}'"
  }
}

См. Строки состояния подагента.

`syntaxHighlightingDisabled`

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

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code отключает подсветку синтаксиса в дифах, блоках кода и предпросмотрах файлов
    • false: Claude Code подсвечивает синтаксис
  • По умолчанию: false
{
  "syntaxHighlightingDisabled": true
}

`terminalProgressBarEnabled`

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

Claude Code сообщает об этом только в терминалах, которые поддерживают индикатор: ConEmu, Ghostty 1.2.0 или более поздняя версия и iTerm2 3.6.6 или более поздняя версия. Установите этот ключ на false, чтобы остановить Claude Code от сообщения об этом. Появляется в /config как Terminal progress bar.

  • Область действия: Any file. Значение в ~/.claude.json из более старой версии применяется, когда ни один файл параметров его не устанавливает.
  • Тип: Boolean
    • true: вы видите полосу прогресса терминала в терминалах, которые ее поддерживают
    • false: Claude Code скрывает полосу прогресса терминала
  • По умолчанию: true
{
  "terminalProgressBarEnabled": false
}

`terminalTitleFromRename`

Claude Code устанавливает название вкладки вашего терминала. По умолчанию он использует название, которое он генерирует из разговора, и как только вы дадите сеансу имя с /rename или --name, вкладка показывает это имя вместо этого. Установите этот ключ на false, чтобы сохранить сгенерированное название на вкладке даже после того, как вы назовете сеанс. Само имя все еще применяется, поэтому /resume <name> и средство выбора сеанса его находят.

  • Область действия: Any file
  • Тип: Boolean
    • true: название вкладки терминала показывает имя сеанса, которое вы установили
    • false: вкладка сохраняет название Claude Code генерирует из вашего разговора
  • По умолчанию: true
{
  "terminalTitleFromRename": false
}

Чтобы остановить Claude Code от обновления названия терминала вообще, установите CLAUDE_CODE_DISABLE_TERMINAL_TITLE на 1 вместо этого.

`theme`

Выберите цветовую тему для интерфейса. Появляется в /config как Theme.

  • Область действия: Any file. Значение в ~/.claude.json из более старой версии применяется, когда ни один файл параметров его не устанавливает.
  • Тип: строка, одно из:
    • "auto": соответствует светлому или темному фону вашего терминала
    • "dark": темная тема
    • "light": светлая тема
    • "dark-daltonized": темная тема с удобными для дальтоников цветами
    • "light-daltonized": светлая тема с удобными для дальтоников цветами
    • "dark-ansi": темная тема, использующая только палитру ANSI вашего терминала
    • "light-ansi": светлая тема, использующая только палитру ANSI вашего терминала
    • "custom:<slug>" или "custom:<plugin-name>:<slug>": пользовательская тема из ~/.claude/themes/ или плагина
  • По умолчанию: "dark"
{
  "theme": "light-daltonized"
}

См. Создание пользовательской темы.

`timeFormat`

Выберите, как Claude Code записывает времена, которые он показывает в интерфейсе, такие как done 6:05 PM в конце каждого сообщения о продолжительности хода и временные метки в средстве просмотра стенограммы. Чтобы выбрать предустановку, запустите /config и установите Time format. Требуется Claude Code v2.1.257 или более поздняя версия.

  • Область действия: Any file
  • Тип: строка, одно из:
    • "auto": то же самое, что не установлено; каждое время сохраняет свой встроенный формат, который следует вашей локали в сообщении о продолжительности хода
    • "12-hour": 12-часовые часы
    • "24-hour": 24-часовые часы
    • "24-hour-utc": 24-часовые часы в UTC с Z после минут, такие как 18:05Z; Claude Code игнорирует timeZone для этой предустановки
    • Шаблон strftime, такой как "%H:%M": Claude Code записывает каждое время с шаблоном. Любое значение, содержащее %, является шаблоном, и любое другое значение вне предустановок считается "auto"
  • По умолчанию: "auto"
{
  "timeFormat": "24-hour"
}

/config предлагает только предустановки, поэтому для использования шаблона strftime добавьте ключ в файл параметров. Этот пример показывает каждое время как двузначные 24-часовые часы:

{
  "timeFormat": "%H:%M"
}

Сообщение о продолжительности хода и средство просмотра стенограммы затем показывают времена, такие как 18:05. В средстве просмотра стенограммы шаблон — это вся временная метка, поэтому добавьте директивы даты, когда вы хотите дату там. Этот пример ставит дату перед часами:

{
  "timeFormat": "%Y-%m-%d %H:%M"
}

Те же поверхности затем показывают времена, такие как 2026-09-01 18:05.

`timeZone`

Показывайте времена в интерфейсе в часовом поясе, отличном от вашего системного. Установите его на имя часового пояса IANA, такое как "UTC" или "Europe/Dublin". Времена, которые timeFormat контролирует, затем показываются в этом поясе. Если timeFormat — это "24-hour-utc", времена остаются в UTC и Claude Code игнорирует этот ключ. /config не имеет строки для этого ключа, поэтому установите его в файл параметров. Требуется Claude Code v2.1.257 или более поздняя версия.

  • Область действия: Any file
  • Тип: строка, имя часового пояса IANA. Когда Claude Code не распознает имя, он использует ваш системный часовой пояс
  • По умолчанию: не установлено, поэтому времена показываются в вашем системном часовом поясе
{
  "timeZone": "Europe/Dublin"
}

`tui`

Выберите рендерер пользовательского интерфейса терминала. Используйте "fullscreen" для безмерцающего рендерера alt-screen с виртуализированной прокруткой или "default" для классического рендерера основного экрана. Запуск /tui fullscreen или /tui default записывает этот ключ для вас.

  • Область действия: Any file
  • Тип: строка, одно из:
    • "default": классический рендерер основного экрана
    • "fullscreen": безмерцающий рендерер alt-screen с виртуализированной прокруткой
  • По умолчанию: не установлено, поэтому Claude Code выбирает рендерер для вас
  • Переопределения для отдельного сеанса: CLAUDE_CODE_NO_FLICKER и CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN имеют приоритет над этим ключом для одного сеанса: CLAUDE_CODE_NO_FLICKER=1 включает полноэкранный режим, и CLAUDE_CODE_NO_FLICKER=0 или CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 отключает его; когда оба установлены, Claude Code отключает его
{
  "tui": "fullscreen"
}

Под tmux -CC или через SSH в Windows Claude Code сохраняет классический рендерер, если вы не установите CLAUDE_CODE_NO_FLICKER=1. Фоновые сеансы, открытые из представления агента, всегда используют рендерер полноэкранного режима независимо от этого параметра.

`verbose`

По умолчанию стенограмма сворачивает каждый вызов инструмента в краткое резюме, такое как команда, которую запустил Claude, и количество строк его вывода, и вы нажимаете Ctrl+O, чтобы переключить всю стенограмму в развернутое представление, когда вы хотите детали. Установите этот ключ на true, чтобы показать полный ввод и вывод каждого вызова инструмента встроенным по мере его выполнения, что полезно, когда вы отлаживаете hook, MCP-сервер или длинную команду оболочки. Появляется в /config как Verbose output.

  • Область действия: Any file. Значение в ~/.claude.json из более старой версии применяется, когда ни один файл параметров его не устанавливает.
  • Тип: Boolean
    • true: вы видите полный вывод инструмента
    • false: вы видите усеченные резюме вывода инструмента
  • По умолчанию: false
  • Переопределения для отдельного сеанса: --verbose имеет приоритет над этим ключом для одного сеанса
{
  "verbose": true
}

Значение viewMode или липкий выбор /focus переопределяет этот ключ каждый сеанс.

`viewMode`

Установите представление стенограммы, в котором Claude Code начинается: "default", "verbose" или "focus". Когда установлено, оно переопределяет как липкий выбор /focus, так и параметр verbose.

  • Область действия: Any file
  • Тип: строка, одно из:
    • "default": нормальная стенограмма с усеченным выводом инструмента
    • "verbose": стенограмма с полным выводом инструмента
    • "focus": только ваше последнее приглашение, однострочное резюме вызовов инструментов с редактированием diffstats и финальный ответ. Представление Focus требует рендерера полноэкранного режима
  • По умолчанию: не установлено, поэтому параметр verbose и ваш последний выбор /focus применяются
  • Переопределения для отдельного сеанса: --verbose имеет приоритет над этим ключом для одного сеанса
{
  "viewMode": "focus"
}

`vimInsertModeRemaps`

Сопоставьте двухклавишные последовательности режима INSERT с Escape в режиме редактора vim. Каждый ключ — это ровно два печатаемых символа, введенные последовательно, и "<Esc>" — единственная поддерживаемая цель; Claude Code игнорирует другие записи. Требуется Claude Code v2.1.208 или более поздняя версия.

  • Область действия: User or managed. Репозиторий не может переназначить ваши нажатия клавиш.
  • Тип: объект, сопоставляющий двухсимвольную последовательность с "<Esc>"
  • По умолчанию: не установлено
{
  "vimInsertModeRemaps": {
    "jj": "<Esc>"
  }
}

Не имеет эффекта, если editorMode не "vim". См. Переназначение последовательностей клавиш режима INSERT. Требуется Claude Code v2.1.208 или более поздняя версия.

`voice`

Включите голосовую диктовку и выберите, как ведет себя клавиша диктовки. Claude Code записывает этот объект для вас, когда вы запускаете /voice.

  • Область действия: Any file
  • Тип: объект с enabled как Boolean, autoSubmit как Boolean, который применяется только в режиме удержания, и mode, одно из:
    • "hold": вы удерживаете клавишу диктовки во время разговора и отпускаете ее, чтобы остановить
    • "tap": вы нажимаете клавишу один раз, чтобы начать запись, и снова, чтобы отправить
  • По умолчанию: не установлено, поэтому диктовка отключена; когда enabled — это true и mode не установлен, Claude Code использует "hold"

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

{
  "voice": {
    "enabled": true,
    "mode": "tap"
  }
}

autoSubmit отправляет приглашение, когда вы отпускаете клавишу в режиме удержания. Голосовая диктовка требует учетную запись claude.ai.

`voiceEnabled`

Включите голосовую диктовку с одной формой Boolean, которая предшествует объекту voice. Когда оба установлены, применяется voice.enabled.

  • Область действия: Any file
  • Тип: Boolean
    • true: голосовая диктовка включена, когда вы вошли с учетной записью claude.ai и политика вашей организации позволяет голос, если только voice.enabled не установлен
    • false: голосовая диктовка отключена, если только voice.enabled не установлен
  • По умолчанию: не установлено
{
  "voiceEnabled": true
}

`wheelScrollAccelerationEnabled`

Ускорьте скорость прокрутки колеса мыши во время быстрой прокрутки при полноэкранном отображении. Установите это значение на false для постоянной скорости прокрутки на каждую выемку колеса.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code ускоряет скорость прокрутки колеса мыши во время быстрой прокрутки
    • false: Claude Code прокручивается с постоянной скоростью на каждую выемку колеса
  • По умолчанию: true
{
  "wheelScrollAccelerationEnabled": false
}

Git и атрибуция

Управляйте атрибуцией, которую Claude Code добавляет к коммитам и pull request'ам, и тем, как она работает с git.

`attribution`

Настройте атрибуцию, которую Claude Code добавляет к git коммитам и pull request'ам. По умолчанию коммиты получают git trailer такой как Co-Authored-By; описания pull request'ов получают простой текст. Установите каждую часть отдельно с помощью подключей ниже.

  • Область действия: Any file
  • Тип: объект со строками commit и pr и логическим значением sessionUrl, или false для скрытия всей атрибуции. Значение false требует Claude Code v2.1.281 или позже; более ранние версии его отклоняют и пропускают весь файл пользователя, проекта или локальных параметров, который его содержит
  • По умолчанию: не установлено, поэтому Claude Code использует стандартную атрибуцию, показанную под каждым подключом

Чтобы скрыть всю атрибуцию, установите attribution в false. В файле параметров, который также читают более ранние версии, установите commit и pr в пустые строки и sessionUrl в false вместо этого.

Этот пример заменяет атрибуцию коммита, удаляет атрибуцию pull request'а и убирает ссылку на сеанс:

{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
    "pr": "",
    "sessionUrl": false
  }
}

После того как вы установите commit или pr, Claude Code игнорирует устаревший параметр includeCoAuthoredBy и использует текст по умолчанию для того из двух, который вы оставили без установки.

Claude Code сообщает Claude, что ваши собственные инструкции об атрибуции, такие как CLAUDE.md или правило memory, имеют приоритет над этими строками коммита и PR, если только строка не установлена в управляемых параметрах.

`includeCoAuthoredBy`

Используйте attribution вместо этого, который заменяет этот ключ и позволяет вам изменять или скрывать trailer коммита, текст pull request'а и ссылку на сеанс отдельно. Claude Code по-прежнему соблюдает includeCoAuthoredBy: false из файлов параметров, которые предшествуют attribution, но игнорирует его после того как вы установите attribution.commit или attribution.pr.

  • Область действия: Any file
  • Тип: логическое значение
    • true: то же самое, что и не установлено; Claude Code добавляет trailer коммита и текст атрибуции pull request'а
    • false: Claude Code опускает как trailer коммита, так и текст атрибуции pull request'а, если только attribution не устанавливает commit или pr, в этом случае применяются правила attribution
  • По умолчанию: true
{
  "includeCoAuthoredBy": false
}

Чтобы скрыть всю атрибуцию, см. attribution.

`includeGitInstructions`

Claude Code предоставляет Claude две связанные с git части контекста: встроенные инструкции по написанию коммитов и pull request'ов в описании инструмента Bash и снимок состояния git вашего репозитория. Снимок содержит текущую ветку, основную ветку, вывод git status и недавние коммиты. Claude Code читает его при запуске разговора.

Установите этот ключ в false, чтобы исключить оба, например когда вы используете свои собственные skills рабочего процесса git.

  • Область действия: Any file
  • Тип: логическое значение
    • true: Claude Code включает встроенные инструкции рабочего процесса коммита и pull request'а и снимок состояния git. Облачные сеансы никогда не включают снимок
    • false: Claude Code исключает оба
  • По умолчанию: true
  • Переопределения для каждого сеанса: CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS имеет приоритет над этим ключом для одного сеанса
{
  "includeGitInstructions": false
}

`prUrlTemplate`

Направьте ссылки PR, которые Claude Code отображает, в значке нижнего колонтитула и в сводках результатов инструментов, на внутренний инструмент проверки кода вместо github.com. Claude Code подставляет {host}, {owner}, {repo}, {number} и {url} из URL PR. Ссылки на GitLab merge request на обеих поверхностях сохраняют свой URL GitLab.

  • Область действия: Any file
  • Тип: строка, шаблон URL с использованием любого из пяти заполнителей
  • По умолчанию: не установлено
{
  "prUrlTemplate": "https://reviews.example.com/{owner}/{repo}/pull/{number}"
}

Claude Code применяет шаблон только к ссылкам, которые он отображает сам; номер PR, который Claude пишет в сообщении, такой как #123, остается таким, как его написал Claude. URL, который не имеет формы /pull/<number>, остается без изменений.

`attribution.commit`

Установите текст атрибуции, который Claude Code добавляет к git коммитам, включая любые trailers. Установите его в пустую строку, чтобы скрыть атрибуцию коммита.

  • Область действия: Any file
  • Тип: строка
  • По умолчанию: не установлено, поэтому Claude Code добавляет Co-Authored-By: <name> <noreply@anthropic.com>. Имя — это модель в использовании при создании коммита, такая как Claude Sonnet 5. Когда subagent создает коммит, trailer указывает модель subagent'а.
    • Когда Claude Code распознает модель как модель Claude, но не может подтвердить её точную версию, он пишет только Claude.
    • Когда он не может сопоставить ID модели с какой-либо моделью Claude, такой как модель третьей стороны, обслуживаемая через пользовательский ANTHROPIC_BASE_URL, он пишет Claude Code.

Этот пример заменяет trailer по умолчанию пользовательской строкой и пользовательским trailer'ом Co-Authored-By:

{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>"
  }
}

`attribution.pr`

Установите текст атрибуции, который Claude Code добавляет к описаниям pull request'ов. Установите его в пустую строку, чтобы скрыть атрибуцию pull request'а.

  • Область действия: Any file
  • Тип: строка
  • По умолчанию: не установлено, поэтому Claude Code добавляет 🤖 Generated with [Claude Code](https://claude.com/claude-code)
{
  "attribution": {
    "pr": ""
  }
}

`attribution.sessionUrl`

Выберите, добавляет ли Claude Code ссылку на сеанс claude.ai при коммите или открытии pull request'а из облачного или Remote Control сеанса. Claude Code добавляет ссылку как trailer Claude-Session на коммитах и как ссылку в описаниях pull request'ов. Установите его в false, чтобы опустить ссылку.

  • Область действия: Any file
  • Тип: логическое значение
    • true: Claude Code добавляет ссылку на сеанс claude.ai при коммите или открытии pull request'а из облачного или Remote Control сеанса
    • false: Claude Code опускает ссылку
  • По умолчанию: true
{
  "attribution": {
    "sessionUrl": false
  }
}

Хуки и автоматизация

Регистрируйте хуки, ограничивайте, какие хуки запускаются, и управляйте рабочими процессами. События хуков и их данные описаны в справочнике хуков.

`allowedHttpHookUrls`

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

  • Область действия: Any file. Массивы объединяются между файлами настроек.
  • Тип: массив шаблонов URL-адресов с * в качестве подстановочного символа
  • По умолчанию: не установлено, поэтому разрешены любые URL-адреса

Этот пример разрешает любой URL-адрес под https://hooks.example.com/ и любой URL-адрес http://localhost:

{
  "allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
}

Сопоставление имён хостов не зависит от регистра и рассматривает hooks.example.com. с конечной точкой, которая обозначает полное доменное имя, так же, как hooks.example.com, что соответствует тому, как это делает DNS. Список разрешённых URL-адресов применяется к хукам из каждого источника, включая управляемые настройки.

`allowManagedHooksOnly`

Ограничьте выполнение хуков только хуками, которые развёртывает ваша организация.

  • Область действия: Managed
  • Тип: Boolean
    • true: запускаются только управляемые хуки, а также хуки Agent SDK и хуки из плагинов, которые ваши управляемые настройки принудительно включают. См. Что запускается при allowManagedHooksOnly
    • false: запускаются хуки из всех областей действия настроек и всех плагинов
  • По умолчанию: не установлено, поэтому запускаются хуки из всех областей действия настроек и всех плагинов
{
  "allowManagedHooksOnly": true
}

Что запускается при `allowManagedHooksOnly`

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

  • Запускаются управляемые хуки и хуки SDK: хуки из управляемых настроек и хуки, которые Agent SDK регистрирует в процессе
  • Запускаются хуки принудительно включённых плагинов: хуки из плагинов, которые ваши управляемые настройки принудительно включают через enabledPlugins. Claude Code сопоставляет полный ID plugin@marketplace, поэтому плагин с тем же именем из другого маркетплейса остаётся заблокированным. Это позволяет вам распространять проверенные хуки через маркетплейс организации, блокируя всё остальное. Mod в таком плагине загружается, только если он считается модом вашей организации
  • Всё остальное блокируется: пользовательские, проектные и локальные хуки, хуки и mods из других установленных плагинов, а также хуки, объявленные во frontmatter агента. Mods, встроенные в Claude Code, продолжают работать. Чтобы блокировать только mods пользователей, установите вместо этого allowManagedModsOnly.
  • Плагины с источником-командой отключаются: Claude Code также отключает плагины с источником command, включая плагины, принудительно включённые в управляемых enabledPlugins, если вы явно не установите disableCommandPluginSources в false
  • Команды headersHelper маркетплейсов блокируются: Claude Code также блокирует команды headersHelper маркетплейсов, если disableCommandPluginSources явно не установлен в false, за исключением маркетплейса, который объявлен в самих управляемых настройках. Требуется Claude Code v2.1.238 или новее
  • Строка состояния и предложение файлов ограничиваются управляемыми настройками: Claude Code читает statusLine, fileSuggestion и subagentStatusLine только из управляемых настроек, следуя правилам для строки состояния и предложения файлов

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

`disableAllHooks`

Отключите хуки, любую пользовательскую строку состояния и любую пользовательскую команду предложения файлов. Используйте это, чтобы временно отключить всё это, не удаляя из ваших настроек.

  • Область действия: Any file. Только управляемые настройки могут отключать управляемые хуки.
  • Тип: Boolean
    • true: Claude Code отключает хуки, любую пользовательскую строку состояния и любую пользовательскую команду предложения файлов
    • false: хуки, строка состояния и команда предложения файлов запускаются
  • По умолчанию: не установлено, поэтому хуки запускаются
{
  "disableAllHooks": true
}

Охват зависит от того, в каком файле находится ключ:

  • В управляемых настройках: Claude Code отключает каждый настроенный хук, включая управляемые, и продолжает запускать хуки, которые Agent SDK регистрирует в процессе
  • В любом другом файле настроек: Claude Code отключает пользовательские, проектные, локальные хуки и хуки плагинов; управляемые хуки, хуки Agent SDK и хуки из плагинов, принудительно включённых в управляемых enabledPlugins, продолжают запускаться

Ключ также останавливает mods — плагины, код которых регистрирует хуки:

  • В управляемых настройках: останавливаются mods во всех установленных плагинах, включая mods вашей организации
  • В любом другом файле настроек: останавливаются установленные вами mods, а mods вашей организации продолжают работать

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

Чтобы хуки Agent SDK продолжали запускаться, когда этот ключ задан в управляемых настройках, требуется Claude Code v2.1.242 или новее.

Команда /goal не может запуститься, пока хуки отключены, а меню /hooks показывает уведомление вместо ваших хуков.

Правила для строки состояния и предложения файлов

Claude Code принимает два решения для statusLine, fileSuggestion и subagentStatusLine в следующем порядке:

При ограничении Claude Code использует управляемое значение, если оно развёрнуто. В противном случае он без предупреждения пропускает ваше значение: строка состояния отключается, а автодополнение @ возвращается к встроенному предложению файлов.

`disableWorkflows`

Отключите динамические рабочие процессы и встроенные команды рабочих процессов для всех, на кого распространяются ваши настройки, например для организации через управляемые настройки. Чтобы включить или отключить рабочие процессы только для себя, используйте вместо этого enableWorkflows, который переключатель Dynamic workflows в /config записывает в ваши пользовательские настройки.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code отключает динамические рабочие процессы и встроенные команды рабочих процессов для всех, на кого распространяются ваши настройки
    • false: то же, что и отсутствие значения; включены ли рабочие процессы, тогда определяется enableWorkflows и значением по умолчанию вашего плана
  • По умолчанию: false
  • Переопределения для отдельной сессии: CLAUDE_CODE_DISABLE_WORKFLOWS отключает рабочие процессы на одну сессию; какой бы из двух механизмов их ни отключил, другой не может включить их обратно
{
  "disableWorkflows": true
}

`enableWorkflows`

Включите или отключите динамические рабочие процессы для себя, когда значение по умолчанию вашего плана вам не подходит. Отображается в /config как Dynamic workflows; этот переключатель записывает ключ в ваши пользовательские настройки и снова удаляет его, когда вы возвращаетесь к значению по умолчанию вашего плана. Чтобы отключить рабочие процессы для всех через управляемые настройки, используйте вместо этого disableWorkflows.

  • Область действия: Any file
  • Тип: Boolean
    • true: Claude Code включает для вас динамические рабочие процессы
    • false: Claude Code отключает для вас динамические рабочие процессы
  • По умолчанию: не установлено, поэтому рабочие процессы включены, если только вы не на плане Pro, где они отключены
  • Переопределения для отдельной сессии: CLAUDE_CODE_DISABLE_WORKFLOWS отключает рабочие процессы на одну сессию, и значение true здесь не может включить их обратно, пока эта переменная установлена
{
  "enableWorkflows": true
}

disableWorkflows и политика рабочих процессов вашей организации также имеют приоритет: enableWorkflows: true не может включить рабочие процессы обратно, пока какой-либо источник их отключает. Claude Code скрывает строку в /config, пока источник, отличный от ваших пользовательских настроек, устанавливает enableWorkflows или устанавливает disableWorkflows в true.

`hooks`

Запускайте собственные команды, промпты, агентов, HTTP-запросы или инструменты MCP в качестве хуков в определённых точках жизненного цикла Claude Code, например перед вызовом инструмента или при запуске сессии; в справочнике хуков перечислены все события, их данные и коды выхода. Каждое событие сопоставляется со списком групп matcher, и каждая группа перечисляет обработчики, которые запускаются, когда matcher срабатывает.

  • Область действия: Any file. Хуки из разных файлов объединяются, а не заменяют друг друга, и хуки из управляемых настроек нельзя удалить из других файлов.
  • Тип: объект, ключами которого являются события хуков; каждое значение — массив групп { "matcher", "hooks" }, записи hooks которых имеют type со значением "command", "prompt", "agent", "http" или "mcp_tool"
  • По умолчанию: не установлено, поэтому хуки не запускаются

Этот пример запускает скрипт перед каждым вызовом инструмента Bash:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "~/.claude/hooks/check-bash.sh" }
        ]
      }
    ]
  }
}

Описание всех событий, шаблонов matcher и полей обработчиков см. в справочнике хуков. Чтобы отключить хуки, см. disableAllHooks; чтобы ограничить хуки только теми, которые развёртывает ваша организация, см. allowManagedHooksOnly.

`httpHookAllowedEnvVars`

HTTP-хук может подставить значение переменной окружения в заголовок запроса, например в заголовок Authorization: Bearer $HOOK_TOKEN, но только для переменных, которые хук перечисляет в собственном allowedEnvVars. Этот ключ задаёт внешнее ограничение этого списка для каждого HTTP-хука: хук может использовать переменную, только если её называют и его собственный allowedEnvVars, и этот ключ. Используйте его, чтобы не дать хуку прочитать секрет, к которому у него не должно быть доступа, даже если определение хука его запрашивает.

  • Область действия: Any file. Массивы объединяются между файлами настроек.
  • Тип: массив имён переменных окружения
  • По умолчанию: не установлено, поэтому применяется собственный список allowedEnvVars каждого хука

Этот пример ограничивает подстановку в заголовки переменными MY_TOKEN и HOOK_SECRET:

{
  "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
}

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

`workflowKeywordTriggerEnabled`

Выберите, запускает ли ввод ключевого слова ultracode в промпте динамический рабочий процесс. Установите false, чтобы вводить это слово, не запуская рабочий процесс.

  • Область действия: Any file. Отображается в /config как Ultracode keyword trigger.
  • Тип: Boolean
    • true: ввод ultracode в промпте запускает динамический рабочий процесс
    • false: вы можете вводить это слово, не запуская рабочий процесс
  • По умолчанию: true
{
  "workflowKeywordTriggerEnabled": false
}

Настройка усилия ultracode, /workflows и сохранённые команды рабочих процессов не затрагиваются.

`workflowSizeGuideline`

Задайте количество агентов, к которому стремится Claude в создаваемых им динамических рабочих процессах. Claude Code передаёт значение Claude как рекомендацию, а не как жёсткий предел: "small" запрашивает менее 5 агентов, "medium" — менее 10, а "large" — менее 50. Выберите "small", если хотите ограничить расходы рабочего процесса. Требуется Claude Code v2.1.219 или новее.

  • Область действия: Any file. Значение из файла настроек имеет приоритет над выбором Dynamic workflow size в /config, который Claude Code хранит в ~/.claude.json, и Claude Code скрывает эту строку, пока ключ задан в файле настроек.
  • Тип: строка, одно из значений:
    • "unrestricted": рекомендации нет, поэтому Claude подбирает размер рабочего процесса под задачу
    • "small": Claude стремится использовать менее 5 агентов
    • "medium": Claude стремится использовать менее 10 агентов
    • "large": Claude стремится использовать менее 50 агентов
  • По умолчанию: "medium" или "small", если вы вошли с планом Pro и используете Claude Code v2.1.271 или новее
{
  "workflowSizeGuideline": "small"
}

Требуется Claude Code v2.1.219 или новее; в версиях с v2.1.202 по v2.1.218 вместо этого задавайте рекомендацию в /config.

Plugins and skills

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

`disableBundledSkills`

Отключите skills и рабочие процессы, включённые в Claude Code. Claude Code полностью удаляет встроенные skills и рабочие процессы, в то время как встроенные команды, такие как /init, остаются доступными для ввода, но скрыты от модели.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code удаляет встроенные skills и рабочие процессы и скрывает встроенные команды, такие как /init, от модели
    • false: встроенные skills загружаются
  • Default: не установлено, поэтому встроенные skills загружаются
  • Per-session overrides: CLAUDE_CODE_DISABLE_BUNDLED_SKILLS установлено на 1 отключает встроенные skills на одну сессию; какой бы из двух способов их ни отключил, другой не сможет их включить обратно
{
  "disableBundledSkills": true
}

Skills из плагинов, .claude/skills/ и .claude/commands/ не затрагиваются. /doctor остаётся доступным для ввода, как встроенные команды; чтобы скрыть его, установите DISABLE_DOCTOR_COMMAND вместо этого.

`disableSkillShellExecution`

Отключите встроенное выполнение shell для !`...` и ```! блоков в skills и пользовательских команд из источников пользователя, проекта, плагина или дополнительного каталога. Claude Code заменяет каждую команду на [shell command execution disabled by policy] вместо её выполнения.

  • Scope: Any file. true в управляемых параметрах не может быть переопределён на false в другом месте.
  • Type: Boolean
    • true: Claude Code заменяет каждую встроенную shell команду на [shell command execution disabled by policy] вместо её выполнения
    • false: встроенный shell выполняется
  • Default: не установлено, поэтому встроенный shell выполняется
{
  "disableSkillShellExecution": true
}

Встроенные skills и skills, развёрнутые через управляемые параметры, не затрагиваются.

`skillOverrides`

Скройте или свёрните skill без редактирования его SKILL.md. Claude Code применяет значение под именем каждого skill к списку skills, который видит Claude, и к вашему автодополнению /.

  • Scope: Any file. Меню /skills записывает в .claude/settings.local.json.
  • Type: объект, отображающий имя skill на одно из:
    • "on": Claude видит skill и вы можете ввести /name
    • "name-only": Claude видит skill по имени без его описания
    • "user-invocable-only": Claude не видит skill, но вы всё ещё можете ввести /name
    • "off": Claude не видит skill и /name скрыт из автодополнения
  • Default: не установлено, поэтому каждый skill имеет значение "on"

Этот пример перечисляет legacy-context для Claude только по имени и скрывает deploy от Claude и из автодополнения /:

{
  "skillOverrides": {
    "legacy-context": "name-only",
    "deploy": "off"
  }
}

Переопределения не применяются к skills плагинов, которыми вы управляете через /plugin.

В управляемых параметрах и файлах, переданных с --settings, ключ на псевдониме встроенного skill, такой как checkup для /doctor, также применяется к skill; см. как ключи псевдонимов объединяются с ключами на собственном имени skill.

`syncClaudeAiSkills`

Отключите загрузку skills, включённых для вашей учётной записи claude.ai. Claude Code загружает их в ~/.claude/skills/synced/ в сеансах терминала, где вы входите с вашей учётной записью claude.ai, интерактивных или неинтерактивных, а также в сеансах Cowork и облачных сеансах. Установите false, чтобы остановить эту загрузку и остановить загрузку skills, которые она уже синхронизировала. Claude Code учитывает только false: true то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена.

  • Scope: User, local, or managed, и файлы, переданные с --settings. Репозиторий не может отключить её для вас.
  • Type: Boolean
    • false: Claude Code прекращает загрузку синхронизированных skills и прекращает загрузку тех, которые уже находятся в ~/.claude/skills/synced/. В пользовательских или управляемых параметрах он также перемещает их в ~/.claude/skills/.trash/
    • true: то же самое, что и не установлено
  • Default: не установлено, поэтому сеансы, в которых вы входите с вашей учётной записью claude.ai, синхронизируют ваши skills

Этот пример предотвращает загрузку skills учётной записи машиной в любом сеансе:

{
  "syncClaudeAiSkills": false
}

`syncClaudeAiPlugins`

Отключите загрузку плагинов, включённых для вашей учётной записи claude.ai. Claude Code загружает их в ~/.claude/plugins/synced/ в начале сеансов терминала, где вы входите с вашей учётной записью claude.ai, и в сеансах Cowork, и загружает каждый как <name>@synced. Установите false, чтобы остановить эту загрузку и остановить загрузку плагинов, которые она уже синхронизировала. Claude Code учитывает только false: true то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена. Требуется Claude Code v2.1.273 или позже.

  • Scope: User, local, or managed, и файлы, переданные с --settings. Репозиторий не может отключить её для вас.
  • Type: Boolean
    • false: Claude Code прекращает загрузку синхронизированных плагинов и прекращает загрузку тех, которые уже находятся в ~/.claude/plugins/synced/. В пользовательских или управляемых параметрах он также перемещает их в ~/.claude/plugins/.trash/
    • true: то же самое, что и не установлено
  • Default: не установлено, поэтому сеансы, в которых вы входите с вашей учётной записью claude.ai, синхронизируют ваши плагины

Чтобы отключить один синхронизированный плагин вместо всех, установите "<name>@synced": false в enabledPlugins.

Этот пример предотвращает загрузку плагинов учётной записи машиной в любом сеансе:

{
  "syncClaudeAiPlugins": false
}

`allowedChannelPlugins`

Выберите, какие channel плагины могут отправлять сообщения в сеансы в вашей организации. Когда вы это установите, Claude Code использует ваш список вместо списка разрешений Anthropic по умолчанию; каждая запись называет плагин и маркетплейс, из которого он поступает.

  • Scope: Managed
  • Type: массив объектов, каждый с строками marketplace и plugin. Запись может быть вместо этого строкой "plugin@marketplace", такой как "telegram@claude-plugins-official", которую Claude Code рассматривает как эквивалентный объект. Форма строки требует Claude Code v2.1.267 или позже; более ранние версии отклоняют всё значение allowedChannelPlugins, когда оно содержит одну
  • Default: не установлено, поэтому Claude Code использует список разрешений Anthropic по умолчанию

Этот пример включает channels и разрешает только плагин Telegram из официального маркетплейса Anthropic:

{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "claude-plugins-official", "plugin": "telegram" }
  ]
}

Пустой массив блокирует каждый channel плагин.

Этот ключ вступает в силу после того, как channels пройдут ворота channelsEnabled для учётной записи: на планах Team и Enterprise, а также на учётных записях Console с управляемыми параметрами, это означает channelsEnabled: true. См. Ограничьте, какие channel плагины могут работать.

`blockedMarketplaces`

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

Если вы установите этот ключ в консоли администратора claude.ai, claude.ai также применит его, когда кто-либо в вашей организации добавит маркетплейс из репозитория git на claude.ai, как описано в Как работают ограничения.

  • Scope: Managed
  • Type: массив объектов источника маркетплейса в тех же формах, что и strictKnownMarketplaces
  • Default: не установлено, поэтому ни один маркетплейс не заблокирован

Этот пример блокирует один репозиторий GitHub как источник маркетплейса:

{
  "blockedMarketplaces": [
    { "source": "github", "repo": "untrusted/plugins" }
  ]
}

Запись github может использовать форму с подстановочным знаком владельца "owner/*" для блокировки каждого репозитория под этим владельцем GitHub, что требует Claude Code v2.1.223 или позже. Добавьте { "source": "skills-dir" }, чтобы остановить загрузку Claude Code @skills-dir плагинов из ~/.claude/skills/ без ограничения какого-либо маркетплейса. См. Управляемые ограничения маркетплейса.

`channelsEnabled`

Разрешите channels для вашей организации. На планах claude.ai Team и Enterprise Claude Code блокирует channels до тех пор, пока вы не установите это на true. Для учётных записей Anthropic Console, которые аутентифицируются с помощью ключа API, channels разрешены по умолчанию. Если ваша организация развёртывает управляемые параметры, Claude Code блокирует channels на этих учётных записях до тех пор, пока вы не установите этот ключ на true.

  • Scope: Managed
  • Type: Boolean
    • true: Claude Code разрешает channels для вашей организации
    • false: то же самое, что и не установлено; блокируются ли channels, зависит от вашего плана, как указано в Default
  • Default: не установлено; channels блокируются на планах Team и Enterprise и на учётных записях Console с управляемыми параметрами, и разрешены на планах Pro и Max и на учётных записях Console без управляемых параметров
{
  "channelsEnabled": true
}

Чтобы ограничить, какие плагины могут регистрироваться как channels после их включения, установите allowedChannelPlugins. См. Элементы управления Enterprise.

`disableCommandPluginSources`

Заблокируйте источник плагина command, который устанавливает плагин, запуская объявленную маркетплейсом команду на машине пользователя. Когда вы установите это на true, Claude Code никогда не запускает команду, не устанавливает и не обновляет плагины, полученные из command, и прекращает загрузку уже установленных. Установите на false, чтобы явно разрешить их. Всякий раз, когда он блокирует command источники, независимо от того, установили ли вы это на true или оставили не установленным под allowManagedHooksOnly, он также блокирует маркетплейс headersHelper команды, за исключением маркетплейса, который сами управляемые параметры объявляют. Требуется Claude Code v2.1.229 или позже, и блокировка headersHelper требует v2.1.238 или позже.

  • Scope: Managed
  • Type: Boolean
    • true: Claude Code никогда не запускает объявленную маркетплейсом команду, не устанавливает и не обновляет плагины, полученные из command, и прекращает загрузку уже установленных
    • false: Claude Code явно разрешает плагины, полученные из command
  • Default: не установлено, поэтому Claude Code следует allowManagedHooksOnly: организация, которая ограничивает выполнение hook только управляемыми параметрами, также получает отключённые command источники
{
  "disableCommandPluginSources": true
}

Требуется Claude Code v2.1.229 или позже.

`pluginSuggestionMarketplaces`

Назовите маркетплейсы, чьи плагины могут появляться как контекстные предложения по установке, в советах спиннера и закреплённые в верхней части вкладки /plugin Discover. Встроенное предложение первой стороны по дизайну фронтенда не затрагивается. Предложения поступают из объявления relevance каждого плагина в его записи маркетплейса.

  • Scope: Managed
  • Type: массив имён маркетплейсов
  • Default: не установлено, поэтому никакие объявленные маркетплейсом предложения не появляются
{
  "pluginSuggestionMarketplaces": ["acme-corp-plugins"]
}

Имя вступает в силу только когда маркетплейс зарегистрирован на машине и его зарегистрированный источник также объявлен в тех же управляемых параметрах, либо как запись extraKnownMarketplaces для этого имени, либо как запись strictKnownMarketplaces. Claude Code игнорирует маркетплейс, зарегистрированный из другого источника под разрешённым именем. Официальный маркетплейс освобождён от требования источника: разрешение только его имени достаточно, так как это имя может регистрироваться только из официального источника Anthropic. См. Предложите плагины по контексту.

`pluginTrustMessage`

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

  • Scope: Managed
  • Type: string
  • Default: не установлено, поэтому Claude Code показывает только стандартное предупреждение
{
  "pluginTrustMessage": "All plugins from our marketplace are approved by IT"
}

`strictKnownMarketplaces`

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

Если вы установите этот ключ в консоли администратора claude.ai, claude.ai также применит его, когда кто-либо в вашей организации добавит маркетплейс из репозитория git на claude.ai, как описано в Как работают ограничения.

  • Scope: Managed
  • Type: массив объектов источника маркетплейса; см. Разрешённые типы источников
  • Default: не установлено, поэтому пользователи могут добавлять любой маркетплейс. Пустой массив — это полная блокировка, которая блокирует каждый источник маркетплейса, включая официальный маркетплейс Anthropic

Этот пример разрешает два репозитория GitHub, один закреплённый на ref v2.0, и один размещённый URL маркетплейса marketplace.json:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/approved-plugins" },
    { "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" },
    { "source": "url", "url": "https://plugins.example.com/marketplace.json" }
  ]
}

Вы также можете написать этот ключ как allowedMarketplaces; Псевдонимы ключей маркетплейса описывает, как Claude Code рассматривает псевдоним и какая версия его принимает. Этот ключ — это ворота политики: он контролирует, что пользователи могут добавлять, но ничего не регистрирует. Чтобы ограничить и предварительно зарегистрировать в одном файле, см. Объедините с extraKnownMarketplaces. Для представления, обращённого к пользователю, см. Управляемые ограничения маркетплейса.

Allowed source types

Каждая запись ниже показывает одну запись списка разрешений на тип источника и поля, которые она принимает. Большинство типов совпадают точно; hostPattern и pathPattern совпадают по регулярному выражению, и записи github могут использовать подстановочный знак владельца.

Source Example entry Fields
github { "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" } repo обязателен; ref — это ветка или тег; path — это подкаталог
git { "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" } url обязателен; ref и path как для github
url { "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } } url обязателен; headers добавляет HTTP заголовки для аутентифицированного доступа
file { "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" } path обязателен, абсолютный путь к файлу marketplace.json
directory { "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" } path обязателен, абсолютный путь к каталогу, содержащему .claude-plugin/marketplace.json
hostPattern { "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" } hostPattern обязателен, регулярное выражение, совпадающее в любом месте хоста маркетплейса; закрепите его с помощью ^ и $, чтобы совпадать со всем хостом
pathPattern { "source": "pathPattern", "pathPattern": "^/opt/approved/" } pathPattern обязателен, регулярное выражение, совпадающее в любом месте path источников file и directory; начните его с ^, чтобы закрепить префикс
skills-dir { "source": "skills-dir" } Нет полей. Включает сканирование плагина ~/.claude/skills/ обратно

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

  • url: маркетплейс URL загружает только файл marketplace.json, и Claude Code не получает файлы плагинов по относительному пути с этого сервера, поэтому его плагины должны использовать источник плагина, отличный от относительного пути, такой как URL архива, который может быть на том же хосте. Для плагинов с относительными путями используйте маркетплейс на основе Git. См. Плагины с относительными путями не работают в маркетплейсах на основе URL.

  • hostPattern: используйте его, чтобы разрешить каждый маркетплейс на внутреннем GitHub Enterprise или GitLab сервере без перечисления каждого репозитория. Claude Code совпадает с источниками github против github.com, берёт имя хоста из источников url и берёт его из источников git в зависимости от формы git URL:

    • URL со схемой, такой как https:// или ssh://: имя хоста в URL.
    • SSH адрес без схемы, в форме user@host:path git, такой как git@git.example.com:tools/plugins.git: хост между @ и :, который является хостом, к которому подключается git.
    • Любая другая форма без схемы: нет хоста, поэтому ни одна запись strictKnownMarketplaces hostPattern не совпадает с ней. Для blockedMarketplaces hostPattern, Claude Code берёт хост из более широкого набора форм, поэтому запись списка блокировки всё ещё может совпадать с такой формой. До v2.1.234, strictKnownMarketplaces hostPattern также совпадала с некоторыми формами, которые git не рассматривает как SSH адреса.

    Источники file и directory не имеют хоста и никогда не совпадают с записью hostPattern.

  • pathPattern: используйте его, чтобы разрешить маркетплейсы файловой системы наряду с записями hostPattern для сетевых источников. ".*" разрешает каждый локальный путь; более узкий паттерн, такой как "^/opt/approved/", ограничивает каталогом.

Любой список разрешений, даже пустой, также останавливает загрузку Claude Code @skills-dir плагинов из ~/.claude/skills/. Добавьте запись { "source": "skills-dir" }, чтобы продолжить их загрузку; запись не имеет значения вне этого ключа и blockedMarketplaces.

Owner wildcards

Запись github, чьё значение repo — это "<owner>/*", совпадает с каждым репозиторием под этим владельцем GitHub. Подстановочные знаки владельца требуют Claude Code v2.1.223 или позже и работают только в strictKnownMarketplaces и blockedMarketplaces. Везде, где источник github появляется, такой как extraKnownMarketplaces или /plugin marketplace add, значение repo должно называть один репозиторий. До v2.1.223, Claude Code сравнивал запись буквально, поэтому запись списка разрешений не совпадала ни с одним репозиторием и запись списка блокировки ничего не блокировала; записи с одним репозиторием применяются на каждой версии.

Эта запись разрешает любой маркетплейс репозитория в организации acme-corp:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/*" }
  ]
}

Только вся позиция имени репозитория может быть подстановочным знаком. Claude Code игнорирует записи, такие как *, */plugins или acme-corp/tools-*, как недействительные, поэтому они не совпадают ни с одним репозиторием.

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

Rule strictKnownMarketplaces blockedMarketplaces
Matching source spellings Только форма owner/repo. Git URL, который клонирует тот же репозиторий, не совпадает Любое написание, включая git URL, которые разрешаются в тот же репозиторий github.com
Owner case Чувствительно к регистру, как точное сопоставление записей Нечувствительно к регистру
ref Следует правилам точного сопоставления: запись с ref совпадает только с источниками с этим точным ref, и запись без одного совпадает только с источниками, которые не указывают ref Запись без ref блокирует все ref репозиториев, которые она совпадает
path Более свободно, чем правила точного сопоставления: запись с path требует это точное значение, в то время как запись без одного совпадает с любым путём внутри репозитория Запись без path блокирует все пути репозиториев, которые она совпадает

Exact matching

Для каждого типа источника, кроме записей github с подстановочным знаком владельца и записей hostPattern и pathPattern, совпадающих по регулярному выражению, Claude Code разрешает добавление пользователя только когда источник маркетплейса точно совпадает с записью. Для источников на основе git github и git, точное сопоставление включает необязательные поля:

  • repo или url должны совпадать точно
  • Поле ref должно совпадать точно, или оба должны быть не определены
  • Поле path должно совпадать точно, или оба должны быть не определены

Например, Claude Code рассматривает каждую пару ниже как два разных источника:

  • { "source": "github", "repo": "acme-corp/plugins" } и { "source": "github", "repo": "acme-corp/plugins", "ref": "main" }
  • { "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" } и { "source": "github", "repo": "acme-corp/plugins" }

Allow only the official marketplace

Чтобы разрешить только официальный маркетплейс Anthropic, перечислите его репозиторий:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "anthropics/claude-plugins-official" }
  ]
}

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

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

На этих машинах добавьте маркетплейс в extraKnownMarketplaces в том же managed-settings.json, чтобы Claude Code зарегистрировал его автоматически, или запустите claude plugin marketplace add anthropics/claude-plugins-official.

Combine with `extraKnownMarketplaces`

Два ключа выполняют разные работы. Эта таблица их сравнивает:

Aspect strictKnownMarketplaces extraKnownMarketplaces
Purpose Применение организационной политики Удобство команды
Settings file Только управляемые параметры Любой файл параметров
Behavior Блокирует добавления, не входящие в список разрешений Регистрирует отсутствующие маркетплейсы
When enforced Перед сетевыми и файловыми операциями Сразу из пользовательских или управляемых параметров; после диалога доверия рабочей области для файлов репозитория
Can be overridden Нет, наивысший приоритет Да, параметрами с более высоким приоритетом
Source format Прямой объект источника Именованный маркетплейс с вложенным объектом source

Чтобы ограничить и предварительно зарегистрировать маркетплейс для всех пользователей, установите оба в managed-settings.json:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ],
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}

Только с установленным strictKnownMarketplaces, пользователи всё ещё могут добавить разрешённый маркетплейс сами с помощью /plugin marketplace add. Официальный маркетплейс Anthropic — единственный, который Claude Code регистрирует автоматически, и только когда список разрешений его разрешает. Разрешите только официальный маркетплейс перечисляет машины, которые он пропускает.

`strictPluginOnlyCustomization`

Заблокируйте skills, agents, hooks и MCP серверы из источников пользователя и проекта, чтобы они могли поступать только из плагинов или управляемых параметров. Объедините его с strictKnownMarketplaces, чтобы контролировать полную цепочку поставок настройки: список разрешений маркетплейса контролирует, какие плагины пользователи могут устанавливать.

  • Scope: Managed
  • Type: true для блокировки всех четырёх видов настройки, или массив, называющий виды для блокировки, из "skills", "agents", "hooks" и "mcp"
  • Default: не установлено, поэтому ничего не заблокировано

Этот пример блокирует skills и hooks и оставляет agents и MCP серверы разблокированными:

{
  "strictPluginOnlyCustomization": ["skills", "hooks"]
}

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

`strictPluginOnlyCustomization.skills`

Заблокируйте поверхность skills. Claude Code прекращает загрузку skills из ~/.claude/skills/ и .claude/skills/, пользовательских команд из ~/.claude/commands/ и .claude/commands/, skills под каталогами --add-dir, и skills, синхронизированные из вашей учётной записи claude.ai, и продолжает загружать skills плагинов, встроенные skills и skills в каталоге управляемой политики.

{
  "strictPluginOnlyCustomization": ["skills"]
}

`strictPluginOnlyCustomization.agents`

Заблокируйте поверхность agents. Claude Code прекращает загрузку agents из ~/.claude/agents/ и .claude/agents/, и продолжает загружать agents плагинов, встроенные agents и agents в каталоге управляемой политики.

{
  "strictPluginOnlyCustomization": ["agents"]
}

`strictPluginOnlyCustomization.hooks`

Заблокируйте поверхность hooks. Claude Code прекращает запуск hooks из пользователя, проекта и локального settings.json, и продолжает запускать hooks плагинов и hooks в управляемых параметрах.

{
  "strictPluginOnlyCustomization": ["hooks"]
}

`strictPluginOnlyCustomization.mcp`

Заблокируйте поверхность mcp. Claude Code прекращает загрузку MCP серверов из ~/.claude.json и .mcp.json, и продолжает загружать MCP серверы плагинов, managed-mcp.json серверы и серверы из managedMcpServers.

{
  "strictPluginOnlyCustomization": ["mcp"]
}

`enabledPlugins`

Включайте или отключайте отдельные plugins, обозначенные как plugin-name@marketplace-name. Плагин без записи в любой области возвращается к его значению defaultEnabled. Когда вы включаете или отключаете плагин с помощью /plugin или claude plugin enable, Claude Code записывает этот ключ для вас.

  • Scope: Any file
  • Type: объект, отображающий plugin-name@marketplace-name на Boolean
  • Default: не установлено, поэтому каждый плагин следует его значению defaultEnabled

Этот пример включает два плагина из маркетплейса team-tools и отключает один из personal:

{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}

Каждая область служит разной цели:

  • User settings: ваши личные предпочтения плагинов
  • Project settings: плагины, общие со всеми в репозитории
  • Local settings: переопределения для каждой машины, игнорируемые, когда Claude Code сохраняет параметр там
  • Managed settings: организационная политика. Плагин, установленный на false здесь, заблокирован от установки в каждой области и скрыт из маркетплейса

Параметры проекта имеют приоритет над параметрами пользователя, поэтому установка плагина на false в ~/.claude/settings.json не отключает плагин, который .claude/settings.json проекта включает. Чтобы отказаться от плагина, включённого проектом, на вашей машине, установите его на false в .claude/settings.local.json вместо этого. Плагины, принудительно включённые управляемыми параметрами, не могут быть отключены таким образом, так как управляемые параметры переопределяют локальные параметры.

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

`extraKnownMarketplaces`

Регистрируйте дополнительные маркетплейсы плагинов по имени, чтобы люди, которые открывают репозиторий, или все, кого достигают ваши управляемые параметры, получали маркетплейс без добавления его самостоятельно. Claude Code регистрирует каждый маркетплейс, который он ещё не знает. Устанавливается ли плагин, который enabledPlugins называет из него, зависит от источника плагина и какой файл его включает; эта запись имеет правила.

  • Scope: Any file. Claude Code учитывает записи в .claude/settings.json или .claude/settings.local.json репозитория только после того, как вы примете диалог доверия рабочей области для этой папки; в папке, которую вы не доверяете, включая запуск -p там, он игнорирует их без сообщения.
  • Type: объект, отображающий имя маркетплейса на объект с объектом source и необязательным Boolean autoUpdate
  • Default: не установлено

Этот пример регистрирует маркетплейс GitHub и маркетплейс из самостоятельно размещённого git URL:

{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.example.com/security/plugins.git"
      }
    }
  }
}

Что работает перед тем, как вы доверяете папке, сравнивает ворота доверия с другим содержимым, которое репозиторий может предоставить. Вы также можете написать этот ключ как additionalMarketplaces; см. Псевдонимы ключей маркетплейса.

Установите "autoUpdate": true рядом с source, чтобы Claude Code обновлял этот маркетплейс и обновлял его установленные плагины в фоне после запуска. Если опущено, claude-plugins-official и большинство других официальных маркетплейсов Anthropic по умолчанию имеют true, а маркетплейсы третьих сторон по умолчанию имеют false. См. Настройте автоматические обновления.

Когда более одного файла параметров определяет запись маркетплейса под одним и тем же именем, Claude Code использует запись из файла с наивысшим приоритетом целиком. Эта запись заменяет запись с более низким приоритетом и не наследует ни одно из её полей, поэтому переопределение не может объединить source.headers учётные данные одного файла с URL, который контролирует другой файл. До v2.1.228, Claude Code объединял записи с одним и тем же именем поле за полем, поэтому запись в файле с более высоким приоритетом могла наследовать поля, которые она не установила, включая headers другого файла.

Marketplace source types

Объект source принимает одну из этих форм:

  • github: репозиторий GitHub, с repo
  • git: любой git URL, с url
  • url: прямой URL к файлу marketplace.json, с url и необязательными headers и headersHelper для аутентифицированного доступа. headersHelper называет команду, которая печатает заголовки, чьи значения слишком недолговечны для перечисления в headers, и требует Claude Code v2.1.238 или позже
  • file: локальный путь к файлу marketplace.json, с path
  • directory: локальный путь файловой системы, с path. Используйте его для разработки или для маркетплейса, который ваша организация развёртывает на каждой машине.
  • settings: встроенный маркетплейс, объявленный непосредственно в файле параметров без размещённого репозитория, с name и plugins

Тип источника git работает с любым сервисом размещения git, включая самостоятельно размещённые GitLab и Bitbucket. Claude Code клонирует репозиторий с той же аутентификацией, которую использовал бы git clone на этой машине: настроенные помощники учётных данных или ключи SSH. Токен поставщика, такой как GITHUB_TOKEN, вступает в силу через помощника учётных данных, который его читает. См. Приватные репозитории для деталей настройки.

Для источников github и git, Claude Code никогда не загружает содержимое Git LFS при клонировании репозитория маркетплейса для добавления или обновления. Файлы, отслеживаемые LFS, проверяются как файлы указателей, и вывод добавления или обновления сообщает, сколько их.

Поле skipLfs внутри объекта source принимается и не имеет эффекта. До v2.1.274, Claude Code загружал содержимое LFS, если вы не установили "skipLfs": true.

Для источника url, установите headersHelper внутри объекта source, когда учётные данные в headers истекают и команда должна произвести свежие. Требуется Claude Code v2.1.238 или позже. Для того, что команда должна печатать и где Claude Code её запускает, см. Напишите команду headersHelper, и для случаев, когда Claude Code её не запускает, см. Когда Claude Code пропускает команду headersHelper. Как только вы установите headersHelper на URL маркетплейса https://, Claude Code запускает команду в двух точках, повторно используя вывод одного запуска в течение до 60 секунд:

  • Перед каждой выборкой marketplace.json этого маркетплейса, включая более позднее обновление. Claude Code отправляет напечатанные заголовки с этой выборкой.
  • Перед каждой загрузкой архива плагина на происхождение URL маркетплейса, означая ту же схему, хост и порт. Claude Code отправляет вывод с этой загрузкой, и никакая другая загрузка не получает заголовки.

Claude Code игнорирует любой headersHelper, установленный в .claude/settings.json или .claude/settings.local.json каталога, который вы добавляете с --add-dir, на источнике url и на встроенной записи плагина, и отправляет только фиксированные headers, установленные в этом файле. Как пользователи принимают команду headersHelper охватывает другие файлы параметров.

Плагины, перечисленные в источнике settings, должны ссылаться на внешние источники, такие как GitHub или npm, и name должен совпадать с ключом маркетплейса. Вы всё ещё включаете каждый плагин отдельно в enabledPlugins. Этот пример объявляет один плагин встроенным:

{
  "extraKnownMarketplaces": {
    "team-tools": {
      "source": {
        "source": "settings",
        "name": "team-tools",
        "plugins": [
          {
            "name": "code-formatter",
            "source": {
              "source": "github",
              "repo": "acme-corp/code-formatter"
            }
          }
        ]
      }
    }
  }
}

Запись плагина под source: 'settings', чей собственный source — это archive, может установить headers для загрузки архива. Если значение, которое вы поместили бы в headers, недолговечно, такое как токен, который ваш реестр чеканит по запросу, установите вместо этого команду headersHelper. Запись может установить оба. Оба поля требуют Claude Code v2.1.238 или позже.

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

  • strict: в отличие от записи в marketplace.json маркетплейса, запись в параметрах не нуждается в "strict": false, потому что файл параметров не содержит полей манифеста для встраивания. См. Strict mode.
  • Folder trust: для записи в .claude/settings.json или .claude/settings.local.json проекта, Claude Code запускает команду только после того, как пользователь также доверил эту папку.
  • Header filter: Claude Code удаляет имена заголовков маршрутизации запросов и идентификации клиента из записи в .claude/settings.json или .claude/settings.local.json проекта, потому что репозиторий может предоставить эти файлы. Claude Code применяет тот же фильтр к записи каталога и к записи в каталоге --add-dir, и никакой фильтр к записи в ваши пользовательские параметры, файл --settings или управляемые параметры.

Marketplace key aliases

На Claude Code v2.1.232 или позже, вы можете написать extraKnownMarketplaces как additionalMarketplaces и strictKnownMarketplaces как allowedMarketplaces. Claude Code рассматривает каждый псевдоним следующим образом:

  • Более ранние версии игнорируют псевдоним, поэтому сохраняйте каноническое написание в файле, который также читают более старые версии, такой как файл управляемых параметров для флота со смешанными версиями Claude Code.
  • В любом файле параметров, который принимает канонический ключ, Claude Code читает псевдоним точно так же, как читает канонический ключ.
  • Claude Code может переписать additionalMarketplaces на extraKnownMarketplaces при обновлении файла.
  • Если вы установите оба написания в одном файле, Claude Code использует каноническое значение и игнорирует псевдоним.

`pluginConfigs`

Сохраняйте нечувствительные ответы, которые вы даёте диалогу конфигурации userConfig плагина, обозначенные по ID плагина. Claude Code записывает этот ключ в ваши пользовательские параметры при заполнении диалога, поэтому вам не нужно редактировать его вручную. Claude Code сохраняет чувствительные параметры в macOS Keychain вместо этого, возвращаясь к ~/.claude/.credentials.json, когда Keychain отклоняет запись; на платформах без поддерживаемого keychain, он сохраняет их в ~/.claude/.credentials.json.

  • Scope: User or managed
  • Type: объект, отображающий ID плагина на объект с полем options, отображающим каждое имя параметра на строку, число, Boolean или массив строк, и необязательное поле mcpServers, содержащее значения конфигурации пользователя для каждого сервера в той же форме
  • Default: не установлено

Этот пример сохраняет параметр api_endpoint для плагина deployer из acme-tools:

{
  "pluginConfigs": {
    "deployer@acme-tools": {
      "options": {
        "api_endpoint": "https://api.example.com"
      }
    }
  }
}

Встроенные плагины сохраняют свои параметры под тем же ключом с суффиксом @builtin. Например, параметр Project instructions, который контролирует, читает ли Claude Code файлы AGENTS.md, — это pluginConfigs["agents-md@builtin"].options.instructionFiles.

Claude Code игнорирует записи проекта и локальные, потому что он подставляет эти значения в конфигурации hook, MCP и LSP плагина, и клонированный репозиторий не должен быть в состоянии их предоставить. До v2.1.207, параметры проекта и локальные также читались.

`prependPlugins`

Перечислите управляемые плагины, чьи mods запускаются перед каждым mod, который устанавливает пользователь, в указанном порядке. Когда вы установите этот ключ в управляемых параметрах, назовите sec-default@builtin в списке, чтобы сохранить встроенную защиту. В управляемых параметрах Claude Code пропускает id, чей плагин не считается вашей организацией. См. Установите mods вашей организации и установите порядок для этих условий и для того, как два ключа упорядочения работают вместе.

  • Scope: User or managed. Claude Code читает ключ из управляемых параметров. Он читает ключ из пользовательских параметров только на машине без управляемых параметров, для пользователя, который не вошёл с планом Team или Enterprise. Он игнорирует ключ в параметрах проекта и локальных и в файле --settings.
  • Type: массив строк plugin-name@marketplace-name
  • Default: не установлено
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-guard@acme-tools": true },
  "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]
}

`appendPlugins`

Перечислите управляемые плагины, чьи mods запускаются после каждого mod, который устанавливает пользователь, в указанном порядке. Id, перечисленный в обоих prependPlugins и appendPlugins, добавляется в начало. В управляемых параметрах Claude Code пропускает id, чей плагин не считается вашей организацией.

  • Scope: User or managed. Claude Code читает ключ из управляемых параметров. Он читает ключ из пользовательских параметров только на машине без управляемых параметров, для пользователя, который не вошёл с планом Team или Enterprise. Он игнорирует ключ в параметрах проекта и локальных и в файле --settings.
  • Type: массив строк plugin-name@marketplace-name
  • Default: не установлено
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-audit@acme-tools": true },
  "appendPlugins": ["acme-audit@acme-tools"]
}

MCP

Контролируйте, к каким серверам MCP подключается Claude Code и какие разрешает организация. См. Подключение к внешним инструментам с помощью MCP и Управляемая конфигурация MCP.

`allowAllClaudeAiMcps`

Загружайте соединители claude.ai, которые Claude Code получает сам, наряду с развёрнутым managed-mcp.json. Без этого ключа managed-mcp.json получает исключительный контроль над серверами MCP и подавляет эти соединители.

  • Scope: Managed. Пользователи не могут повторно включить соединители, которые исключительный контроль подавил.
  • Type: Boolean
    • true: Claude Code загружает соединители claude.ai наряду с развёрнутым managed-mcp.json
    • false: развёрнутый managed-mcp.json получает исключительный контроль над серверами MCP и подавляет соединители claude.ai, которые Claude Code получает сам
  • Default: false, поэтому развёрнутый managed-mcp.json подавляет соединители claude.ai, которые Claude Code получает сам
{
  "allowAllClaudeAiMcps": true
}

allowedMcpServers и deniedMcpServers по-прежнему применяются к соединителям, которые загружает этот ключ. Соединители, доставленные в облачный сеанс, хост которого содержит managed-mcp.json, например самостоятельно размещённый runner, остаются подавленными. См. Разрешить соединители claude.ai наряду с управляемым набором.

`allowClaudeInChromeWithManagedMcp`

Позволяйте встроенному серверу Claude в Chrome работать наряду с развёрнутым managed-mcp.json. Без этого ключа развёрнутый managed-mcp.json блокирует Claude в Chrome в сеансах терминала. Требует Claude Code версии 2.1.282 или позже.

  • Scope: Managed, только из собственных управляемых параметров устройства: развёрнутого MDM plist или ключа реестра HKLM, или системного файла managed-settings.json. Claude Code игнорирует его в управляемых параметрах сервера, в пользовательском реестре HKCU и в пользовательских или проектных параметрах.
  • Type: Boolean
    • true: встроенный сервер Claude в Chrome может работать наряду с развёрнутым managed-mcp.json
    • false: развёрнутый managed-mcp.json блокирует Claude в Chrome в сеансах терминала
  • Default: false, поэтому развёрнутый managed-mcp.json блокирует Claude в Chrome в сеансах терминала
{
  "allowClaudeInChromeWithManagedMcp": true
}

Запись deniedMcpServers для claude-in-chrome по-прежнему блокирует сервер с этим ключом включённым. См. Разрешить Claude в Chrome наряду с управляемым набором.

`allowedMcpServers`

Создайте список разрешённых серверов MCP, которые люди могут добавлять. Claude Code блокирует любой сервер, который не соответствует записи, где бы он ни был определён, включая серверы плагинов, серверы, переданные с --mcp-config, и серверы из claude.ai.

Встроенные серверы, такие как Claude в Chrome, сервер ide, к которому Claude Code подключается в работающей IDE VS Code или JetBrains, и серверы, которые сам CLI настраивает, освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. На Claude Code версии 2.1.268 или позже, инструменты Slack сеанса Claude Tag также освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. Внутрипроцессные серверы type: "sdk" освобождены от обоих списков; приложение, которое запустило сеанс, регистрирует их.

Серверы, которые доставляет ваша организация, также освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. Освобождение охватывает каждую запись managedMcpServers и любую запись managed-mcp.json, значения которой не используют расширение ${VAR}. См. Как оценивается сервер для полного порядка проверки. До версии 2.1.259 серверы из managed-mcp.json также должны были совпадать.

  • Scope: Any file. Записи из каждого файла объединяются в один список разрешений, если не установлен allowManagedMcpServersOnly. Разверните его в управляемых параметрах, чтобы обеспечить его.
  • Type: массив объектов, каждый с ровно одним ключом: serverName, строка, ограниченная буквами, цифрами, дефисами и подчёркиваниями; serverCommand, массив команды и её аргументов, совпадающих точно; или serverUrl, шаблон URL с подстановочными знаками *
  • Default: не установлено, поэтому каждый сервер разрешён; пустой массив блокирует каждый сервер, который добавляют пользователи

Этот пример разрешает только сервер stdio, который запускает указанная команда npx:

{
  "allowedMcpServers": [
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] }
  ]
}

Запись deniedMcpServers имеет приоритет, поэтому сервер в обоих списках блокируется. Как только список содержит любую запись serverCommand, сервер stdio должен совпадать с записью serverCommand, и как только он содержит любую запись serverUrl, удалённый сервер должен совпадать с записью serverUrl: совпадение serverName больше не допускает этот вид сервера. См. Управление на основе политики со списками разрешений и запретов.

`allowManagedMcpServersOnly`

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

  • Scope: Managed
  • Type: Boolean
    • true: Claude Code читает allowedMcpServers только из управляемых параметров и игнорирует списки разрешений в пользовательских, проектных и локальных параметрах
    • false: списки разрешений из каждой области параметров объединяются
  • Default: false, поэтому списки разрешений из каждой области параметров объединяются

Этот пример блокирует список разрешений для управляемых параметров и разрешает только сервер с именем github:

{
  "allowManagedMcpServersOnly": true,
  "allowedMcpServers": [
    { "serverName": "github" }
  ]
}

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

`deniedMcpServers`

Блокируйте определённые серверы MCP. Claude Code отказывается загружать совпадающий сервер, где бы он ни был определён, включая серверы плагинов, серверы, переданные с --mcp-config, серверы из managed-mcp.json, серверы из managedMcpServers и соединители claude.ai, которые он получает сам. Внутрипроцессные серверы type: "sdk" освобождены; приложение, которое запустило сеанс, регистрирует их.

  • Scope: Any file. Записи из каждого файла объединяются в один список запретов, и allowManagedMcpServersOnly это не меняет. Разверните его в управляемых параметрах, чтобы обеспечить его.
  • Type: массив объектов, каждый с ровно одним ключом: serverName, строка, поэтому отображаемое имя соединителя claude.ai, такое как "claude.ai Slack", работает; serverCommand, массив команды и её аргументов, совпадающих точно; или serverUrl, шаблон URL с подстановочными знаками *
  • Default: не установлено, поэтому ни один сервер не блокируется; пустой массив также ничего не блокирует
{
  "deniedMcpServers": [
    { "serverName": "filesystem" }
  ]
}

Список запретов имеет приоритет над allowedMcpServers, поэтому сервер в обоих списках блокируется. См. Управление на основе политики со списками разрешений и запретов.

`disableClaudeAiConnectors`

Отключите соединители MCP claude.ai, которые Claude Code получает сам, чтобы он ни получал, ни подключал их. true в любом файле параметров применяется: проверенный в репозитории проект .claude/settings.json может отказать репозиторию в этих соединителях, но проектный уровень false не может переопределить пользовательский или управляемый уровень true.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code ни получает, ни подключает эти соединители
    • false: то же самое, что и не установлено; Claude Code получает ваши соединители, если другой файл параметров или ENABLE_CLAUDEAI_MCP_SERVERS их не отключает
  • Default: false, поэтому Claude Code получает ваши соединители
  • Per-session overrides: ENABLE_CLAUDEAI_MCP_SERVERS, установленный на false, отключает соединители на один сеанс; какой бы из двух их ни отключил, другой не может их включить обратно
{
  "disableClaudeAiConnectors": true
}

Серверы, которые вы явно передаёте с --mcp-config, не затрагиваются. Чтобы блокировать отдельные соединители вместо всех, используйте deniedMcpServers. См. Отключить соединители claude.ai.

`disabledMcpjsonServers`

Отклоняйте определённые серверы, определённые в файле .mcp.json проекта, чтобы Claude Code никогда их не подключал и не просил вас их одобрить. Отклонение в любом файле параметров применяется, включая проект .claude/settings.json, проверенный в репозитории.

  • Scope: Any file
  • Type: массив строк, имена серверов, как они появляются в .mcp.json
  • Default: не установлено
{
  "disabledMcpjsonServers": ["filesystem"]
}

Claude Code записывает этот ключ в .claude/settings.local.json, когда вы отклоняете сервер в диалоговом окне одобрения. claude mcp get <name> показывает отклонённый сервер как ✘ Rejected (see disabledMcpjsonServers in settings). Отклонение имеет приоритет над enabledMcpjsonServers и enableAllProjectMcpServers.

`enableAllProjectMcpServers`

Одобряйте каждый сервер MCP, определённый в файлах проекта .mcp.json, без подсказки. Claude Code записывает этот ключ в .claude/settings.local.json, когда вы выбираете одобрение всех серверов в диалоговом окне одобрения.

  • Scope: Any file. В папке, диалоговое окно доверия которой вы не приняли, Claude Code соблюдает его из пользовательских параметров, управляемых параметров и --settings и игнорирует его в общем файле проекта, как в сеансе, так и для claude mcp list и claude mcp get; Одобрения серверов проекта и доверие рабочей области говорит, когда неотслеживаемый .claude/settings.local.json также считается.
  • Type: Boolean
    • true: Claude Code одобряет каждый сервер MCP, определённый в файлах проекта .mcp.json, без подсказки
    • false: Claude Code просит вас одобрить каждый сервер. В доверенной папке false в файле с более высоким приоритетом переопределяет true в файле с более низким приоритетом; в папке, которой вы не доверяете, true в любом соблюдаемом файле достаточно
  • Default: не установлено, поэтому Claude Code просит вас одобрить каждый сервер
{
  "enableAllProjectMcpServers": true
}

Запись disabledMcpjsonServers по-прежнему отклоняет сервер.

`enabledMcpjsonServers`

Одобряйте определённые серверы, определённые в файлах проекта .mcp.json, чтобы Claude Code подключал их без вопросов. Claude Code записывает этот ключ в .claude/settings.local.json, когда вы одобряете сервер в диалоговом окне одобрения.

  • Scope: Any file. В папке, диалоговое окно доверия которой вы не приняли, Claude Code соблюдает его из пользовательских параметров, управляемых параметров и --settings и игнорирует его в общем файле проекта, как в сеансе, так и для claude mcp list и claude mcp get; Одобрения серверов проекта и доверие рабочей области говорит, когда неотслеживаемый .claude/settings.local.json также считается.
  • Type: массив строк, имена серверов, как они появляются в .mcp.json
  • Default: не установлено

Этот пример одобряет серверы memory и github из .mcp.json проекта:

{
  "enabledMcpjsonServers": ["memory", "github"]
}

Запись disabledMcpjsonServers по-прежнему отклоняет сервер.

`managedMcpServers`

Предоставляйте удалённые серверы MCP каждому пользователю из управляемых параметров. Пользователи сохраняют серверы, которые они добавляют сами, и не могут редактировать или удалять те, которые вы предоставляете. Требует Claude Code версии 2.1.259 или позже.

  • Scope: Managed. Claude Code удаляет ключ с предупреждением в пользовательских, проектных и локальных параметрах и не читает его в вкладке Code приложения Claude Desktop при развёртывании третьей стороной или в сеансах Cowork приложения, где Claude Desktop сам предоставляет и блокирует серверы MCP этих сеансов.
  • Type: объект, ключ которого — имя сервера. Каждая запись имеет форму .mcp.json для сервера http или sse: требуемый https:// url и опционально headers, oauth и другие параметры HTTP и SSE. Claude Code удаляет записи, которые не прошли проверку, и Что может содержать запись перечисляет условия
  • Default: не установлено, поэтому управляемые параметры не предоставляют серверы

Этот пример предоставляет один HTTP-сервер с именем search:

{
  "managedMcpServers": {
    "search": {
      "type": "http",
      "url": "https://search.example.com/mcp"
    }
  }
}

Для приоритета, как предоставленные серверы объединяются с managed-mcp.json и списками разрешений и запретов, и что видят пользователи, см. Предоставлять серверы через управляемые параметры.

Агенты, сессии и worktrees

Установите агента по умолчанию, управляйте товарищами по команде и обменом сообщениями между сессиями, а также настройте worktrees. См. Subagents и Worktrees.

`agent`

Запустите основной поток как именованный subagent, чтобы Claude Code применил системный prompt, ограничения инструментов и модель этого subagent к вашей сессии. Один и тот же ключ устанавливает агента по умолчанию для сессий, которые вы отправляете из claude agents.

  • Scope: Any file
  • Type: string, имя встроенного или пользовательского агента
  • Default: не установлено, поэтому основной поток работает как агент Claude Code по умолчанию
  • Per-session overrides: --agent имеет приоритет над этим ключом для одной сессии
{
  "agent": "code-reviewer"
}

Собственный settings.json плагина также может предоставить этот ключ; см. Ship default settings with your plugin.

`crossSessionInbound`

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

  • Scope: Any file. Значение проекта или локальное значение применяется только в том случае, если оно строже, чем значение управляемых параметров, флага --settings или пользовательских параметров.
  • Type: string, один из:
    • "accept": Claude Code доставляет сообщение Claude
    • "hold": Claude Code показывает уведомление о сообщении без его доставки
    • "refuse": Claude Code отбрасывает сообщение
  • Default: не установлено, поэтому Claude Code решает для каждого сообщения
{
  "crossSessionInbound": "hold"
}

Claude Code сначала читает управляемые параметры, затем флаг --settings, затем пользовательские параметры и применяет первое найденное значение. refuse строже, чем hold, а hold строже, чем accept. Когда ни один из доверенных источников не устанавливает значение, проект или локальное hold или refuse все еще применяется, заменяя решение по умолчанию для каждого сообщения. В сессиях с обменом сообщениями между сессиями этот ключ появляется в /config как Messages from your other sessions, который записывает его в пользовательские параметры; строка требует Claude Code v2.1.232 или позже, и Claude Code скрывает её, пока флаг --settings или управляемые параметры устанавливают ключ.

Claude Code предупреждает при установке значения, которое он не распознает. Пока это значение присутствует в пользовательском, проектном, локальном или файле --settings, Claude Code удерживает входящие сообщения, даже когда источник, который имеет приоритет, устанавливает accept. refuse, установленный другим источником, все еще применяется. Исправьте или удалите значение, чтобы снять удержание.

Когда неузнанное значение находится в управляемых параметрах, Claude Code вместо этого рассматривает его как refuse до тех пор, пока администратор не исправит его. До v2.1.248 Claude Code игнорировал неузнанное значение без предупреждения.

`disableAgentView`

Отключите фоновых агентов и представление агентов: claude agents, --bg, /background и супервизора по требованию. Установите его в управляемых параметрах, чтобы применить его для организации.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code отключает claude agents, --bg, /background и супервизора по требованию
    • false: представление агентов доступно
  • Default: не установлено, поэтому представление агентов доступно
  • Per-session overrides: CLAUDE_CODE_DISABLE_AGENT_VIEW отключает представление агентов для одной сессии; какой бы из двух его ни отключил, другой не может его снова включить
{
  "disableAgentView": true
}

`isolatePeerMachines`

Требуйте вашего явного одобрения перед тем, как SendMessage Claude достигнет одну из ваших сессий за пределами этой машины; см. Require approval for cross-machine messages. Запрос одобрения появляется даже в режиме bypassPermissions.

  • Scope: Any file. true из любой области применяется, поэтому проверенный файл проекта может включить требование, но не отключить его.
  • Type: Boolean
    • true: Claude Code запрашивает ваше одобрение перед тем, как SendMessage Claude достигнет одну из ваших сессий за пределами этой машины
    • false: сообщения между машинами не вызывают запрос
  • Default: не установлено, поэтому сообщения между машинами не вызывают запрос
{
  "isolatePeerMachines": true
}

Одобрение SendMessage между машинами требует Claude Code v2.1.224 или позже.

`processWrapper`

На macOS и Linux поместите команду корпоративного запуска перед фоновыми процессами, которые запускает Claude Code. Claude Code запускает запуск с добавленной собственной командной строкой, поэтому запуск должен выполнить exec в Claude Code; см. Run Claude Code behind a corporate launcher для контракта запуска. Требуется Claude Code v2.1.210 или позже.

  • Scope: User or managed
  • Type: string, команда запуска как префикс argv, например абсолютный путь с необязательными аргументами
  • Default: не установлено, поэтому фоновые процессы запускаются без обёртки
  • Per-session overrides: CLAUDE_CODE_PROCESS_WRAPPER имеет приоритет над этим ключом для одной сессии
{
  "processWrapper": "/opt/corp/launcher --profile claude"
}

Claude Code игнорирует запуск на Windows и запускает каждый процесс без обёртки. Требуется Claude Code v2.1.210 или позже.

`teammateMode`

Выберите, где Claude Code показывает товарищей по команде agent team: внутри вашей основной панели терминала или в разделённых панелях, когда ваш терминал их поддерживает. См. Choose a display mode.

  • Scope: Any file. Claude Code также читает значение, оставленное в ~/.claude.json старыми версиями.
  • Type: string, один из:
    • "in-process": товарищи по команде работают внутри вашей основной панели терминала
    • "auto": разделённые панели, когда вы работаете внутри tmux, или внутри iTerm2 с it2 на вашем PATH или установленным tmux; в противном случае в процессе
    • "tmux": разделённые панели с использованием tmux или iTerm2, обнаруженные из вашего терминала
    • "iterm2": собственные разделённые панели iTerm2 через CLI it2
  • Default: "in-process"
  • Per-session overrides: --teammate-mode имеет приоритет над этим ключом для одной сессии
{
  "teammateMode": "auto"
}

`worktree`

Настройте, как Claude Code создаёт и управляет git worktrees для --worktree, инструмента EnterWorktree и изолированных subagents и фоновых сессий.

  • Scope: Any file
  • Type: object с baseRef, symlinkDirectories, sparsePaths и bgIsolation
  • Default: не установлено

Этот пример ветвит новые worktrees из вашего текущего HEAD и создаёт символические ссылки node_modules в каждый:

{
  "worktree": {
    "baseRef": "head",
    "symlinkDirectories": ["node_modules"]
  }
}

Чтобы скопировать игнорируемые git файлы, такие как .env, в новые worktrees, добавьте файл .worktreeinclude в корень вашего проекта вместо параметра.

`worktree.baseRef`

Выберите, из какого ref ветвятся новые worktrees. "fresh" ветвится из origin/<default-branch> для чистого дерева, соответствующего удалённому; "head" ветвится из вашего текущего локального HEAD, поэтому неотправленные коммиты и состояние ветки функции присутствуют в worktree.

  • Scope: Any file
  • Type: string, один из:
    • "fresh": новые worktrees ветвятся из origin/<default-branch>
    • "head": новые worktrees ветвятся из вашего текущего локального HEAD, включая неотправленные коммиты
  • Default: "fresh"
{
  "worktree": {
    "baseRef": "head"
  }
}

Внутри связанного worktree "head" разрешается в HEAD этого worktree, а не в основной checkout.

`worktree.symlinkDirectories`

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

  • Scope: Any file
  • Type: array of strings, пути директорий относительно корня репозитория
  • Default: не установлено, поэтому Claude Code не создаёт символические ссылки на директории

Этот пример создаёт символические ссылки на node_modules и .cache из основного репозитория в каждый новый worktree:

{
  "worktree": {
    "symlinkDirectories": ["node_modules", ".cache"]
  }
}

`worktree.sparsePaths`

Проверьте только перечисленные директории в каждом worktree через git sparse-checkout. Claude Code записывает только эти директории плюс файлы на уровне корня на диск, что быстрее в больших монорепозиториях; см. Check out only the directories you need.

  • Scope: Any file
  • Type: array of strings, пути директорий относительно корня репозитория
  • Default: не установлено, поэтому каждый worktree проверяет всё дерево

Этот пример проверяет только packages/my-app и shared/utils, плюс файлы на уровне корня, в каждом worktree:

{
  "worktree": {
    "sparsePaths": ["packages/my-app", "shared/utils"]
  }
}

Пока существует разреженный worktree, git включает extensions.worktreeConfig в общем .git/config репозитория.

`worktree.bgIsolation`

Выберите, как фоновые сессии изолируют свои редактирования файлов. С "worktree" Claude Code блокирует Edit и Write в основной checkout до тех пор, пока сессия не вызовет EnterWorktree; с "none" фоновые задания редактируют рабочую копию напрямую. Установите "none" для репозитория, где git worktrees непрактичны.

  • Scope: Any file
  • Type: string, один из:
    • "worktree": Claude Code блокирует Edit и Write в основной checkout до тех пор, пока сессия не вызовет EnterWorktree
    • "none": фоновые задания редактируют рабочую копию напрямую
  • Default: "worktree"
{
  "worktree": {
    "bgIsolation": "none"
  }
}

Вне git репозитория hook WorktreeCreate, который завершается с ошибкой, снимает блокировку, чтобы сессия могла редактировать рабочую директорию на месте; это снятие блокировки требует Claude Code v2.1.203 или позже.

Удалённое управление, настольное приложение и уведомления

Настройте удалённое управление, облачные среды, настольное приложение и уведомления, которые Claude Code отправляет, когда вам нужна помощь. См. Удалённое управление.

`agentPushNotifEnabled`

Разрешить Claude отправлять push-уведомление на ваш телефон, когда он решит, что оно стоит отправить, например, когда завершится длительная задача. Claude Code синхронизирует этот выбор с вашей учётной записью, и уведомления приходят, пока Удалённое управление подключено. Отображается в /config как Push when Claude decides.

  • Scope: Any file. Claude Code также читает значение, оставленное в ~/.claude.json старыми версиями.
  • Type: Boolean
    • true: Claude может отправлять push-уведомление на ваш телефон, когда он решит, что оно стоит отправить
    • false: Claude не отправляет эти уведомления
  • Default: false
{
  "agentPushNotifEnabled": true
}

См. Mobile push notifications.

`awaySummaryEnabled`

Показывать однострочный краткий обзор сеанса, когда вы вернётесь в терминал после нескольких минут отсутствия. Установите значение false или отключите Session recap в /config, чтобы отключить краткий обзор.

  • Scope: Any file
  • Type: Boolean
    • true: вы видите однострочный краткий обзор сеанса, когда вернётесь после нескольких минут отсутствия
    • false: Claude Code не показывает краткий обзор
  • Default: не установлено, поэтому краткий обзор включён
  • Per-session overrides: CLAUDE_CODE_ENABLE_AWAY_SUMMARY имеет приоритет над этим ключом для одного сеанса в любом направлении
{
  "awaySummaryEnabled": false
}

Claude Code никогда не показывает краткий обзор в неинтерактивном режиме.

`disableArtifact`

Используйте enableArtifact вместо этого, чтобы отключить инструмент Artifact, который публикует выходные данные сеанса как приватную веб-страницу на claude.ai. Когда вы отключаете строку Artifacts в /config, Claude Code записывает enableArtifact в ваши пользовательские настройки и очищает этот ключ.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code отключает инструмент Artifact для каждого сеанса, к которому применяется файл, и ни один другой файл не включает его обратно
    • false: игнорируется; чтобы оставить инструмент включённым, удалите ключ
  • Default: не установлено, поэтому инструмент следует доступности вашей учётной записи
  • Per-session overrides: CLAUDE_CODE_DISABLE_ARTIFACT установленный на 1 отключает инструмент для одного сеанса
{
  "disableArtifact": true
}

Disable artifacts перечисляет все способы отключения инструмента.

`disableDeepLinkRegistration`

Остановить Claude Code от регистрации обработчика протокола claude-cli:// в операционной системе, что он иначе делает после отправки первого запроса интерактивного сеанса. Deep links позволяют внешним инструментам открывать сеанс Claude Code с предзаполненным запросом. Установите это в окружениях, где регистрация обработчика протокола ограничена или управляется отдельно.

  • Scope: Any file
  • Type: строка "disable"
  • Default: не установлено, поэтому Claude Code регистрирует обработчик
{
  "disableDeepLinkRegistration": "disable"
}

`disableDesktopLocalSessions`

Отключить сеансы Code, которые работают на устройстве в настольном приложении, для развёртываний, где разработчики должны работать на удалённых машинах через SSH. На вкладке Code окружение Local остаётся в раскрывающемся списке окружений, но отключено и не может быть выбрано, с подсказкой, что ваша организация его отключила; на Windows запись WSL отключена таким же образом, хотя то, работают ли сеансы WSL на управляемом устройстве вообще, управляется отдельно. Новые сеансы по умолчанию используют первое SSH-соединение, если оно настроено, и приложение отказывается запускать или возобновлять сеанс на устройстве, включая SSH-соединение обратно на ту же машину. SSH-сеансы на другие хосты и облачные сеансы не затронуты. Настольное приложение читает этот ключ; терминальный CLI его игнорирует. Требуется Claude Desktop v1.37937.0 или позже.

  • Scope: Managed
  • Type: Boolean; только JSON Boolean true имеет эффект
    • true: настольное приложение не предлагает сеансы Code на устройстве; существующие локальные сеансы остаются в списке, но не могут продолжаться
    • false: локальные сеансы остаются доступными
  • Default: не установлено, поэтому локальные сеансы доступны
{
  "disableDesktopLocalSessions": true
}

Настольное приложение игнорирует любое другое значение, и значение, которое не является Boolean, такое как строка "true" или 1, также регистрирует предупреждение. Используйте его вместе с sshConfigs, чтобы пользователи попадали на рабочее соединение, и с sshHostAllowlist, чтобы ограничить, какие хосты они могут достичь. См. Local sessions on managed devices.

Claude Desktop предоставляет сеансы Code с политикой, полученной из конфигурации вашего настольного приложения, например список разрешённых исходящих соединений, изоляция файловой системы и ограничения MCP в развёртываниях третьих сторон. Claude Code игнорирует эти родительские настройки всякий раз, когда присутствует источник администратора: управляемые сервером настройки, политика MDM или уровня ОС, или файл управляемых настроек. Развёртывание этого ключа через один из них на устройстве, которое не имело ни одного раньше, как в развёртываниях третьих сторон, поэтому останавливает применение политик, полученных из настольного приложения. Let an embedding host add policy охватывает, когда родительские настройки всё ещё могут объединяться; это применяется к любому ключу, который вы развёртываете таким образом, не только к этому.

`disableRemoteControl`

Отключить Удалённое управление: Claude Code затем отказывает в claude remote-control, флаге --remote-control, автозапуске и переключателе в сеансе, и сообщает, что политика вашей организации это отключила. Поместите это в управляемые настройки для принудительного применения MDM на каждом устройстве.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code отказывает в claude remote-control, флаге --remote-control, автозапуске и переключателе в сеансе
    • false: Удалённое управление остаётся доступным
  • Default: false
{
  "disableRemoteControl": true
}

`enableArtifact`

Отключить инструмент Artifact, который публикует выходные данные сеанса как приватную веб-страницу на claude.ai. Когда вы отключаете строку Artifacts в /config, Claude Code записывает этот ключ в ваши пользовательские настройки, поэтому вы обычно не редактируете его вручную. Требуется Claude Code v2.1.196 или позже.

  • Scope: Any file. Каждый файл может отключить инструмент, и ни один не может включить его обратно.
  • Type: Boolean
    • false: Claude Code отключает инструмент Artifact для каждого сеанса, к которому применяется файл
    • true: то же самое, что оставить ключ не установленным, потому что он никогда не переопределяет false из другого файла, из CLAUDE_CODE_DISABLE_ARTIFACT или из параметра администратора вашей организации
  • Default: не установлено, поэтому инструмент следует доступности вашей учётной записи
{
  "enableArtifact": false
}

Пока источник, отличный от ваших собственных пользовательских настроек, держит инструмент отключённым, Claude Code скрывает строку Artifacts в /config, потому что включение её там не изменит ничего. Disable artifacts перечисляет все способы отключения инструмента.

`inputNeededNotifEnabled`

Получить push-уведомление на ваш телефон, когда запрос разрешения или вопрос ожидает вашего ввода. Claude Code отправляет эти уведомления только пока Удалённое управление подключено. Отображается в /config как Push when actions required.

  • Scope: Any file. Claude Code также читает значение, оставленное в ~/.claude.json старыми версиями.
  • Type: Boolean
    • true: вы получаете push-уведомление на ваш телефон, когда запрос разрешения или вопрос ожидает, пока подключено Удалённое управление
    • false: Claude Code не отправляет такие уведомления
  • Default: false
{
  "inputNeededNotifEnabled": true
}

См. Mobile push notifications.

`preferredNotifChannel`

Выберите, как Claude Code вас уведомляет, когда задача завершена или запрос разрешения ожидает. Отображается в /config как Local notifications.

  • Scope: Any file. Claude Code также читает значение, оставленное в ~/.claude.json старыми версиями.
  • Type: строка, одна из:
    • "auto": Claude Code отправляет уведомление рабочего стола в iTerm2, Ghostty и Kitty, звонит в колокол в Terminal.app только когда его звуковой колокол отключён, и ничего не делает в других местах
    • "terminal_bell": Claude Code звонит в символ колокола в любом терминале
    • "iterm2": Claude Code отправляет уведомление рабочего стола iTerm2
    • "iterm2_with_bell": Claude Code отправляет уведомление рабочего стола iTerm2 и звонит в колокол
    • "kitty": Claude Code отправляет уведомление рабочего стола Kitty
    • "ghostty": Claude Code отправляет уведомление рабочего стола Ghostty
    • "notifications_disabled": Claude Code не отправляет уведомление
  • Default: "auto"
{
  "preferredNotifChannel": "terminal_bell"
}

С "auto" Claude Code отправляет уведомление рабочего стола в iTerm2, Ghostty и Kitty. В Terminal.app он звонит в символ колокола только когда вы отключили звуковой колокол Terminal, и в других терминалах ничего не делает. Установите "terminal_bell", чтобы звонить в символ колокола в любом терминале. См. Get a terminal bell or notification.

`remote.defaultEnvironmentId`

Выберите облачное окружение по умолчанию для облачных сеансов, которые вы создаёте из CLI, например с claude --cloud. Claude Code записывает этот ключ в ваши пользовательские настройки, когда вы выбираете окружение с помощью /remote-env.

  • Scope: Any file. Для ID самостоятельно размещённого окружения, пользовательских или управляемых настроек, или флага --settings только.
  • Type: строка, ID окружения, такой как env_... или ccpool_...
  • Default: не установлено, поэтому Claude Code использует размещённое Anthropic окружение, когда ваш список имеет одно, и в противном случае первое окружение в вашем списке, которое не является окружением моста Удалённого управления, или первое окружение, когда каждое является окружением моста
  • Per-session overrides: --environment имеет приоритет над этим ключом для одного облачного сеанса, который он создаёт
{
  "remote": {
    "defaultEnvironmentId": "env_0123abcd"
  }
}

ID размещённого Anthropic окружения, который начинается с env_, следует стандартному приоритету настроек, поэтому значение в проектных настройках репозитория переопределяет ваш выбор на уровне пользователя. ID самостоятельно размещённого окружения, который начинается с ccpool_, учитывается только из пользовательских настроек, управляемых настроек и флага --settings; Claude Code игнорирует один в проектных или локальных настройках репозитория, и /remote-env показывает, какое значение он игнорировал, поэтому проверенный файл не может направить сеансы на самостоятельно размещённое окружение, которое вы не выбрали.

`remoteControlAtStartup`

Подключить Удалённое управление автоматически, когда начинается каждый интерактивный сеанс, вместо ожидания /remote-control. Установите значение true, чтобы включить автоподключение, false, чтобы отключить его. Отображается в /config как Enable Remote Control for all sessions.

  • Scope: Any file. Claude Code также читает значение, оставленное в ~/.claude.json старыми версиями.
  • Type: Boolean
    • true: Claude Code подключает Удалённое управление автоматически, когда начинается каждый интерактивный сеанс
    • false: Claude Code ждёт /remote-control
  • Default: не установлено, поэтому применяется автоподключение по умолчанию
  • Per-session overrides: --remote-control включает Удалённое управление для одного сеанса даже когда этот ключ false, и ни один флаг не отключает его для одного сеанса
{
  "remoteControlAtStartup": true
}

Claude Code игнорирует true из проектных или локальных настроек, поэтому репозиторий может отключить автоподключение для его checkout, но не может включить его. Для полного поведения для каждой области видимости см. Enable Remote Control for all sessions и ключи безопасности, где применяется более строгое значение.

`sshConfigs`

Добавить SSH-соединения в раскрывающийся список окружения Desktop. Администраторы используют это для распределения общих соединений команде. Соединения, которые вы определяете в управляемых настройках, отображаются как управляемые, поэтому пользователи могут их выбирать, но не могут редактировать или удалять их в приложении.

  • Scope: User or managed. Настольное приложение читает этот ключ.
  • Type: массив объектов, каждый с обязательными id, name и sshHost и опциональными sshPort и sshIdentityFile
  • Default: не установлено

Этот пример добавляет одно соединение с именем Dev VM, которое подключается к user@dev.example.com:

{
  "sshConfigs": [
    {
      "id": "dev-vm",
      "name": "Dev VM",
      "sshHost": "user@dev.example.com"
    }
  ]
}

`sshHostAllowlist`

Ограничить хосты, к которым может подключиться SSH-сеанс Desktop. Только приложение Desktop читает этот ключ; CLI не читает. Шаблоны нечувствительны к регистру: * соответствует любому хосту, *.example.com соответствует example.com и каждому поддомену, и всё остальное является точным совпадением с именем хоста после разрешения ~/.ssh/config. Пустой массив отключает SSH-сеансы.

  • Scope: Managed
  • Type: массив шаблонов имён хостов
  • Default: не установлено, поэтому разрешены любые хосты

Этот пример разрешает devboxes.example.com и его поддомены, плюс точный хост bastion.example.com:

{
  "sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}

Аутентификация и поставщики

Предоставляйте учётные данные через вспомогательные скрипты и, для организаций, принудительно установите метод входа или организацию. См. Аутентификация.

`allowedProviders`

Перечислите сервисы, через которые машина может обращаться к Claude, такие как Anthropic API, Amazon Bedrock или LLM-шлюз. Сессия на поставщике, который не указан в списке, отклоняется при запуске, при входе и когда она в следующий раз обращается к API, поэтому переключение на неуказанного поставщика во время сессии также отклоняется. Сообщение об отказе указывает, что выбрало поставщика и какие шаги предпринять для продолжения. Требуется Claude Code v2.1.285 или позже.

  • Scope: Managed. Список, который устанавливают собственные источники администратора машины, политики MDM и файлы управляемых настроек, продолжает применяться, когда управляемые сервером настройки также предоставляют свой: сессия может тогда использовать только поставщиков из обоих списков, поэтому управляемый сервером список может сузить то, что разрешает машина, но никогда не расширить это. Какой из источников машины с allowedProviders учитывается, определяется тем, как Claude Code объединяет управляемые источники. Список, доставленный только через управляемые сервером настройки, достигает только тех сессий, которые получают управляемые сервером настройки.
  • Type: массив строк, каждая из которых — одно из следующих значений:
    • "anthropic": Anthropic API на собственном хосте Anthropic, через вход claude.ai или Console или API-ключ. Объедините это с forceLoginMethod или forceLoginOrgUUID, чтобы также ограничить вход
    • "bedrock": Amazon Bedrock
    • "vertex": Google Cloud's Agent Platform, ранее Vertex AI
    • "foundry": Microsoft Foundry
    • "anthropicAws": Claude Platform on AWS
    • "mantle": эндпоинт Mantle Amazon Bedrock. Сессия, которая запускает Mantle вместе с Invoke API, использует обоих поставщиков, поэтому перечислите для неё "bedrock" и "mantle" вместе
    • "customEndpoint": Anthropic API или API облачного поставщика, отправляемые на другой хост, например LLM-шлюз, указанный в ANTHROPIC_BASE_URL или в переменной эндпоинта поставщика, такой как ANTHROPIC_BEDROCK_BASE_URL. Claude Code допускает это только для точного значения, которое закрепляет управляемый блок env
    • "gateway": вход через Cloud gateway
  • Default: не установлено, поэтому можно использовать любого поставщика
{
  "allowedProviders": ["anthropic", "bedrock"]
}

Запись каждого облачного поставщика означает собственный сервис этого поставщика, включая его региональные, FIPS и приватные эндпоинты.

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

Эндпоинты, которым нужен pin в управляемом `env`

Pin — это значение переменной эндпоинта, установленное в управляемом блоке env. Когда сессия отправляет трафик поставщика куда-то, кроме собственного сервиса этого поставщика, Claude Code допускает это, только если значение сессии совпадает с pin. Pin нужен следующим эндпоинтам:

  • Сессии "customEndpoint": переменная, которая указывает хост, например ANTHROPIC_BASE_URL
  • Amazon Bedrock: переменные AWS SDK AWS_ENDPOINT_URL, AWS_ENDPOINT_URL_BEDROCK и AWS_ENDPOINT_URL_BEDROCK_RUNTIME, когда они указывают за пределы собственного сервиса Bedrock. Сессия остаётся под "bedrock", а не "customEndpoint"
  • URL входа через шлюз: сессия остаётся под "gateway", и forceLoginGatewayUrl также считается pin

Какие блоки env считаются pin, зависит от того, где установлен список:

  • Источник администратора на машине устанавливает список: учитываются только блоки env собственных источников администратора машины
  • Список устанавливают только управляемые сервером настройки: значение env в этих управляемых сервером настройках также учитывается

Список не оценивает переменные учётных данных и арендатора облачного поставщика или сетевой путь, такие как HTTPS_PROXY и настройки сертификатов. Установите их для всего парка машин в управляемом блоке env.

`apiKeyHelper`

Запустите собственную команду для создания учётных данных, которые Claude Code отправляет с запросами к модели. Claude Code запускает команду через системную оболочку, /bin/sh на macOS и Linux и cmd на Windows, и отправляет её вывод как в заголовке X-Api-Key, так и в Authorization: Bearer. Используйте это для динамических или ротируемых учётных данных, таких как краткосрочные токены, полученные из хранилища.

  • Scope: Any file
  • Type: строка, командная строка оболочки
  • Default: не установлено, поэтому Claude Code не запускает помощник
{
  "apiKeyHelper": "/bin/generate_temp_api_key.sh"
}

Claude Code кэширует значение и повторно запускает команду в следующих случаях:

  • После истечения времени жизни кэша, пять минут по умолчанию или интервал, который вы установили с помощью CLAUDE_CODE_API_KEY_HELPER_TTL_MS.
  • Когда запрос к API Anthropic, напрямую или через LLM-шлюз, завершается с ошибкой 401 или 403.
  • Перед отправкой запроса к API Anthropic, напрямую или через LLM-шлюз, когда кэшированный вывод — это JWT, который истёк после того, как помощник его создал. Требуется Claude Code v2.1.246 или позже.

Последние два случая применяются, только когда вывод помощника — это учётные данные, которые отправляет Claude Code, и ANTHROPIC_AUTH_TOKEN не установлен.

В интерактивных сессиях, когда команда поступает из настроек проекта или локальных настроек, Claude Code не запускает её до тех пор, пока вы не примете запрос доверия к рабочему пространству. См. Управление учётными данными.

`awsAuthRefresh`

Запустите собственную команду, такую как aws sso login, для обновления учётных данных в вашем каталоге .aws, когда те, которые есть у Claude Code для Amazon Bedrock, перестают работать. Claude Code сначала проверяет текущие учётные данные через STS и запускает команду, только когда эта проверка не проходит, затем читает обновлённый каталог .aws.

Когда проверка одновременно не проходит в нескольких процессах Claude Code, использующих одну и ту же команду и учётные данные, например в отдельных терминалах или окнах IDE, один процесс запускает команду, а остальные ждут результата этого запуска, не запуская команду сами. Процесс, который прождал 60 секунд с ожидающим запросом, запускает команду сам. Чтобы отключить это, установите CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK в 1.

  • Scope: Any file
  • Type: строка, командная строка оболочки
  • Default: не установлено, поэтому Claude Code не обновляет учётные данные AWS за вас
{
  "awsAuthRefresh": "aws sso login --profile myprofile"
}

Используйте этот ключ, когда ваш процесс обновления записывает в .aws; используйте awsCredentialExport, когда он вместо этого выводит учётные данные. См. расширенную конфигурацию учётных данных.

`awsCredentialExport`

Запустите собственную команду, которая выводит учётные данные AWS в формате JSON, чтобы Claude Code мог вызывать Amazon Bedrock с учётными данными, которые не находятся в вашем каталоге .aws. Claude Code принимает форму вывода aws sts и плоскую форму aws configure export-credentials и ограничивает учётные данные своим собственным клиентом Bedrock, поэтому команды оболочки, которые запускает Claude, по-прежнему видят ваши окружающие учётные данные.

  • Scope: Any file
  • Type: строка, командная строка оболочки
  • Default: не установлено, поэтому Claude Code использует окружающую цепочку учётных данных AWS
{
  "awsCredentialExport": "/bin/generate_aws_grant.sh"
}

В отличие от awsAuthRefresh, Claude Code всегда запускает эту команду, когда она установлена, без предварительной проверки окружающих учётных данных. См. расширенную конфигурацию учётных данных.

`forceLoginMethod`

Ограничьте, с каким типом учётной записи люди могут входить. Установите "claudeai", чтобы разрешить только учётные записи claude.ai, "console", чтобы разрешить только учётные записи Claude Console, или "gateway", чтобы направлять людей на облачный шлюз вместо входа первой стороны. Администраторы устанавливают это в управляемых настройках и сочетают с forceLoginOrgUUID, чтобы входы разработчиков в claude.ai оставались внутри одной организации. Если вы установите значение "claudeai" или "console" в любом файле настроек, Claude Code также перестаёт предлагать вход в Console без ключа в сессиях, к которым применяется этот файл.

  • Scope: Any file. Claude Code учитывает "gateway" только из управляемого источника на машине: managed-settings.json, plist macOS или реестра Windows HKLM, или помощника политики. Он рассматривает "gateway" как неустановленное значение в пользовательских, проектных, локальных, HKCU и управляемых сервером настройках — то же правило, что и для forceLoginGatewayUrl.
  • Type: строка, одно из значений:
    • "claudeai": входить могут только учётные записи claude.ai
    • "console": входить могут только учётные записи Claude Console
    • "gateway": Claude Code направляет людей на облачный шлюз вместо входа первой стороны
  • Default: не установлено, поэтому люди выбирают метод входа сами
{
  "forceLoginMethod": "claudeai"
}

Каждый путь входа первой стороны применяет ограничение, включая расширение VS Code, Agent SDK, claude setup-token и /install-github-app, за исключением интерактивного экрана входа в терминале, доступного через /login или первоначальную настройку, который предварительно выбирает метод без его принудительного применения. До v2.1.212 ограничение применялось только при входе через терминал. См. Ограничить вход вашей организацией, чтобы узнать, как обрабатываются каждый путь входа, учётные данные окружения и сторонние поставщики.

Когда управляемый источник на машине устанавливает "gateway", Claude Code не использует оставшийся вход, API-ключ или учётные данные apiKeyHelper. См. Политика администратора требует вход через облачный шлюз, чтобы узнать, какое сообщение выдаёт каждый из них. Если вы выбираете облачного поставщика через CLAUDE_CODE_USE_BEDROCK или аналогичную переменную окружения, сессии не требуется вход через шлюз. До v2.1.261 Claude Code использовал оставшийся вход на таких машинах.

`forceLoginGatewayUrl`

Установите URL шлюза, к которому подключается экран облачного шлюза /login, чтобы люди попадали на ваш облачный шлюз без ввода его адреса. На экране нет поля URL: если этот ключ установлен, экран показывает URL вашего шлюза и подключается, когда человек нажимает Enter; без него экран предлагает обратиться к IT-администратору.

Либо этот ключ, либо forceLoginMethod: "gateway" делает машину доступной только через шлюз, за исключением сессий, которые выбирают облачного поставщика с помощью CLAUDE_CODE_USE_*. Тогда /login открывается на экране облачного шлюза без выбора метода входа. См. Политика администратора требует вход через облачный шлюз, чтобы узнать, что происходит с оставшимся входом первой стороны или API-ключом. Установите оба ключа, чтобы экран подключался, а не показывал ошибку.

  • Scope: Managed. Читается только из источника на машине: managed-settings.json, plist macOS или реестра Windows HKLM, или помощника политики. Claude Code игнорирует его в HKCU и управляемых сервером настройках.
  • Type: строка, полный URL, включая схему
  • Default: не установлено, поэтому экран облачного шлюза показывает ошибку с предложением обратиться к IT-администратору
{
  "forceLoginGatewayUrl": "https://claude-gateway.example.com"
}

Если значение не является действительным URL, экран входа сообщает об этом, а остальная часть файла управляемых настроек по-прежнему применяется. См. Установить URL шлюза.

`forceLoginOrgUUID`

Из управляемого источника требуйте, чтобы входы с учётной записью claude.ai принадлежали одной организации Anthropic, указанной как один UUID, или любой из нескольких организаций, указанных как массив. Из любого файла настроек Claude Code также использует один UUID для предварительного выбора этой организации во время входа в claude.ai или Claude Console и ничего не выбирает предварительно для массива. Если вы установите ключ в любом файле настроек, Claude Code также перестаёт предлагать вход в Console без ключа в сессиях, к которым применяется этот файл, и вместо этого создаёт API-ключ.

  • Scope: Any file. Ограничение применяет только управляемый источник; один UUID в любом другом файле настроек предварительно выбирает организацию во время входа, не ограничивая его.
  • Type: строка, один UUID, или массив строк, несколько UUID
  • Default: не установлено, поэтому может входить любая организация

Этот пример принимает входы из любой из двух организаций без предварительного выбора одной из них:

{
  "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
}

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

См. Ограничить вход вашей организацией, чтобы узнать, как Claude Code обрабатывает входы в Claude Console, другие пути входа и учётные данные окружения.

`gatewayInternalNetworks`

Объявите публичные блоки IPv4, из которых ваша организация нумерует свою внутреннюю сеть, чтобы /login принимал облачный шлюз в них. Требуется Claude Code v2.1.268 или позже.

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

  • Scope: Managed. Читается только из источника на машине: managed-settings.json, plist macOS или реестра Windows HKLM, или помощника политики. Claude Code игнорирует его в HKCU и управляемых сервером настройках.
  • Type: массив строк, не более четырёх блоков IPv4 CIDR, каждый от /8 до /32, не пересекающихся друг с другом и ни один из которых не пересекается с приватным пространством.
  • Default: не установлено, поэтому /login принимает только шлюзы на приватных адресах
{
  "gatewayInternalNetworks": ["203.0.113.0/24"]
}

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

Если запись недействительна или значение не является списком строк, /login называет проблему и отклоняет любой новый вход через шлюз на машине до тех пор, пока вы не исправите значение. Существующие входы продолжают работать. См. Разрешить шлюз в принадлежащем вам публичном адресном пространстве, чтобы узнать полные правила и то, что видят разработчики.

`gcpAuthRefresh`

Запустите собственную команду для обновления Google Cloud Application Default Credentials, когда Claude Code обнаруживает, что они истекли или не могут быть загружены, чтобы запросы к Google Cloud's Agent Platform продолжали работать без повторной аутентификации вручную.

Когда несколько процессов Claude Code, использующих одну и ту же команду и учётные данные, например в отдельных терминалах или окнах IDE, одновременно обнаруживают, что учётные данные истекли, один процесс запускает команду, а остальные ждут результата этого запуска, не запуская команду сами. Процесс, который прождал 60 секунд с ожидающим запросом, запускает команду сам. Чтобы отключить это, установите CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK в 1.

  • Scope: Any file
  • Type: строка, командная строка оболочки
  • Default: не установлено, поэтому ошибка учётных данных Claude Code предлагает вам самостоятельно выполнить gcloud auth application-default login
{
  "gcpAuthRefresh": "gcloud auth application-default login"
}

См. расширенную конфигурацию учётных данных.

`otelHeadersHelper`

Запустите собственную команду для создания заголовков, которые Claude Code отправляет с экспортами OpenTelemetry, для бэкендов с ротируемыми токенами. Claude Code запускает её при старте и затем периодически и ожидает в stdout объект JSON со строковыми значениями заголовков.

  • Scope: Any file
  • Type: строка, путь к исполняемому файлу или командная строка оболочки
  • Default: не установлено, поэтому Claude Code не добавляет заголовки, созданные помощником
{
  "otelHeadersHelper": "/bin/generate_otel_headers.sh"
}

Установите интервал обновления с помощью CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS. См. Динамические заголовки, чтобы узнать требования к скрипту и что происходит, когда помощник завершается с ошибкой.

Обновления и версионирование

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

`autoUpdatesChannel`

Выберите, какой канал выпуска следуют фоновые автоматические обновления и claude update. Установите "stable" для версии, которая обычно имеет возраст около одной недели и пропускает выпуски с серьёзными регрессиями, или "latest" для самого последнего выпуска.

  • Область действия: Any file. Установите это в управляемых параметрах, чтобы применить один канал во всей организации.
  • Тип: строка, одно из:
    • "latest": обновления следуют самому последнему выпуску
    • "stable": обновления следуют версии, которая обычно имеет возраст около одной недели и пропускает выпуски с серьёзными регрессиями
  • По умолчанию: не установлено, поэтому Claude Code следует "latest"
{
  "autoUpdatesChannel": "stable"
}

Claude Code записывает "stable" в ваши пользовательские параметры, когда вы выбираете это в разделе Auto-update channel в /config, и удаляет ключ, когда вы переключаетесь обратно на latest там. claude install stable и claude install latest также сохраняют выбранный вами канал. Переключение с "latest" на "stable" в /config спрашивает, разрешить ли понижение версии или остаться на текущей версии; остаток устанавливает minimumVersion. Установки Homebrew игнорируют этот ключ: пакет claude-code отслеживает stable, а claude-code@latest отслеживает latest, и claude update полагается на brew upgrade. Чтобы полностью отключить автоматические обновления, установите DISABLE_AUTOUPDATER в env.

`minimumVersion`

Предотвратите фоновые автоматические обновления и claude update от установки любой версии ниже этой, поэтому переход на канал "stable" не понизит вас с более новой сборки "latest". Claude Code записывает этот ключ для вас, когда вы выбираете остаться на текущей версии при переключении каналов в /config, и очищает его, когда вы переключаетесь обратно на "latest".

  • Область действия: Any file. Установите это в управляемых параметрах, чтобы закрепить минимум на уровне организации, который пользовательские и проектные параметры не могут снизить.
  • Тип: строка, номер версии, такой как "2.1.100"; значение, которое не является допустимой версией, игнорируется
  • По умолчанию: не установлено, поэтому обновления могут установить любую версию, которую предлагает канал

Этот пример следует стабильному каналу и отказывается устанавливать любую версию ниже 2.1.100:

{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}

Этот ключ только ограничивает обновления. Чтобы заставить Claude Code отказаться запускаться ниже версии, используйте вместо этого requiredMinimumVersion. См. Закрепить минимальную версию.

`requiredMaximumVersion`

Установите самую новую версию Claude Code, которую разрешает запускать ваша организация. Когда запущенная версия новее, Claude Code выходит при запуске и сообщает пользователю установить одобренную версию через утверждённый вашей организацией метод; claude install <version> также может работать. Требует Claude Code v2.1.163 или позже.

  • Область действия: Managed. Claude Code не выдаёт предупреждение, когда игнорирует ключ в других местах.
  • Тип: строка, номер версии, такой как "2.1.150"; значение, которое не является допустимой версией, игнорируется
  • По умолчанию: не установлено, поэтому потолок не применяется
{
  "requiredMaximumVersion": "2.1.150"
}

Фоновые автоматические обновления и claude update пропускают версии выше потолка, поэтому установка внутри диапазона остаётся внутри него. claude update, claude install и claude doctor продолжают работать выше потолка, чтобы пользователи могли восстановиться. Объедините это с requiredMinimumVersion, чтобы применить диапазон.

`requiredMinimumVersion`

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

  • Область действия: Managed. Claude Code не выдаёт предупреждение, когда игнорирует ключ в других местах.
  • Тип: строка, номер версии, такой как "2.1.150"; значение, которое не является допустимой версией, игнорируется
  • По умолчанию: не установлено, поэтому пол не применяется
{
  "requiredMinimumVersion": "2.1.150"
}

claude update, claude install и claude doctor продолжают работать ниже пола, чтобы пользователи могли восстановиться. В отличие от minimumVersion, который только предотвращает понижение версии, этот ключ блокирует запуск. Объедините это с requiredMaximumVersion, чтобы применить диапазон.

Tools

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

`browserExternalPageTools`

Запретите Claude использовать свои инструменты для чтения или действия на внешних страницах в панели Browser приложения для рабочего стола. Люди в вашей организации по-прежнему могут открывать внешние сайты самостоятельно, а локальные предпросмотры dev-сервера продолжают работать с инструментами Claude. Приложение для рабочего стола читает этот ключ; терминальный CLI игнорирует его.

  • Scope: Managed
  • Type: string, "disabled"; приложение для рабочего стола также принимает "disable", в любом случае
  • Default: не установлено, поэтому инструменты Claude работают на внешних страницах
{
  "browserExternalPageTools": "disabled"
}

Любое другое значение оставляет инструменты Claude включёнными, и непустая строка, которая не является одним из двух принятых значений, регистрирует предупреждение. Чтобы заблокировать внешние сайты для людей и Claude одновременно, установите disableBrowserExternalNavigation вместо этого. См. Ограничить внешний просмотр для вашей организации.

`disableBrowserExternalNavigation`

Отключите внешний просмотр в панели Browser приложения для рабочего стола для людей и Claude одновременно. Предпросмотры localhost dev-сервера продолжают работать. Приложение для рабочего стола читает этот ключ; терминальный CLI игнорирует его.

  • Scope: Managed
  • Type: Boolean; только JSON Boolean true вступает в силу
    • true: приложение для рабочего стола отключает внешний просмотр в панели Browser для людей и Claude одновременно; предпросмотры localhost продолжают работать
    • false: внешний просмотр остаётся включённым
  • Default: не установлено, поэтому внешний просмотр включён
{
  "disableBrowserExternalNavigation": true
}

Приложение для рабочего стола игнорирует любое другое значение, и значение, которое не является Boolean, такое как строка "true" или 1, также регистрирует предупреждение. Чтобы оставить внешний просмотр включённым, но отключить инструменты Claude на внешних страницах, установите browserExternalPageTools вместо этого. См. Ограничить внешний просмотр для вашей организации.

`disableMobileSimulatorTools`

Заблокируйте инструменты Claude для панели iOS Simulator приложения для рабочего стола. Люди сохраняют ручное использование панели; удаляется только доступ Claude, и никто не может включить его обратно из приложения. Приложение для рабочего стола читает этот ключ; терминальный CLI игнорирует его.

  • Scope: Managed
  • Type: Boolean; только JSON Boolean true вступает в силу
    • true: приложение для рабочего стола блокирует инструменты Claude для панели iOS Simulator
    • false: инструменты симулятора Claude следуют переключателю настроек каждого человека в приложении для рабочего стола
  • Default: не установлено, поэтому инструменты симулятора Claude следуют переключателю настроек каждого человека в приложении для рабочего стола
{
  "disableMobileSimulatorTools": true
}

Приложение для рабочего стола игнорирует любое другое значение, и значение, которое не является Boolean, такое как строка "true" или 1, также регистрирует предупреждение.

Конфиденциальность и телеметрия

Контролируйте, как долго Claude Code хранит данные сеанса и что он отправляет. Переключатели, которые отключают метрики использования и отчеты об ошибках, являются переменными окружения, а не ключами параметров: установите DISABLE_TELEMETRY, DISABLE_ERROR_REPORTING или CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC в ключе env или в оболочке. Услуги телеметрии описывает, что отключает каждый из них. Два исключения отключаются из файла параметров: feedbackDrafts ниже для отзывов, составленных Claude, и feedbackSurveyRate ниже для опроса сеанса.

`cleanupPeriodDays`

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

  • Область: Any file
  • Тип: количество дней, целое число, минимум 1
  • По умолчанию: 30
{
  "cleanupPeriodDays": 20
}

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

`desktopSessionCleanupPeriodDays`

Установите ограничение по возрасту в днях для стенограмм сеансов, которые вы запустили или недавно продолжили в Claude Desktop или Cowork. Без этого ключа Claude Code хранит эти стенограммы в любом возрасте. Claude Code удаляет каждую из них, как только она становится старше как этого ограничения, так и cleanupPeriodDays, поэтому при cleanupPeriodDays по умолчанию 30, значение 7 все еще хранит их 30 дней. Когда управляемые параметры устанавливают cleanupPeriodDays, этот период применяется вместо этого, и этот ключ игнорируется. Требуется Claude Code v2.1.248 или позже.

  • Область: User or managed. Claude Code также читает ключ из файла, который вы передаете с --settings, и игнорирует его в параметрах проекта и локальных параметрах.
  • Тип: количество дней, целое число, минимум 0
  • По умолчанию: 0, что не устанавливает ограничение по возрасту
{
  "desktopSessionCleanupPeriodDays": 90
}

`feedbackDrafts`

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

  • Область: User or managed
  • Тип: строка, одна из "notify", "quiet" или "off"
    • "notify": Claude Code показывает карточку над приглашением, когда Claude ставит черновик в очередь, до трех карточек в сеансе по умолчанию
    • "quiet": Claude составляет черновики без карточки. Вы видите количество поставленных в очередь черновиков в нижнем колонтитуле приглашения и рассматриваете их в /feedback
    • "off": Claude Code удаляет инструмент SendFeedback, поэтому Claude не может ставить черновики в очередь
  • По умолчанию: "notify"
  • Переопределения для каждого сеанса: CLAUDE_CODE_SEND_FEEDBACK установленный на 0 отключает функцию для одного сеанса
{
  "feedbackDrafts": "quiet"
}

Появляется в /config как Claude-drafted feedback, который записывает этот ключ в ваши пользовательские параметры. Вы видите строку /config только в сеансах где Claude может составлять отзывы; установка "off" не скрывает его, поэтому вы можете снова включить функцию из той же строки. Значение в управляемых параметрах имеет приоритет над вашим пользовательским параметром, поэтому когда администратор устанавливает этот ключ, строка показывает управляемое значение, и его изменение не имеет эффекта. Claude Code игнорирует этот ключ в параметрах проекта и локальных параметрах.

`feedbackSurveyRate`

Установите вероятность того, что опрос качества сеанса появится, когда сеанс имеет право на него. Установите 0, чтобы опрос не появлялся.

  • Область: Any file
  • Тип: число между 0 и 1
  • По умолчанию: не установлено, поэтому Claude Code использует скорость, которую Anthropic устанавливает удаленно, или встроенную скорость 0.005 на Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, которые не получают удаленную конфигурацию
  • Переопределения для каждого сеанса: CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY установленный на 1 отключает опрос для одного сеанса независимо от скорости, которую устанавливает этот ключ
{
  "feedbackSurveyRate": 0.05
}

Та же скорость применяется к опросу в расширении VS Code.

`skipWebFetchPreflight`

Пропустите проверку безопасности домена WebFetch, которая отправляет каждое запрашиваемое имя хоста на api.anthropic.com перед выборкой. Установите true в окружениях, которые блокируют трафик к Anthropic, таких как Amazon Bedrock, Google Cloud's Agent Platform или развертывания Microsoft Foundry с ограничивающим исходящим трафиком.

  • Область: Any file
  • Тип: Boolean
    • true: Claude Code пропускает проверку безопасности домена WebFetch
    • false: проверка выполняется перед первой выборкой для каждого имени хоста в сеансе и снова для имени хоста, чья более ранняя проверка была заблокирована или не удалась
  • По умолчанию: не установлено, поэтому проверка выполняется перед первой выборкой для каждого имени хоста в сеансе
{
  "skipWebFetchPreflight": true
}

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

Корпоративные и управляемые параметры

Ключи, которые организация использует для вычисления, обновления и объединения управляемых параметров. См. Настройка управляемых параметров.

`disableSideloadFlags`

Отклонять флаги CLI --plugin-dir, --plugin-url, --agents и --mcp-config при запуске, которые пользователи могут передать для обхода strictKnownMarketplaces при одном запуске. Claude Code завершает работу с ошибкой, указывающей на отклоненные флаги. В облачных сеансах Claude Code вместо этого запускает сеанс и удаляет каждую доставленную сервером запись --mcp-config, кроме встроенных записей type: "sdk" и инструментов Slack сеанса Claude Tag. Требуется Claude Code v2.1.193 или позже.

  • Область: Managed
  • Тип: Boolean
    • true: Claude Code отклоняет --plugin-dir, --plugin-url, --agents и --mcp-config при запуске и завершает работу с ошибкой, указывающей на них. В облачных сеансах вместо этого запускает сеанс и удаляет каждую доставленную сервером запись --mcp-config, кроме встроенных записей type: "sdk" и инструментов Slack сеанса Claude Tag
    • false: Claude Code принимает эти флаги
  • По умолчанию: false
{
  "disableSideloadFlags": true
}

Claude Code по-прежнему принимает --mcp-config, чьи серверы являются встроенными записями type: "sdk", поэтому Agent SDK и расширение VS Code продолжают работать. Пользователи по-прежнему могут добавлять серверы с помощью claude mcp add или файла .mcp.json; для управления отдельными серверами также установите allowedMcpServers. Требуется Claude Code v2.1.193 или позже.

Та же проверка охватывает папки плагинов, названные в переменной окружения CLAUDE_CODE_PLUGIN_DIRS, что требует Claude Code v2.1.280 или позже. Когда переменная называет папку, Claude Code завершает работу с той же ошибкой, и ошибка говорит отменить установку переменной.

В облачных сеансах Claude Code также игнорирует обновления MCP, доставленные сервером в середине сеанса, путь позади конфигурации облачного сеанса и SDK setMcpServers() вызовов, которые достигают этих сеансов. Встроенные записи type: "sdk" и инструменты Slack сеанса Claude Tag остаются исключенными там же. До v2.1.268 как это удаление, так и удаление при запуске также удаляли инструменты Slack сеанса Claude Tag. До v2.1.239 доставленный сервером --mcp-config блокировал запуск облачного сеанса.

Приложение для рабочего стола управляет некоторыми плагинами самостоятельно, включая плагины, синхронизированные из claude.ai, и плагины, которые ваша организация развертывает через приложение. Если вы развертываете этот ключ на устройстве через MDM, политику уровня ОС или файл управляемых параметров, приложение для рабочего стола не передает эти плагины следующим сеансам на этом устройстве:

  • Сеансы Code на машине пользователя: они также запускаются без включенных навыков для учетной записи claude.ai пользователя. Плагины, которые Claude Code устанавливает из маркетплейсов в ваших управляемых параметрах, по-прежнему загружаются. В Claude Desktop на 3P серверы MCP из плагинов, которые вы развертываете в каталоге org-plugins устройства, остаются доступными, потому что приложение для рабочего стола подключается к ним самостоятельно. До Claude Desktop v1.37937.0 эти сеансы не запускались.
  • Сеансы Cowork на машине пользователя: навыки внутри этих плагинов и навыки, включенные для учетной записи claude.ai пользователя, остаются доступными. В Claude Desktop на 3P серверы MCP из плагинов, которые вы развертываете в каталоге org-plugins устройства, остаются доступными, потому что приложение для рабочего стола подключается к ним самостоятельно. До Claude Desktop v1.44121.0 эти сеансы не запускались.

`forceRemoteSettingsRefresh`

Блокировать запуск CLI до тех пор, пока Claude Code не получит свежую выборку управляемых параметров сервера. Если выборка не удается, Claude Code завершает работу вместо продолжения с кэшированными или отсутствующими параметрами. Установите это, когда ваша среда не может принять даже краткое окно, в котором сеанс работает без своей управляемой политики.

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

  • Область: Managed. Claude Code соблюдает true из любого управляемого администратором источника, даже если это не источник с наивысшим приоритетом.
  • Тип: Boolean
    • true: Claude Code блокирует запуск до тех пор, пока он не получит свежую выборку управляемых параметров сервера, и завершает работу, если выборка не удается
    • false: Claude Code не блокирует запуск при выборке, хотя при запуске входа он ждет до пяти секунд для выборки
  • По умолчанию: false
{
  "forceRemoteSettingsRefresh": true
}

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

`managedSourcesBehavior`

Выберите, применяет ли Claude Code только источник с наивысшим приоритетом управляемый источник, который доставляет ваша организация, или объединяет каждый источник администратора, который она доставляет. По умолчанию Claude Code берет источник с наивысшим приоритетом, который содержит ключ политики, и игнорирует остальное. Ключ политики — это любой ключ параметров, кроме этого и wslInheritsWindowsSettings. Таким образом, как только управляемые параметры сервера или политика MDM доставляют ключ политики, файл managed-settings.json вносит только ключи, которые Claude Code читает из каждого источника администратора. С "merge" каждый источник администратора, который вы доставляете, вносит свои ключи в одну объединенную политику. Требуется Claude Code v2.1.242 или позже.

Установите "merge" только там, где каждый источник ранжированный ниже вашего наивысшего находится под контролем администратора, потому что Claude Code затем добавляет записи из более низкого источника, такие как правила permissions.allow, в политику.

  • Область: Managed. Claude Code читает этот ключ из источника с наивысшим приоритетом, который содержит либо этот ключ, либо ключ политики, и игнорирует этот ключ в каждом источнике, ранжированном ниже, поэтому более низкий источник не может выбрать себя для объединения с источником выше. Ни реестр Windows HKCU, ни родительские параметры от хоста встраивания не участвуют в объединении.
  • Тип: string, один из:
  • По умолчанию: "first-wins"

Доставьте ключ в источник с наивысшим приоритетом, который вы развертываете. Машина, которая никогда не получает управляемые параметры сервера, нуждается в ключе в своем профиле MDM, потому что Claude Code читает ключ из источника с наивысшим приоритетом, который его содержит или ключ политики. Файл managed-settings.json является источником администратора с наименьшим рангом, поэтому "merge", установленный там, не имеет источника ниже для объединения. В управляемых параметрах сервера ключ выглядит так:

{
  "managedSourcesBehavior": "merge"
}

Под "merge" Claude Code объединяет каждый ключ по его типу. Эта таблица дает правило для каждого типа. Строки списка ограничений, значения-взятые-целиком и только-наивысший-источник называют каждый ключ, который они охватывают, и другие строки дают примеры:

Тип ключа Как Claude Code его объединяет Ключи
Списки Объединяет записи из каждого источника permissions.allow, sandbox.network.allowedDomains и другие ключи списков
Блокировки Применяет самое строгое значение, которое устанавливает любой источник. Когда ни один источник не устанавливает строгое значение, применяет более мягкое значение только из источника с наивысшим приоритетом allowManagedPermissionRulesOnly, permissions.disableBypassPermissionsMode и другие логические или перечисляемые блокировки
Списки ограничений Берет список целиком из источника с наивысшим приоритетом, который его устанавливает, без добавления записей из более низких источников. Когда источник с наивысшим приоритетом его не устанавливает, берет его целиком из следующего источника вниз availableModels, allowedMcpServers, allowedProviders, strictKnownMarketplaces, allowedChannelPlugins и цепь fallbackModel
Значения, взятые целиком Берет значение целиком из источника с наивысшим приоритетом, который его устанавливает, без объединения записей или полей из более низких источников. Когда источник с наивысшим приоритетом его не устанавливает, берет его целиком из следующего источника вниз sandbox.credentials.awsPairs, sandbox.ripgrep
Предоставленные MCP серверы Объединяет имена серверов из каждого источника. Когда два источника устанавливают одно имя, применяет всю запись источника с более высоким приоритетом managedMcpServers
Читается только из источника с наивысшим приоритетом Читает ключ только из источника с наивысшим приоритетом, который содержит ключ политики, поэтому значение более низкого источника игнорируется даже когда источник с наивысшим приоритетом его не устанавливает apiKeyHelper, awsAuthRefresh, awsCredentialExport, gcpAuthRefresh, otelHeadersHelper, proxyAuthHelper, forceLoginOrgUUID, значения "claudeai" и "console" forceLoginMethod, parentSettingsBehavior, modelPicker, policyHelper, permissions.defaultMode
env Объединяет переменные для каждого администратора источников, под обоими "first-wins" и "merge" env
Каждый другой ключ Берет значение из источника с наивысшим приоритетом, который его устанавливает cleanupPeriodDays, model

Взятие sandbox.credentials.awsPairs и sandbox.ripgrep целиком требует Claude Code v2.1.257 или позже.

Несколько ключей добавляют условие, которое таблица не показывает:

  • policyHelper: Claude Code соблюдает это только когда источник с наивысшим приоритетом, который содержит ключ политики, является политикой MDM или файлом управляемых параметров, поэтому при управляемых параметрах сервера это не применяется.
  • modelOverrides: связан с availableModels. Claude Code берет modelOverrides из источника с наивысшим приоритетом, который его устанавливает, если только более высокий источник не устанавливает availableModels без modelOverrides. В этом случае он игнорирует modelOverrides из каждого источника.
  • forceLoginGatewayUrl, gatewayInternalNetworks и значение "gateway" forceLoginMethod: Claude Code никогда не читает ни один из них из управляемых параметров сервера, поэтому значение там ни не применяется, ни не скрывает значение, установленное в политике MDM или файле управляемых параметров. Среди источников администратора на машине только источник с наивысшим рангом, который содержит ключ политики, поставляет их, независимо от того, присутствуют ли также управляемые параметры сервера.
  • allowedProviders: после правила таблицы, список машины все еще ограничивает результат, как указано в примечании Scope записи.

Чтобы подтвердить, какие источники объединены на машине, запустите /status и прочитайте строку Setting sources.

`parentSettingsBehavior`

Выберите, применяет ли Claude Code управляемые параметры, поставляемые процессом хоста встраивания, таким как Agent SDK или расширение IDE, когда также присутствует развернутый администратором управляемый уровень. С "first-wins" Claude Code отбрасывает параметры, поставляемые хостом; с "merge" он применяет их под уровнем администратора через фильтр только для ограничений. Установите "merge", когда хосту нужно передать свои собственные ограничения сеансам, которые он запускает, например Claude Desktop, доставляющий список разрешенных исходящих соединений шлюза.

  • Область: Managed. Claude Code читает это из источника управляемого администратором с наивысшим приоритетом.
  • Тип: string, один из:
    • "first-wins": Claude Code отбрасывает параметры, поставляемые хостом, когда присутствует развернутый администратором управляемый уровень
    • "merge": Claude Code применяет параметры, поставляемые хостом, под уровнем администратора через фильтр только для ограничений
  • По умолчанию: "first-wins"
{
  "parentSettingsBehavior": "merge"
}

Этот ключ не имеет эффекта, когда не существует развернутого администратором управляемого уровня: параметры хоста затем применяются как единственный управляемый уровень, все еще отфильтрованные до значений только для ограничений. Для ограничений фильтра и того, как взаимодействуют управляемые источники, см. Родительские параметры от хостов встраивания и Ограничение родительских параметров.

`policyHelper`

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

  • Область: Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых параметров. Claude Code читает ключ из источника управляемого администратором с наивысшим приоритетом, который содержит ключ политики, и запускает помощника только когда этот источник является одним из этих трех; он игнорирует ключ в управляемых параметрах сервера, реестре HKCU и родительских параметрах, поставляемых хостом.
  • Тип: object с path, timeoutMs и refreshIntervalMs
  • По умолчанию: не установлено, поэтому помощник не запускается

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

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

Этот пример запускает помощника с тайм-аутом 5 секунд и повторно запускает его каждые пять минут:

{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000,
    "refreshIntervalMs": 300000
  }
}

Напишите выход помощника

Claude Code запускает помощника без аргументов, устанавливает CLAUDE_CODE_VERSION в его окружение и читает конверт JSON из stdout, ограниченный 1 МиБ.

Поместите параметры под ключ managedSettings. Объект параметров без ключа managedSettings анализируется с managedSettings undefined и ничего не применяет, и Claude Code не сообщает об ошибке:

{
  "managedSettings": {
    "permissions": { "deny": ["Read(//etc/secrets/**)"] }
  }
}

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

Проверка forceRemoteSettingsRefresh при запуске выполняется перед помощником и читает любой источник администратора. Помощник, который выходит с 0 с конвертом, который опускает managedSettings, не вносит управляемые параметры, и другие источники применяются как обычно.

Сбои помощника

Запуск помощника не удается, когда:

  • path нарушает правила в policyHelper.path.
  • Нет обычного файла в path. Claude Code проверяет файл перед запуском помощника, в пределах того же бюджета timeoutMs, поэтому неотзывчивое сетевое крепление может привести к сбою запуска.
  • Помощник выходит с ненулевым кодом, все еще работает, когда истекает timeoutMs, или вообще не запускается, например потому что он не исполняемый.
  • Помощник записывает более 1 МиБ в stdout или stderr.
  • stdout не является одним объектом JSON, или его managedSettings имеет нарушение схемы, которое Claude Code не может исправить.

Когда запуск при запуске не удается, Claude Code выводит причину и отказывается запускаться. После выхода с ненулевым кодом причина включает stderr помощника или его stdout, когда stderr пуст. После тайм-аута причина называет предел timeoutMs и не включает ни один из выходов помощника. Отказ охватывает интерактивные сеансы, claude -p, сеансы Agent SDK, фоновые сеансы и большинство подкоманд.

Отказ преднамерен, поэтому помощник, который нуждается в устойчивости к сбоям, должен обслуживать из своего собственного кэша и выходить с 0.

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

С --debug Claude Code записывает stderr помощника из каждого запуска в журнал отладки.

Claude Code сообщает о недействительном значении policyHelper как о отброшенной записи и запускает сеанс на оставшихся управляемых параметрах без запуска помощника. Недействительные значения включают строку пути и timeoutMs ниже его минимума.

Чтобы отключить помощника, удалите ключ из источника, который его устанавливает.

`policyHelper.path`

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

  • Область: Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых параметров, где читается policyHelper.
  • Тип: string, абсолютный путь в нормализованной форме, без сегментов . или ..; в Windows путь с буквой диска или UNC, заканчивающийся на .exe
  • По умолчанию: нет; требуется, когда установлен policyHelper
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy"
  }
}

`policyHelper.timeoutMs`

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

  • Область: Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых параметров, где читается policyHelper.
  • Тип: integer, миллисекунды, минимум 1000
  • По умолчанию: 10000
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000
  }
}

`policyHelper.refreshIntervalMs`

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

  • Область: Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых параметров, где читается policyHelper.
  • Тип: integer, миллисекунды: 0 для отключения обновления, иначе по крайней мере 60000
  • По умолчанию: не установлено, поэтому Claude Code запускает помощника один раз при запуске

Этот пример повторно запускает помощника каждые пять минут:

{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "refreshIntervalMs": 300000
  }
}

`wslInheritsWindowsSettings`

Заставьте Claude Code на WSL читать управляемые параметры из цепи политики Windows, с HKLM и файлом управляемых параметров Windows, имеющими приоритет над /etc/claude-code и HKCU ниже. Пока цепь включена, Claude Code читает /etc/claude-code только когда нет документа администратора Windows в значении реестра HKLM или папке C:\Program Files\ClaudeCode\. Установите это, чтобы расширить политику, которую вы уже развертываете в Windows, на сеансы WSL на той же машине, чтобы они следовали тем же правилам, что и сеансы хоста. Claude Code соблюдает это только когда установлено в ключе реестра HKLM или в файле управляемых параметров или drop-in под C:\Program Files\ClaudeCode\, оба из которых требуют администратора Windows для записи.

  • Область: Managed. В источнике Windows, управляемом администратором.
  • Тип: Boolean
    • true: Claude Code на WSL читает управляемые параметры из цепи политики Windows, и читает /etc/claude-code только когда нет документа администратора Windows
    • false: WSL читает только /etc/claude-code
  • По умолчанию: false, поэтому WSL читает только /etc/claude-code
{
  "wslInheritsWindowsSettings": true
}

Как только источник администратора включает цепь, политика HKCU присоединяется к ней на WSL только когда HKCU также устанавливает ключ на true. Эта копия не включает цепь сама по себе. Источник Windows, который содержит только этот ключ, установленный на true или false, не считается источником политики, поэтому источник с более низким приоритетом все еще поставляет политику. Этот ключ не имеет эффекта на нативный Windows.

Claude Code читает true и false с кавычками или без них и читает null как удаление ключа. Источник Windows, управляемый администратором, который содержит любое другое значение, считается присутствующим документом администратора с включенной цепью: ни /etc/claude-code, ни HKCU не применяются, и предупреждение при запуске называет ключ. Значение HKLM или файл папки Windows, который существует, но не может быть прочитан, также препятствует применению /etc/claude-code независимо от того, включена ли цепь. Требуется Claude Code v2.1.282 или позже.

Глобальные параметры конфигурации

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

`autoConnectIde`

Подключайтесь к запущенной IDE автоматически при запуске Claude Code из внешнего терминала. Отображается в /config как Auto-connect to IDE (external terminal) при запуске Claude Code вне терминала VS Code или JetBrains.

  • Scope: Global config
  • Type: Boolean
    • true: Claude Code подключается к запущенной IDE автоматически при запуске из внешнего терминала
    • false: Claude Code не подключается автоматически из внешнего терминала; внутри терминала VS Code или JetBrains, или с --ide, он все еще подключается
  • Default: false
  • Per-session overrides: CLAUDE_CODE_AUTO_CONNECT_IDE имеет приоритет над этим ключом для одного сеанса в любом направлении
{
  "autoConnectIde": true
}

Claude Code игнорирует этот ключ в settings.json.

`autoInstallIdeExtension`

Устанавливайте расширение Claude Code IDE автоматически при запуске Claude Code из терминала VS Code. Отображается в /config как Auto-install IDE extension при запуске Claude Code внутри терминала VS Code или JetBrains.

  • Scope: Global config
  • Type: Boolean
    • true: Claude Code устанавливает расширение IDE автоматически при запуске из терминала VS Code
    • false: Claude Code не устанавливает расширение автоматически
  • Default: true
  • Per-session overrides: CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL установленный на 1 пропускает установку для одного сеанса даже когда этот ключ имеет значение true
{
  "autoInstallIdeExtension": false
}

Claude Code игнорирует этот ключ в settings.json.

`claudeInChromeDefaultEnabled`

Запускайте каждую интерактивную сессию CLI с включенной интеграцией Chrome, без необходимости передавать --chrome каждый раз. Если вы запустите claude remote-control, сессия, которую он запускает для одного из ваших потоков проекта, также следует этому ключу, за исключением режима bypassPermissions. В Claude Code v2.1.287 или более поздней версии этот ключ также применяется к сессиям в расширении VS Code: см. Enable Chrome by default.

Запуск /chrome и выбор Enabled by default устанавливает этот ключ за вас. Отображается в /config как Claude in Chrome enabled by default.

  • Scope: Global config
  • Type: Boolean
    • true: Claude Code включает интеграцию Chrome при запуске интерактивной сессии CLI, как это происходит при передаче --chrome. В расширении VS Code сессии подключаются к браузеру при запуске
    • false: интерактивные сессии CLI запускаются с отключенной интеграцией Chrome, и Claude Code прекращает предлагать ее настройку. Передайте --chrome, чтобы включить ее для одной интерактивной сессии. В расширении VS Code сессия подключается, когда вы вводите @browser, как и в случае, когда ключ не задан
  • Default: unset, поэтому интеграция Chrome отключена и Claude Code все еще может предложить ее настройку
  • Per-session overrides: --chrome и --no-chrome имеют приоритет над этим ключом для одного интерактивного сеанса
{
  "claudeInChromeDefaultEnabled": true
}

Claude Code игнорирует этот ключ в settings.json.

`copyFullResponse`

Делайте так, чтобы /copy копировала полный ответ каждый раз, без средства выбора, которое оно иначе показывает, когда ответ содержит блоки кода. Выбор Always copy full response в этом средстве выбора устанавливает этот ключ на true. Отображается в /config как Skip the /copy picker.

  • Scope: Global config
  • Type: Boolean
    • true: /copy копирует полный ответ без показа средства выбора
    • false: когда ответ содержит блоки кода, /copy показывает средство выбора, где вы выбираете один блок кода или полный ответ
  • Default: false
{
  "copyFullResponse": true
}

Claude Code игнорирует этот ключ в settings.json.

`copyOnSelect`

Копируйте текст в буфер обмена автоматически при завершении выделения текста мышью в полноэкранном режиме или представлении агента. Отображается в /config как Copy on select во время включения полноэкранного режима.

{
  "copyOnSelect": false
}

Claude Code игнорирует этот ключ в settings.json.

`defaultToAgentsView`

Открывайте представление агента вместо нового разговора при запуске claude без аргументов. Отображается в /config как Open agents view by default, если представление агента не отключено.

  • Scope: Global config
  • Type: Boolean
    • true: claude без аргументов открывает представление агента, если представление агента не отключено
    • false: claude без аргументов запускает новый разговор
  • Default: false
{
  "defaultToAgentsView": true
}

Claude Code игнорирует этот ключ в settings.json.

`diffTool`

Выбирайте, где Claude Code показывает diff изменения Edit или Write, которое оно предлагает, когда подключена IDE VS Code или JetBrains: "auto" открывает его в средстве просмотра diff IDE, "terminal" сохраняет его в терминале. Отображается в /config как Diff tool только когда Claude Code подключен к IDE VS Code или JetBrains.

  • Scope: Global config
  • Type: string, один из:
    • "auto": Claude Code открывает diff в средстве просмотра diff IDE при подключении IDE VS Code или JetBrains
    • "terminal": Claude Code сохраняет diff в терминале
  • Default: "auto"
{
  "diffTool": "terminal"
}

Claude Code игнорирует этот ключ в settings.json.

`externalEditorContext`

При нажатии Ctrl+G Claude Code открывает подсказку, которую вы печатаете, в вашем внешнем редакторе. Когда этот ключ включен, буфер редактора начинается с предыдущего ответа Claude в виде строк комментариев #, чтобы вы могли прочитать его во время написания, и Claude Code удаляет эти строки при сохранении. Отображается в /config как Show last response in external editor.

  • Scope: Global config
  • Type: Boolean
    • true: буфер редактора начинается с предыдущего ответа Claude в виде строк комментариев #, которые Claude Code удаляет при сохранении
    • false: буфер редактора открывается только с вашей подсказкой
  • Default: false
{
  "externalEditorContext": true
}

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

# ─── Claude's last response (for reference; removed on save) ───
# I added the retry loop to fetchUser in src/api.ts and a test
# for the timeout case. Want me to wire the same retry into
# fetchOrders?
# ─── Write your reply below this line ──────────────────────────

Yes, and cap it at three attempts.

Claude Code сохраняет последние 50 строк ответа и отмечает срез с помощью # … (earlier output truncated).

Claude Code игнорирует этот ключ в settings.json.

`leftArrowOpensAgents`

Нажимайте ← на пустой подсказке, чтобы отправить сеанс в фоновый режим и открыть представление агента. Установите этот ключ на false, чтобы отключить сочетание клавиш. Отображается в /config как ← opens agents, когда представление агента доступно.

  • Scope: Global config
  • Type: Boolean
    • true: нажатие ← на пустой подсказке в сеансе, который вы запустили в терминале, отправляет его в фоновый режим и открывает представление агента
    • false: Claude Code отключает сочетание клавиш; в сеансе, который вы присоединили из представления агента, ← на пустой подсказке все еще отсоединяет
  • Default: true
{
  "leftArrowOpensAgents": false
}

Claude Code игнорирует этот ключ в settings.json.

`permissionExplainerEnabled`

До версии v2.1.256 вы могли нажать Ctrl+E на подсказке разрешения Bash или PowerShell, чтобы увидеть созданное моделью объяснение команды, и установить этот ключ на false, чтобы отключить это сочетание клавиш.

  • Scope: Global config. На v2.1.256 и более ранних версиях.
  • Type: Boolean
  • Default: true

`prStatusFooterEnabled`

Показывайте значок в нижнем колонтитуле подсказки для открытого запроса на слияние или запроса на объединение текущей ветви с цветной подчеркиванием, которое показывает его статус. Отображается в /config как Show PR status footer.

  • Scope: Global config
  • Type: Boolean
    • true: нижний колонтитул показывает значок при условиях в PR review status
    • false: Claude Code пропускает проверку запроса на слияние и запроса на объединение нижнего колонтитула и не показывает этот значок. Сеанс, который вы присоединили из представления агента, все еще может показать простую ссылку на запрос на слияние связанный с ним
  • Default: true
{
  "prStatusFooterEnabled": false
}

Claude Code игнорирует этот ключ в settings.json.

`teammateDefaultModel`

До версии v2.1.233 вы устанавливали этот ключ на модель для товарищей по команде агентской команды, для которых ваша подсказка не указала модель: псевдоним, такой как "sonnet", или null, чтобы следовать модели лидера. Для модели, которую Claude Code выбирает для таких товарищей по команде сейчас, см. укажите товарищей по команде и модели.

  • Scope: Global config. На v2.1.233 и более ранних версиях.
  • Type: string, псевдоним модели или полный ID модели, или null
  • Default: unset

См. также