SpyBara
Go Premium

settings.md 2026-09-09 22:58 UTC to 2026-09-10 23:00 UTC

This page contains 9 additions and 6 deletions.

2026
Wed 9 22:58 Thu 10 23:00 Sat 12 03:02 Fri 18 23:58 Tue 22 23:59 Fri 25 23:58

設定ファイルと優先順位

Claude Code の設定を変更し、キーが属するスコープを選択し、変更を確認し、複数の場所でキーが設定されている場合に Claude Code が使用する値を学びます。

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

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

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

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

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

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

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

})}

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

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

; };

設定は、Claude Code の動作を変更する JSON キーです。どのモデルで開始するか、何を確認なしで実行できるか、どのファイルを読み取れないか、ターミナルでどのように見えるか、および組織が強制する内容を決定します。

Claude Code は ~/.claude/settings.json などの JSON 設定ファイルから設定を読み込みます。いくつかの場所でそれらを探し、設定を読み込むファイルが、その設定が誰に適用されるかを決定します。このページでは、これらのファイルについて説明します。設定をどのファイルに入れるか、設定を変更して適用されたことを確認する方法、および同じキーが複数のファイルで設定されている場合に Claude Code が使用する値について説明します。権限を構成するでは、Claude Code が確認なしで実行できる内容と、allow、ask、および deny ルールを記述する方法について説明します。

設定ファイルと誰に影響するか

Claude Code は 4 つのファイルから設定を読み込み、組織は claude.ai コンソールから管理設定を配信することもできます。各ソースにはスコープがあります。スコープは、その中に保存された設定が適用される人とプロジェクトのセット。それがあなただけ、プロジェクト内のすべての人、またはあなたの組織内のすべての人であるかどうか。

スコープ ファイル 誰に影響するか 用途
ユーザー ~/.claude/settings.json あなた、このマシン上のすべてのプロジェクト 個人設定:テーマ、エディターモード、デフォルトモデル、独自の権限ルール
共有プロジェクト .claude/settings.json このフォルダを含むフォルダで作業しているすべての人。git リポジトリでは、コミットしてチームメイトが取得できるようにします チーム権限、hooks、プラグイン、およびプロジェクトが必要とする環境変数
プロジェクトローカル .claude/settings.local.json あなた、このプロジェクトのみ。Claude Code はファイルを作成するときに git から除外します。手動で作成する場合は、自分で .gitignore に追加してください 1 つのプロジェクトの個人的なオーバーライド、および共有する前のテスト
管理 managed-settings.json およびその他の管理ソース 組織がデプロイするすべての人。あなたが設定するものは何もそれをオーバーライドしません。いくつかのセキュリティに敏感な例外を除いて セキュリティポリシーおよびコンプライアンス要件

ファイル列では、~/.claude はホームディレクトリの .claude フォルダ、ベアの .claude はプロジェクト内の .claude フォルダです。

各設定ファイルのスコープを比較する

マシン上に 3 つのプロジェクト website/、api/、および acme-app/ があり、チームメイトが acme-app/ の独自のクローンを持ち、acme-app/ でクラウドセッションを開始するとします。

下のグラフィックは、それらのフォルダから Claude Code を開始するときに設定が適用されるフォルダを示しています。設定ファイルをクリックして、到達するフォルダを確認してください。

  • ~/.claude/settings.json:マシン上のすべてのプロジェクト、チームメイトまたはクラウドセッションには何もありません
  • acme-app/.claude/settings.json:あなたの acme-app/。バージョン管理にファイルをコミットする場合のみ、チームメイトのクローンとクラウドセッションに到達します。それまでは、他のファイルのようにディスク上のファイルであり、誰も持っていません
  • acme-app/.claude/settings.local.json:あなたの acme-app/ のみ。Claude Code はファイルを初めて書き込むときに、グローバル git 除外に追加するため、コミットから除外されます。手動でファイルを作成する場合は、自分で .gitignore に追加してください
  • 管理設定。managed-settings.json ファイル、MDM ポリシー、または claude.ai コンソールからのサーバー管理設定:組織がデプロイするすべてのマシン上のすべてのプロジェクト、またはあなたの組織アカウントでサインインするマシン。サーバー管理設定のみがクラウドセッションに到達します

設定ファイルを見つけるか作成する

Claude Code をインストールしても、設定ファイルは作成されません。マシンまたはプロジェクトに既に 1 つある場合は、これらのソースの 1 つから来ました:

  • 管理:組織がデプロイします。作成または編集しません。
  • 共有プロジェクト:Claude Code を既に使用しているプロジェクトにはコミットされたものがあるかもしれません。ない場合は、プロジェクトフォルダに .claude/settings.json で作成してください。
  • ユーザーおよびプロジェクトローカル:自分で作成するか、Claude Code に作成させます。テーマなどのユーザー設定に保存する /config メニューのオプションを初めて変更するときに ~/.claude/settings.json を書き込み、Bash コマンドに対して「はい、今後は聞かないでください」などの権限プロンプトで立ったままの承認を初めて与えるときに .claude/settings.local.json を書き込みます。ヒントを表示を含むいくつかの /config オプションは、ユーザーファイルの代わりに .claude/settings.local.json に保存されます。

Claude Code は、~/.claude.json という 5 番目のファイルも保持します。これは自分で書き込みます。編集する必要はありません。サインインセッション、MCP サーバー構成、信頼決定などのプロジェクトごとの状態、および /config があなたのために書き込むグローバル構成キーを保持します。

チームと設定を共有する

.claude/settings.json をコミットして、リポジトリをクローンするすべての人が同じ権限、hooks、テレメトリ、およびプラグインを取得するようにします。各チームメイトは、個人的な例外がコミットを必要としないように、独自の .claude/settings.local.json でそれをオーバーライドできます。完全なチームファイルについては、チームの共有設定を参照してください。

コミットするものの一部は、各チームメイトがフォルダを信頼するまで待機し、いくつかのキーはリポジトリファイルから効果を発揮しません。適用されない設定をトラブルシューティングするは両方をカバーしています。

リポジトリから個人設定を除外する

プロジェクト内で自分の設定を変更し、チームメイトの設定を変更しないようにするには、プロジェクト内の .claude/settings.local.json に保存してください。Claude Code はそのファイルをコミットされた .claude/settings.json に適用するため、チームのファイルが "model": "claude-sonnet-5" を設定し、Opus が必要な場合は、ローカルファイルに "model": "claude-opus-4-8" を入れて、セッションのみを変更します。

ローカルファイルについて 3 つのことを知ってください:

  • Claude Code もそれを書き込みます。 Claude が Bash コマンドを実行する権限を求め、「はい、今後は聞かないでください」を選択すると、Claude Code はその権限承認をここに allow ルールとして保存します。
  • 手動で作成した場合を除き、自分で gitignore する必要はありません。 Claude Code がリポジトリでファイルを初めて書き込むときに、既にそれを無視していない場合、グローバル git 除外ファイルに **/.claude/settings.local.json を追加するため、ファイルはすべてのリポジトリのコミットから除外されます。そのファイルは、グローバル git 構成がそれを絶対パスまたは ~ プレフィックス付きパスに設定する場合は core.excludesFile。それ以外の場合は $XDG_CONFIG_HOME/git/ignore、または XDG_CONFIG_HOME が設定されていない場合は ~/.config/git/ignore。手動でファイルを作成し、Claude Code がまだそれに書き込んでいない場合は、自分で .gitignore に追加してください。
  • ファイルが追跡されていない間、その allow ルールは信頼を待ちません。 ファイルはリポジトリのものではなくあなたのものであるため、Claude Code はコミットされたファイルが必要とするワークスペース信頼ステップなしにその allow ルールを適用します。ファイルが git で追跡されている場合、信頼ステップもそれに適用されます。ローカル設定ファイルが信頼を必要とする場合を参照してください。

Claude Code が git リポジトリでローカルファイルを保持する場所

Claude が Bash コマンドを実行する権限を求め、「はい、今後は聞かないでください」を選択すると、Claude Code はその承認を .claude/settings.local.json の allow ルールとして保存します。git リポジトリのサブディレクトリから Claude Code を開始する場合、リポジトリルートでそのファイルを読み取り、書き込み、リポジトリ全体に承認を適用します。worktree では、メインチェックアウトのルートのファイルを使用します。

2 つのルールがルートの場所を適格にします:

  • ファイルが .claude/settings.json の代わりに留まる場合:git リポジトリの外、リポジトリルートがホームディレクトリ、Windows、またはリポジトリルート、その .git またはその .claude エントリがユーザーによって所有されていない場合。
  • ファイル内のパスはリポジトリルートに固定されません:/ で始まる権限ルール、または相対サンドボックスパスは、セッションのプライマリ作業ディレクトリに固定されます。

v2.1.211 より前では、Claude Code は開始ディレクトリにファイルを保持していました。以前のバージョンが残したファイルをルートファイルと並行して読み込みます。両方が同じキーを設定する場合、ルートの値が適用され、両方のファイルからの権限ルールが適用されます。Agent SDK の resolveSettings() ヘルパーは常に開始ディレクトリからファイルを読み込みます。

Claude Code は共有 .claude/settings.json をセッションのプライマリ作業ディレクトリから読み込むため、リポジトリルートにコミットされたファイルを使用するには、そこから Claude Code を開始してください。/cd でセッションを移動した後、Claude Code は代わりに新しいディレクトリから両方のプロジェクトファイルを読み込み、同じルールでローカルファイルを配置します。移動したディレクトリから読み込むには Claude Code v2.1.246 以降が必要です。

組織が強制する内容を確認する

組織が Claude Code を管理する場合、いくつかの設定はあなたのために決定され、独自のファイルに入れるものは何もそれらを変更しません。どれを確認するには、/status を実行してください。Setting sources 行は、あなたに適用される管理ソースの名前を付けます。管理設定はこのマシンで Claude Code が実行される場所に到達します。開発者が変更できる内容はローカル管理者権限と Claude Code 以外のツールをカバーしています。

管理設定は管理設定ページの配信メカニズムを通じてあなたに到達します。最も一般的には:

Claude Desktop アプリで実行されるCowork セッションでは、Claude Code は claude.ai 管理コンソールからサーバー管理設定を取得しません。組織の Claude Desktop 構成が requireCoworkFullVmSandbox を設定しない限り、デバイスにデプロイされたポリシーを読み込みます。ポリシーが適用される場所と時期は Cowork とクラウドセッションをカバーしています。

管理者の場合、組織向けに Claude Code をセットアップするは何を強制するかを選択する手順を説明し、管理設定をデプロイするは配信と、ポリシーが有効であることを確認する方法をカバーしています。

設定を変更する

/config メニューから、設定ファイルを編集して、または 1 つのセッションのコマンドラインから設定を変更できます。

Claude Code のシステムプロンプトは公開されていません。Claude に立ったままの命令を与えるには、CLAUDE.md ファイルまたは --append-system-prompt フラグを使用してください。

/config メニューを使用する

Claude Code 内で /config を実行し、Config タブを開きます。テーマ、エディターモード、詳細出力などの短いセットの個人的なオプションをリストします。すべての設定キーではありません。オプションを選択して変更します。Claude Code はあなたのために保存します:

  • ほとんどのオプション:~/.claude/settings.json
  • ヒントを表示などのいくつかのオプション:.claude/settings.local.json
  • グローバル構成オプション:~/.claude.json

1 つのオプションをメニューなしで設定するには、/config verbose=true などの key=value を渡してください。

設定ファイルを編集する

エディターで必要なスコープの設定ファイルを開き、キーを追加または変更します。設定ファイルは厳密な JSON です。// コメントまたは末尾のコンマは構文エラーであり、Claude Code はファイルを設定エラーとして次の開始時に報告します。たとえば、Claude Code が確認なしに lint とテストコマンドを実行し、.env ファイルの読み取りを停止するようにするには、これを ~/.claude/settings.json に追加してください:

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

permissions の下の各エントリは、ツールとそれが何ができるかを名前付けするルールです。権限を構成するは構文を説明します。$schema 行は Claude Code 設定の公開 JSON スキーマを指し、VS Code、Cursor、および JSON スキーマをサポートする他のエディターでオートコンプリートとインライン検証を提供します。スキーマは最新の CLI リリースより遅れることができるため、最近ドキュメント化されたキーの検証警告は、構成が無効であることを意味しません。

保存した後、Claude Code 内で /status を実行してファイルが読み込まれたことを確認してください。読み込まれたものを確認するは Setting sources 行が表示するものと、壊れたファイルがどのように報告されるかを説明します。

完全な個人ファイル、チームファイル、および組織ファイルについては、それが設定するすべてのキーのコメント付きで、設定ファイルの例を参照してください。

1 つのセッションの設定を変更する

値を保存せずに試すには、Claude Code を開始するときに設定します。値はそのセッションに適用され、設定ファイルはそのままです。3 つの方法があります:

  • --settings:JSON としてキーを渡します。インラインまたはファイルへのパス。Claude Code はそれをユーザー、プロジェクト、およびローカルファイルの上に適用し、管理設定の下に適用します。ユーザー設定ファイルが設定できるキーを設定できます。Managed または Global config キーを設定することはできません。
  • そのキーのフラグ:いくつかのキーには独自のフラグがあります。model の --model や effortLevel と modelSettings の --effort など。
  • 環境変数:model の ANTHROPIC_MODEL など、キーのペアリングされた変数をエクスポートしてから claude を実行してください。

各キーの設定リファレンスのエントリは、その 1 セッションのオーバーライドと、どれが優先されるかをリストします。変更したいキーのエントリを確認してください。

セッション内で実行するコマンドはほとんどあなたの選択を保存します。/config で設定を変更すると、Claude Code はそれを設定ファイルに書き込み、/model は値を新しいセッションのデフォルトとして保存します。

/model ピッカーで s を押すと、Claude Code はモデルを切り替えますが、ユーザーデフォルトとして保存しません。努力レベルを調整するは、Claude Code が使用しているモデルのデフォルトとして保存する /effort ピックと、現在のセッションのみに適用するものを説明します。

たとえば、デフォルトを変更せずに 1 つのセッションで Opus で開始するには:

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

編集がいつ有効になるか

Claude Code は設定ファイルを監視し、変更時に再読み込みするため、permissions、hooks、および apiKeyHelper などの認証情報ヘルパーへの編集を含む、ほとんどの編集は再起動なしで実行中のセッションに適用されます。Claude Code は、セッションの途中で作成した設定ファイルも、そのフォルダがセッション開始時に存在していれば読み込みます。プロジェクトの .claude/ フォルダについては、同じセッション内でフォルダを作成した場合でもファイルを読み込みます。

再読み込みはユーザー、プロジェクト、ローカル、および管理設定をカバーし、Claude Code は検出した各設定ファイル変更に対して ConfigChange hook を実行します。MDM または claude.ai コンソールから到達する管理設定ではありません。MDM または claude.ai コンソールから到達する管理設定は、保存時ではなくスケジュールに従って実行中のセッションに到達します。配信テーブルはソースごとにそれを提供します。

Claude Code はセッション開始時に一度だけいくつかのキーを読み込むため、そのうちの 1 つへの編集は実行中のセッションに到達しません。requiredMinimumVersion などの管理者側のキーも再起動を待ちます。ポリシーが適用される場所と時期の下にリストされています。セッション中に編集する可能性が最も高いもの:

  • model:セッション中に切り替えるには /model を使用してください。各モデルには独自のプロンプトキャッシュがあるため、切り替え後の最初のリクエストは会話全体をキャッシュなしで再読み込みします。モデルを切り替えるを参照してください
  • effortLevel および modelSettings:セッション中に努力を変更するには /effort を使用してください

読み込まれたものを確認する

Claude Code 内で /status を実行して、どの設定ソースがアクティブであるかを確認してください。Status タブには、Claude Code が現在のセッション用に読み込んだ各設定ファイルをリストする Setting sources 行が含まれています。User settings または Project local settings など。管理設定が有効な場合、管理設定エントリは括弧内にそれらがマシンに到達した方法を示します。

行は Claude Code が読み込んだファイルを確認します。各ファイルがどのキーを供給したかは表示されません。Claude Code が拒否したエントリをリストするには、claude doctor を実行してください。プロジェクトまたは管理設定が設定するモデルについては、スタートアップヘッダーがそれを設定したファイルの名前を付けます。/status と /config は異なるタブで同じダイアログを開き、Config タブは settings.json コンテンツのビューではありません。

壊れた設定ファイルを修正する

JSON をタイプミスするか、Claude Code が受け入れない値にキーを設定する場合、Claude Code はインタラクティブセッションの開始時にあなたに伝えます。表示される内容は、ファイルのどの程度が影響を受けるかによって異なります:

  • 設定エラー:ユーザー、プロジェクト、またはローカルファイルに無効な JSON またはスキーマが拒否する値があります。インタラクティブセッションの開始時に Claude Code はダイアログを表示し、Claude の助けでファイルを修正するか、終了するか、壊れた設定なしで続行できます。
  • 設定警告:個別のエントリのみが失敗します。不正な形式の権限ルールまたは不明な hook イベント名など。Claude Code はそれらの値をスキップし、ファイルの残りを有効に保ちます。
  • 管理設定:Claude Code はファイルの残りを強制し続けます。管理設定の無効なエントリは、それが削除するものと、修正するまでどのキーがより厳密な値にフォールバックするかを説明します。有効な JSON ではない管理設定ドキュメントについては、管理設定ドキュメントを解析できませんでしたを参照してください。
  • 構成エラー:~/.claude.json を解析できません。Claude Code は壊れたファイルを ~/.claude/backups/.claude.json.corrupted.<timestamp> にコピーし、終了して手動で修正するか、デフォルト構成にリセットするかを尋ねます。-p 実行はエラーを出力して終了します。以前の状態を復旧するには、~/.claude/backups/ の 5 つの最新 .claude.json.backup.<timestamp> ファイルの 1 つをコピーして戻してください。Claude Code はファイルを書き込む前に保存します。

続行した後、/status を実行して影響を受けたファイルを確認し、各エラーの詳細について claude doctor を実行してください。

-p 実行はダイアログを表示しません。管理設定ドキュメントを解析できない場合を除き、Claude Code は壊れたファイルまたは値をスキップして残りで続行するため、設定をスキップした -p 実行の後、claude doctor を実行して削除したものを確認してください。

設定の優先順位

同じキーが複数の場所に表示される場合、Claude Code はそれを設定する最高レベルからの値を使用します。下のスタックはレベルを示します。最高は上。より高いレベルのキーは、その下のどこでも同じキーをオーバーライドします。

順序で、最初に最高優先度:

  1. 管理設定:組織がデプロイする設定。managed-settings.json ファイル、MDM ポリシー、または claude.ai コンソールからのサーバー管理設定。何もあなたが設定するものはそれらをオーバーライドしません。--settings フラグで渡すキーは同じ管理キーをオーバーライドしません。--model などのフラグは、組織が許可するモデルからのみ選択します。管理 model は各セッションが開始するモデルを設定し、/model で切り替えることができます。ロックは availableModels です。これは /model、--model、および独自のファイルの model キーを制約します。組織が複数の管理ソースを配信する場合、管理ティア内の優先順位のルールは Claude Code が各から読み込むものを説明します。
  2. コマンドラインの引数:ターミナルから claude を開始するときに渡すフラグ。1 つのセッション。1 つのセッションの設定を変更するを参照してください。Claude Code は --settings <file-or-json> で渡す JSON を、他のレベルと同じルールで設定ファイルとマージします。ここで設定するキーはローカル、プロジェクト、またはユーザー設定の同じキーより優先され、省略するキーは下位レベルの値を保持します。
  3. プロジェクトローカル設定(.claude/settings.local.json):このプロジェクトの個人設定。
  4. 共有プロジェクト設定(.claude/settings.json):チームがソース管理にチェックインする設定。
  5. ユーザー設定(~/.claude/settings.json):すべてのプロジェクトの個人設定。

環境変数はこのスタックのレベルではありません。動作にシェル変数と設定キーの両方がある場合、どれが適用されるかはレベルではなくペアごとに決定されます。ANTHROPIC_MODEL をシェルでエクスポートすると、任意のファイルの model キーより優先して適用されます。ANTHROPIC_DEFAULT_MODEL はファイルが model を設定しない場合のみ適用されます。環境変数リファレンスは、どのキーがペアを持ち、Claude Code が最初に読み込むものを説明します。設定ファイル内の env ブロックは通常のキーであり、上記のレベルに従います。

いくつかのセキュリティに敏感なキーについて、Claude Code は下位レベルからのより厳密な値を管理値より優先します。管理設定の優先順位の例外はそれらをリストします。

リストはオーバーライドの代わりにマージされます

同じリストキー(permissions.allow など)を複数のファイルで設定する場合、Claude Code はリストを結合するため、各ファイルは別のファイルのエントリを削除することなくエントリを追加できます。4 つのキーがモデルリストまたはモデルごとのエントリを保持し、独自のルールに従います:

  • fallbackModel は位置が意味を持つ順序付きチェーンです。Claude Code はそれを定義する最高優先度ファイルから全体の値を取ります。
  • modelPicker は 1 つの順序付きリストの行とリプレイスフラグを保持するため、Claude Code は 2 つのソースから行をマージしません。管理設定、--settings、およびユーザー設定の最高から全体の値を取り、プロジェクトおよびローカル設定のキーを無視します。Claude Code v2.1.242 以降が必要です。
  • availableModels:Claude Code が適用する管理設定がそれを定義する場合、Claude Code はそのリストをそのまま適用し、ユーザー、プロジェクト、またはローカル設定で追加するエントリを無視します。Claude Code を埋め込むアプリが独自のモデルリストを提供しない限り。管理設定の優先順位の例外を参照してください。管理ソース全体でリストはマージされません。Claude Code が管理ソースを結合する方法は、どのソースのリストが適用されるかを説明します。非管理スコープ全体で Claude Code は通常どおりリストをマージします。
  • modelSettings:Claude Code はそれを 1 つのモデルずつ、effortLevel と一緒に解決します。modelSettings エントリは、どのファイルの値がモデルに適用されるかを述べます。

優先順位の例

Claude が作業している間、Claude Code はスピナーの下に 1 行のヒントを表示します。「/config を使用してデフォルト権限モード(Plan Mode を含む)を変更してください」など。spinnerTipsEnabled を ~/.claude/settings.json で false に設定してそれらのヒントをオフにしたいとします。以下の各シナリオはそれらをオンに戻すことができるものであり、それについてできることです。

チーム設定は個人設定をオーバーライドします

チームの .claude/settings.json はそれを true に設定します。Claude Code はプロジェクト値を使用します。共有プロジェクトはユーザーの上に座るため、そのプロジェクトでヒントを見て、他の場所では見ません。

値を取り戻すことができます。そのプロジェクトの .claude/settings.local.json に "spinnerTipsEnabled": false を追加してください。プロジェクトローカルは共有プロジェクトの上に座るため、セッションはヒントを表示するのを停止し、チームメイトのセッションは変わりません。

組織設定はすべてをオーバーライドします

組織の管理設定はそれを true に設定します。ユーザー、プロジェクト、またはローカル設定に入れるものは何もヒントをオフにしません。--settings も。管理は最高レベルです。

値を取り戻すことはできません。/status を実行してどの管理ソースが適用されるかを確認し、ポリシーが変更されるべきかどうかを管理者に尋ねてください。

コマンドラインは 1 つのセッションのファイルをオーバーライドします

claude --settings '{"spinnerTipsEnabled": true}' でセッションを開始しました。コマンドラインは管理を除くすべてのファイルの上に座るため、そのセッションはファイルが false と言っていてもヒントを表示します。

次のセッションで値を取り戻します。--settings は 1 つのセッション続き、ファイルに書き込みません。

フラグまたは環境変数が同じことを設定します

いくつかのキーには、設定値に関係なくキーをオーバーライドするコマンドラインフラグまたは環境変数があります。ANTHROPIC_MODEL は model 設定をオーバーライドし、--model はセッションのために両方をオーバーライドします。

値を取り戻すことができるかどうかはキーによって異なります。変数をアンセットするか、フラグをドロップし、設定リファレンスのキーのエントリと環境変数リファレンスの変数の行を確認して、Claude Code が使用するものを確認してください。

適用されない設定をトラブルシューティングする

キーを設定し、Claude Code がそのように動作しない場合は、/status で読み込まれたファイルを確認してから、以下で症状を見つけてください。構成をデバッグするはより広いチェックをカバーしています。クリーン構成テストを含みます。

設定した値が無視されます

別のものが同じキーを設定しているか、ファイルがその値を設定できないか、ファイルが読み込まれませんでした:

  • より高いレベルがそれを設定します。 別の設定ファイル、--settings フラグ、または管理ソースがあなたのキーの上にキーを設定します。スタックはどれを説明します。フラグまたは環境変数もキーをオーバーライドできます。キーごとに決定されます。設定リファレンスのキーのエントリは Claude Code が使用するものを説明し、env エントリは管理 env 値対シェルエクスポートをカバーしています。
  • セキュリティキーはその厳密な値を保持します。 いくつかのキーについて Claude Code は任意のファイルからの制限値を優先するため、プロジェクト true は disableClaudeAiConnectors でオンのままです。管理設定の優先順位の例外を参照してください。
  • ファイルはその値を設定できません。 permissions.defaultMode 値 auto および bypassPermissions はプロジェクトまたはローカル設定から有効になりません。代わりにユーザーまたは管理設定で設定するか、1 つのセッションのために --permission-mode を渡してください。v2.1.257 より前では、bypassPermissions は任意のファイルから有効になりました。
  • ファイルは壊れています。 無効な JSON またはスキーマが拒否する値は Claude Code をファイルまたはエントリをスキップさせます。壊れた設定ファイルを修正するを参照してください。

Claude Code で行った変更は新しいセッションで失われます

Claude Code 内から新しいセッションの選択を保存する場合(/model でデフォルトモデルなど)、Claude Code はそれをユーザー設定ファイル ~/.claude/settings.json に書き込みます。そのファイルに書き込むことができない場合(別のツールがそれを生成するか、読み取り専用コピーにリンクするため)、変更は現在のセッションに適用され、次のセッションで消えます。生成するツールでキーを設定するか、ファイルを書き込み可能なものに置き換えてください。

ファイルに書き込むことができ、変更がまだ続かない場合は、変更が1 つのセッションのみであるか、より高いレベルが同じキーを設定するかどうかを確認してください。model キーについては、新しいセッションが選択したものとは異なるモデルで開始しますはより多くの原因をリストします。

管理変更があなたに到達していません

管理ソースは配信テーブルのスケジュールでセッションに到達するため、最初にセッションを再起動してください。/status がその後、管理者が変更したものとは異なるソースの名前を付ける場合、より高い優先度のソースが適用されます。Claude Code が管理ソースを結合する方法は順序を提供します。

コミットされたキーはチームメイトに到達しません

次の 2 つが、.claude/settings.json のキーがそれをクローンするすべての人に適用されるのを妨げます:

  • Claude Code はリポジトリファイルのキーを無視します。 設定インデックスの Scope 列で User, local, or managed、User or managed、Managed、または Global config を探してください。これらのキーはコミットされたファイルから適用されません。autoContinueAtUsageLimit を除いて。リポジトリファイルはキーを設定し、ユーザー、--settings、または管理値は設定しません。Claude Code はそれをオフとして読み込みます。Global config キーは ~/.claude.json からのみ適用されます。
  • キーは信頼を待ちます。 permissions.allow ルール、permissions.additionalDirectories、extraKnownMarketplaces、およびほとんどの env 値は、各チームメイトがフォルダを信頼する後にのみ適用されます。それまで彼らはプロンプトを見て、ファイルが宣言するマーケットプレイスからプラグインを取得しません。deny および ask ルールはすぐに適用されます。

権限ルールは期待と異なる方法で結合されます

  • 権限プロンプトで「はい、今後は聞かないでください」を選択しましたが、同じツールのプロンプトを取得し続けます。 その選択はローカルファイルに allow ルールを保存し、ローカルの allow ルールはプロジェクトまたは管理ファイルからの ask ルールをランク付けしません。権限ルールがどのように結合されるかは順序を説明します。VS Code 拡張機能では、承認カードはプロジェクトの共有ファイルを含む宛先ファイルを選択できます。これはすべての人のルールを変更します。CLI では、Claude Code はローカルファイルのみに書き込みます。
  • 組織の allow ルールはあなたのものと並行して適用されます。 それは期待されています。Claude Code は permissions.allow をスコープ全体でマージします。組織が allowManagedPermissionRulesOnly を設定しない限り。

管理設定の優先順位の例外

値がセッションを制限するいくつかのキーについて、Claude Code は、それ以外の場合は管理設定をオーバーライドできないスコープからの制限値を優先します。このテーブルでキーを見つけて、どの値を優先し、どこから優先するかを確認してください。

キー Claude Code が優先する値 注
disableClaudeAiConnectors 任意のスコープからの true 管理ソースが false を設定する場合でも優先されます
enableArtifact 任意のスコープからの false、および任意のスコープからの disableArtifact: true 管理ソースが true を設定する場合でも優先されます。何もArtifact ツールをオンに戻しません。Claude Code v2.1.242 以降が必要です
isolatePeerMachines 任意のスコープからの true 管理ソースが false を設定する場合でも優先されます
remoteControlAtStartup .claude/settings.json または .claude/settings.local.json からの false 管理ソースが true を設定する場合でも優先されます。プロジェクトまたはローカル true は無視されます
crossSessionInbound .claude/settings.json または .claude/settings.local.json からのより厳密な値。accept < hold < refuse ラダーで 管理、--settings、およびユーザー値より優先されます。プロジェクトまたはローカル値がより厳密でない場合は無視されます
useAutoModeDuringPlan 任意の管理ソース、--settings、~/.claude/settings.json、または .claude/settings.local.json からの false 勝利した管理ソースが true を設定する場合でも優先されます。.claude/settings.json の false は無視されます
syncClaudeAiSkills 任意の管理ソース、--settings、~/.claude/settings.json、または .claude/settings.local.json からの false 勝利した管理ソースが true を設定する場合でも優先されます。.claude/settings.json の false は無視されます
maxEffortLevel --settings を含む任意のスコープからの、より低い上限 Claude Code が適用する管理設定がより高い上限を設定している場合でも優先されます。最も低い上限が適用されます。Claude Code v2.1.267 以降が必要です

Claude Code を実行し、CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST を設定するアプリも例外です。Claude Code はそのアプリのモデル構成を、すべての管理ソースからの model、fallbackModel、および modelOverrides キーより優先し、管理 env ブロック内のモデル選択変数(ANTHROPIC_MODEL および ANTHROPIC_DEFAULT_*_MODEL ファミリーなど)より優先します。Claude Code は、アプリが独自のものを提供しない限り、管理 availableModels 許可リストを有効に保ちます。

クラウドセッションの設定

クラウドセッション。Claude Code on the web または claude --cloud から。クラウド環境で実行します。リポジトリの新しいクローンで、マシンではありません。これはどの設定がそれに到達するかを変更します:

  • 共有プロジェクト設定(.claude/settings.json):読み込まれます。ファイルはクローンの一部であるため。クラウドセッションで適用するために設定をそこにコミットしてください。
  • ユーザーおよびプロジェクトローカル設定(~/.claude/settings.json および .claude/settings.local.json):読み込まれません。両方ともマシンに留まり、ローカルファイルはクローンにありません。
  • 管理設定:サーバー管理設定のみがクラウドセッションに到達します。デバイスの managed-settings.json ファイルまたは MDM プロファイルは到達しません。自己ホスト型環境もランナーイメージの管理設定ファイルを読み込みます。Claude Code が管理ソースを結合する方法はそのファイルがいつ適用されるかを説明します。
  • /config:web では、Claude Code セクションを変更する代わりに claude.ai 設定を開きます。クラウドセッションの設定を変更するには、環境で環境変数を設定するか、リポジトリの .claude/settings.json にキーをコミットしてください。

セットアップから何が引き継がれるかは残りをリストします。CLAUDE.md、skills、MCP サーバー、プラグイン、および認証情報。

次は何か