Anthropic
OpenAI
xAI
Gemini
S
settings.md
2026-10-13 23:57 UTC to 2026-10-14 22:58 UTC
No changes for this document in this history range.
2026
2026
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
設定ファイルと優先順位
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}) =>
{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 リポジトリでは、コミットしてチームメイトが取得できるようにします
チーム権限、フック、プラグイン、およびプロジェクトが必要とする環境変数
プロジェクトローカル
.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 をインストールしても、設定ファイルは作成されません。マシンまたはプロジェクトに既に設定ファイルがある場合は、次のいずれかのソースから来たものです:
管理 :組織がデプロイします。自分で作成または編集することはありません。
共有プロジェクト :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 番目のファイルも保持します。これは Claude Code 自身が書き込むもので、編集する必要はありません。サインインセッション、MCP サーバー の設定、信頼の決定などのプロジェクトごとの状態、および /config が書き込むグローバル設定キー を保持します。
チームと設定を共有する
.claude/settings.json をコミットして、リポジトリをクローンするすべての人が同じ権限、フック、およびプラグインを取得するようにします。各チームメイトは、独自の .claude/settings.local.json で自分用にそれを上書きできるため、個人的な例外にコミットは必要ありません。完全なチームファイルについては、チームの共有設定 を参照してください。
コミットするものの一部は、各チームメイトがフォルダを信頼する まで待機し、いくつかのキーはリポジトリファイルからは決して有効になりません。適用されない設定をトラブルシューティングする で両方を説明しています。
リポジトリから個人設定を除外する
1 つのプロジェクトで、チームメイトの設定を変えずに自分の設定だけを変更するには、プロジェクト内の .claude/settings.local.json に保存してください。Claude Code はそのファイルをコミットされた .claude/settings.json の上に適用するため、チームのファイルが "model": "claude-sonnet-5" を設定していて Opus を使いたい場合は、ローカルファイルに "model": "claude-opus-5-5" を入れれば、自分のセッションだけが変わります。
Claude Code もこのファイルに書き込み、コミットから除外し、信頼ステップなしでその許可ルールを適用します:
Claude Code もこのファイルに書き込みます。 Claude が Bash コマンドを実行する権限を求め、「はい、今後は聞かないでください」を選択すると、Claude Code はその権限の承認 をここに allow ルールとして保存します。
手動で作成した場合を除き、自分で gitignore する必要はありません。 Claude Code が、まだこのファイルを無視していない git リポジトリでファイルを初めて書き込むときに、グローバル git 除外ファイルに **/.claude/settings.local.json を追加するため、ファイルはすべてのリポジトリでコミットから除外されます。そのファイルは、グローバル git 設定で core.excludesFile が絶対パスまたは ~ で始まるパスに設定されている場合はそのファイル、それ以外の場合は $XDG_CONFIG_HOME/git/ignore、XDG_CONFIG_HOME が設定されていない場合は ~/.config/git/ignore です。手動でファイルを作成し、Claude Code がまだそれに書き込んでいない場合は、自分で .gitignore に追加してください。
ファイルが追跡されていない間、その許可ルールは信頼を待ちません。 ファイルはリポジトリのものではなく自分のものであるため、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 以降が必要です。デスクトップアプリから開始する worktree セッションについては、worktree がメインチェックアウトと共有するもの を参照してください。
組織が強制する内容を確認する
組織が Claude Code を管理している場合、一部の設定はあらかじめ決定されており、自分のファイルに何を書いても変更できません。どの設定が該当するかを確認するには、/status を実行してください。Setting sources 行に、適用される管理ソースの名前が表示されます。管理設定は、このマシン上で Claude Code が実行されるすべての場所に適用されます。ローカル管理者権限と Claude Code 以外のツールについては、開発者が変更できる内容 を参照してください。
管理設定は、管理設定ページで説明している配信メカニズム を通じて届きます。最も一般的なものは次のとおりです:
サーバー管理設定 。Claude Code が claude.ai 管理コンソールまたはセルフホストの Claude apps gateway から取得します
MDM または OS レベルのポリシー、およびシステムディレクトリ内の managed-settings.json ファイル
Claude Desktop などの埋め込みホスト。SDK の managedSettings オプションを通じて配信されます。埋め込みホストからポリシーを制御する を参照してください
Claude Desktop アプリで自分のマシン上で実行される Cowork セッションでは、Claude Code は claude.ai 管理コンソールからサーバー管理設定を取得しません。また、組織の Claude Desktop 設定で requireCoworkFullVmSandbox が設定されていない限り、デバイスにデプロイされたポリシーを読み込みます。Cowork とクラウドセッションについては、ポリシーが適用される場所と時期 を参照してください。
管理者の場合、組織向けに Claude Code をセットアップする で何を強制するかを選択する手順を、管理設定をデプロイする で配信方法とポリシーが有効であることを確認する方法を説明しています。claude.ai 管理コンソールの管理設定エディターに表示されることがある警告については、サーバー管理設定を構成する を参照してください。
設定を変更する
/config メニューから、設定ファイルを編集して、または 1 つのセッションのコマンドラインから設定を変更できます。
Claude Code のシステムプロンプトは公開されていません。Claude に立ったままの命令を与えるには、CLAUDE.md ファイル または --append-system-prompt フラグを使用してください。
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-5-5"}'
編集がいつ有効になるか
Claude Code は設定ファイルを監視し、変更時に再読み込みするため、permissions、hooks、および apiKeyHelper などの認証情報ヘルパーへの編集を含む、ほとんどの編集は再起動なしで実行中のセッションに適用されます。Claude Code は、セッションの途中で作成した設定ファイルも、そのフォルダがセッション開始時に存在していれば読み込みます。プロジェクトの .claude/ フォルダについては、同じセッション内でフォルダを作成した場合でもファイルを読み込みます。
再読み込みはユーザー、プロジェクト、ローカル、および管理設定をカバーし、Claude Code は検出した各設定ファイル変更に対して ConfigChange hook を実行します。MDM または claude.ai コンソールから到達する管理設定ではありません。MDM または claude.ai コンソールから到達する管理設定は、保存時ではなくスケジュールに従って実行中のセッションに到達します。配信テーブル はソースごとにそれを提供します。
Claude Code はセッション開始時に一度だけいくつかのキーを読み込むため、そのうちの 1 つへの編集は実行中のセッションに到達しません。requiredMinimumVersion などの管理者側のキーも再起動を待ちます。ポリシーが適用される場所と時期 の下にリストされています。セッション中に編集する可能性が最も高いもの:
読み込まれたものを確認する
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 はそれを設定する最も高いレベルの値を使用します。以下のスタックはレベルを示しており、上が最も高い優先度です。より高いレベルのキーは、その下のどこにある同じキーよりも優先されます。
優先度が高い順に:
管理設定 :組織が managed-settings.json ファイル、MDM ポリシー、または claude.ai コンソールからの サーバー管理設定 によってデプロイする設定です。自分の設定ファイルや --settings のいずれも管理キーを上書きせず、--model などのフラグは組織が許可するモデルからのみ選択します。管理設定の model は開始時のデフォルトであり、ロックではありません。ロックは availableModels と deniedModels です。組織が複数の管理ソースを提供する場合、管理層内の優先順位 のルールが Claude Code が各ソースから読み込むものを指定します。
コマンドライン :claude を開始するときに --settings <file-or-json> で渡す JSON で、そのセッションのみに適用されます。1 つのセッションの設定を変更する を参照してください。ここで設定したキーはプロジェクト設定ファイルおよびユーザー設定ファイルの同じキーを上書きし、省略したキーはそれらのファイルの値を保持します。--model などの他のフラグはセッションに対して 1 つの項目を設定するもので、このスタックには含まれません。どのフラグがキーを上書きするかは、設定リファレンス のそのキーのエントリに記載されています。
プロジェクトローカル設定 (.claude/settings.local.json):このプロジェクトの個人設定です。
共有プロジェクト設定 (.claude/settings.json):チームがソース管理にチェックインする設定です。
ユーザー設定 (~/.claude/settings.json):すべてのプロジェクトの個人設定です。
環境変数はこのスタックのレベルではありません。動作がシェル変数と設定キーの両方を持つ場合、どちらが適用されるかはレベルではなくペアごとに決定されます。シェルでエクスポートされた ANTHROPIC_MODEL はどのファイルからの model キーよりも優先されますが、ANTHROPIC_DEFAULT_MODEL はファイルが model を設定していない場合にのみ適用されます。環境変数リファレンス はどのキーがペアを持ち、Claude Code がどちらを最初に読み込むかを示しています。設定ファイル内の env ブロックは通常のキーであり、上記のレベルに従います。
いくつかのセキュリティに敏感なキーについて、Claude Code は下位レベルからのより厳密な値を管理値より優先します。管理設定の優先順位の例外 がそれらをリストしています。
リストは上書きではなくマージされます
permissions.allow などの同じリストキーを複数のファイルで設定する場合、Claude Code はリストを結合し、1 つを選択しません。そのため、各ファイルは別のファイルのエントリを削除することなくエントリを追加できます。モデルリストまたはモデルごとのエントリを保持する 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 はそれを effortLevel と一緒に一度に 1 つのモデルで解決します。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 は任意のファイルからの制限値を優先するため、disableClaudeAiConnectors に対するプロジェクトの true は有効のままです。管理設定の優先順位の例外 を参照してください。
ファイルはその値を設定できません。 permissions.defaultMode の値 auto および bypassPermissions はプロジェクトまたはローカル設定から有効になりません。代わりにユーザーまたは管理設定で設定するか、1 つのセッション用に --permission-mode を渡してください。v2.1.257 より前では、bypassPermissions はどのファイルからでも有効になりました。
env ブロック内のテレメトリエクスポート変数もプロジェクトまたはローカル設定からは有効になりません。いくつかのオフ値を除きます。Claude Code が env で無視する変数 は変数とそれらの値をリストしています。
ファイルが壊れています。 無効な JSON または拒否された値により、Claude Code はファイルまたはエントリをスキップします。壊れた設定ファイルを修正する を参照してください。
Claude Code で行った変更が新しいセッションで失われます
Claude Code 内から新しいセッション用に選択を保存する場合(例えば /model でデフォルトモデルを設定する場合)、Claude Code はそれをユーザー設定ファイル ~/.claude/settings.json に書き込みます。そのファイルに書き込むことができない場合(例えば別のツールが生成するか、読み取り専用コピーにリンクしている場合)、変更は現在のセッションに適用され、次のセッションでは失われます。ファイルを生成するツールでキーを設定するか、ファイルを書き込み可能なものに置き換えてください。
ファイルに書き込むことができ、変更がまだ続かない場合は、変更が 1 つのセッション限り であったか、より高いレベルが同じキーを設定 しているかを確認してください。model キーについては、新しいセッションが選択したものとは異なるモデルで開始します がより多くの原因をリストしています。
管理設定の変更が届いていません
管理ソースは 配信テーブル のスケジュールで実行中のセッションに到達するため、最初にセッションを再開してください。/status がその後、管理者が変更したものとは異なるソースを名前付けする場合、より優先度の高いソースが適用されます。Claude Code が管理ソースを結合する方法 は順序を示しています。
コミットされたキーがチームメイトに到達しません
2 つのことが .claude/settings.json のキーがそれをクローンするすべての人に適用されるのを防ぎます:
Claude Code はリポジトリファイルのキーを無視します。 設定インデックス のスコープ列で User, local, or managed、User or managed、User、Managed、または Global config を探してください。これらのキーは共有ファイルから適用されません。ただし、リポジトリファイルがまだオフにできるいくつかを除きます。これらのエントリのそれぞれはスコープ行でそう言っています。Global config キーは ~/.claude.json からのみ適用されます。
env キー内では、テレメトリエクスポート変数も共有ファイルから適用されません。いくつかのオフ値を除きます。Claude Code が env で無視する変数 を参照してください。
キーは信頼を待っています。 permissions.allow ルール、permissions.additionalDirectories、extraKnownMarketplaces、およびほとんどの env 値は、各チームメイトが フォルダを信頼 した後にのみ適用されます。それまで、チームメイトにはプロンプトが表示され続け、ファイルが宣言するマーケットプレイスからプラグインを取得しません。deny および ask ルールはすぐに適用されます。
権限ルールが予想と異なる方法で結合されます
権限プロンプトで「はい、今後は聞かないでください」を選択しましたが、同じツールのプロンプトが表示されます。 その選択はローカルファイルに allow ルールを保存し、そこの allow ルールはプロジェクトまたは管理ファイルからの ask ルールより優先されません。権限ルールがどのように結合されるか は順序を説明しています。VS Code 拡張機能では、承認カードはプロジェクトの共有ファイルを含む宛先ファイルを選択できます。これはすべての人のルールを変更します。CLI では、Claude Code はローカルファイルにのみ書き込みます。
組織の許可ルールは自分のルールと一緒に適用されます。 これは予想されています。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 を設定する場合でも優先されます
permissions.blockReadsOutsideWorkingDirectories
任意のスコープからの true
管理ソースが false を設定する場合でも優先されます。Claude Code v2.1.257 以降が必要です
autoMode.classifyAllShell
~/.claude/settings.json または --settings からの 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 は無視されます
syncClaudeAiPlugins
任意の管理ソース、--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、modelPicker、および modelOverrides キーより優先し、管理 env ブロック内のモデル選択変数(ANTHROPIC_MODEL および ANTHROPIC_DEFAULT_*_MODEL ファミリーなど)より優先します。Claude Code は管理 availableModels 許可リストを有効に保ちます。ただし、アプリが独自のものを提供する場合を除きます。
クラウドセッションの設定
クラウドセッション はクラウド環境 で実行され、マシン上ではなくリポジトリの新しいクローンで実行されます。これにより、どの設定がそこに到達するかが変わります:
共有プロジェクト設定 (.claude/settings.json):1 つのリポジトリを持つセッションで読み込まれます。ファイルはクローンの一部であり、セッションはその内部で開始されるためです。その設定をコミットして、それらのセッションに適用してください。Anthropic がホストする環境では、複数のリポジトリを持つセッションはクローンの上で開始され、各リポジトリの .claude/settings.json から enabledPlugins と extraKnownMarketplaces キーのみを読み込み、権限ルール、フック、env、またはその他のキーは読み込みません。これら 2 つのキーが宣言するマーケットプレイスとプラグインは、それでもクラウドセッションでは読み込まれません 。自己ホスト型環境については、どのリポジトリの設定が適用されるか を参照してください。
ユーザーおよびプロジェクトローカル設定 (~/.claude/settings.json および .claude/settings.local.json):読み込まれません。両方ともマシンに留まり、ローカルファイルはクローンにありません。
管理設定 :デバイスの managed-settings.json ファイルまたは MDM プロファイルはクラウドセッションに到達しません。組織のサーバー管理設定 は到達します。サーフェスカバレッジ はどのクラウドセッションがそれらを受け取るかをリストします。自己ホスト型環境 もランナーイメージの管理設定ファイルを読み込みます。Claude Code が管理ソースを結合する方法 はそのファイルがいつ適用されるかを説明します。
/config :ブラウザの claude.ai/code では、値を変更する代わりに Claude Code セクションの claude.ai 設定を開きます。クラウドセッションの設定を変更するには、環境で環境変数 を設定するか、1 つのリポジトリを持つセッションでは、そのリポジトリの .claude/settings.json にキーをコミットしてください。
セットアップから何が引き継がれるか は残りをリストします:CLAUDE.md、skills、MCP サーバー、plugins、および認証情報。
次は何か