📝 更新履歴
- 2026-09-10(訂正): 設定の3層構造(
settings.jsonで共有可 //config専用 / アプリ本体の UI 設定)を 2-3 として新設。あわせて次の誤りを修正しました ― ①settings.jsonに書けない7項目(prStatusFooterEnabled等)を「キー」として提示していた ②コピペ用settings.jsonに無効なキー・無効な値(disableBypassPermissionsModeは真偽値ではなく"disable")が含まれていた ③存在しないキー名permissions.blockReadsOutsideWorkspace(正しくはblockReadsOutsideWorkingDirectories)を記載していた ④プロファイルBで共有できない設定を共有前提の表に載せていた。- 2026-09-10(v2.1.267 対応・全面改訂):
/configがフラットな42項目リストから8カテゴリのタブUIへ再編されたため構成を刷新。新規18項目を追加、「Default teammate model」の廃止を反映、CLI とデスクトップアプリの設定共有とManaged スコープの実際の配り方の章を新設しました。- 2026-07-27(初版): v2.1.220 時点・全42項目
Claude Code で /config と打ったことはありますか。
ずらりと並ぶトグル群。ほとんどの人が Theme と Language だけ変えて、あとは既定値のまま閉じています。もったいない。この画面は「Claude Code をどう働かせるか」を決めるコントロールパネルであり、コスト・安全性・生産性のすべてがここで決まります。
たとえば Default permission mode を Bypass Permissions にしたまま業務リポジトリを触っていたら、それは「確認なしで何でも実行してよい」と宣言しているのと同じです。逆に Dynamic workflow size を放置していると、1つの指示から十数体のエージェントが立ち上がってトークンを溶かします。
そして v2.1.220 の頃から、/config は静かに、しかし大きく姿を変えました。
この記事では、Claude Code v2.1.267 の /config を、実際の画面構造(8カテゴリ)どおりに1つずつ解説します。最後に、用途別のおすすめ設定と settings.json のコピペ用スニペットを置きました。ブックマークして、隣に /config を開きながら読んでください。
目次
- v2.1.220 からの変更点サマリー(既読者向け)
- そもそも
/configとは何を触っているのか(settings.jsonに書けない設定を含む) - CLI とデスクトップアプリで設定は共有されるのか
- 全項目リファレンス(カテゴリ別)
- 用途別おすすめ設定 3プロファイル
- Managed スコープの実際の配り方(組織運用)
- コピペ用
settings.json - まとめ
1. v2.1.220 からの変更点サマリー(既読者向け)
初版を読んでくださった方向けに、差分だけ先にまとめます。
構造が変わった ― フラットリストからカテゴリUIへ
最大の変更点です。 かつての /config は42項目が1列に並ぶだけの画面でしたが、現在は次の8カテゴリにタブ分割されています。
| カテゴリ | 性格 |
|---|---|
| Appearance | 見た目・言語 |
| Model & output | モデル・応答・権限 |
| Display | 画面表示 |
| Input & controls | 入力・エージェント制御 |
| Connections | 通知・IDE・外部接続 |
| Advanced | 「settings.json へ移行予定」の項目群 |
| Experimental | 実験的機能 |
| Internal | 開発用(通常は非表示) |
Advanced のヘッダーは、その項目を設定済みだと ADVANCED — MOVING TO SETTINGS.JSON と表示されます。つまりこのカテゴリの項目は将来 /config から消え、settings.json 専用になる予告です。ここに入っている5つのうち autoUpdatesChannel worktree.baseRef respectGitignore awaySummaryEnabled の4つは、いまのうちに settings.json へ書き移しておくのが安全です。copyFullResponse だけは settings.json に受け皿が無いため書き移せません(2-3 の B)。
追加された項目
| 項目 | キー | 追加時期 |
|---|---|---|
| Continue automatically at usage limit | autoContinueAtUsageLimit |
v2.1.234 |
| Dialog expiry | dialogExpiry |
v2.1.232 |
| Messages from your other sessions | crossSessionInbound |
v2.1.232 |
| Time format | timeFormat |
v2.1.257 |
| Use this machine's settings in cloud sessions | remoteHomeSettingsMode |
— |
| Unattended commands from cloud sessions on this computer | unattendedServing |
— |
| Claude-drafted feedback | feedbackDrafts |
— |
| Synced project memory(読み/書き) |
orgMemoryRead / orgMemoryWrites
|
— |
| Default view | defaultView |
— |
| Claude-proposed goals | modelProposedGoals |
— |
| Agents view | agentsView |
— |
| Fast mode | fastMode |
— |
| Auto-install IDE extension | autoInstallIdeExtension |
— |
| External CLAUDE.md includes | — | — |
| Use custom API key | — | — |
| Show status in terminal tab | showStatusInTerminalTab |
— |
| Precompute compaction | precomputeCompactionEnabled |
— |
| Show message timestamps | showMessageTimestamps |
— |
上表の「キー」のうち
showStatusInTerminalTabはsettings.jsonに書けません(2-3 の B)。Agents viewの実体も同じく B の2キーです。
削除された項目
-
Default teammate model(
teammateDefaultModel) ― v2.1.234 で/configから削除されました。agent-team の teammate は、spawn 時に明示指定がなければリーダーと同じモデルを使う仕様に変わっています。初版で「コスト設計の勘所」として紹介した設定なので、該当箇所を運用している方は要注意です。並列時のコスト制御はCLAUDE_CODE_SUBAGENT_MODEL(および全サブエージェントへ強制するCLAUDE_CODE_SUBAGENT_MODEL_FORCE)に寄せてください。
その他の変更
-
Output style に
Conciseが追加(v2.1.237)。前置きやナレーションを省いて結果から述べるスタイル。 -
Teammate mode が
Experimentalカテゴリへ移動。 -
Remote Control はリポジトリ設定から ON にできなくなった(v2.1.222)。
.claude/settings.jsonで OFF にすることはできますが、ON はユーザースコープの/configからのみ。 -
/configなどのダイアログがターン実行中でも開けるようになりました(v2.1.234)。
2. そもそも /config とは何を触っているのか(settings.json に書けない設定を含む)
2-1. 3つの操作方法
| 方法 | 使い方 | 向いている場面 |
|---|---|---|
| 対話UI |
/config と入力 |
項目を眺めながら調整 |
| 直接指定 | /config verbose=true |
キー名がわかっているとき |
| ファイル編集 |
settings.json を編集 |
チーム共有・バージョン管理 |
/config key=value 形式が使えるおかげで、手順書やオンボーディングScriptに「このコマンドを打ってください」と書けるのは地味に大きい利点です。
2-2. 設定は4層構造。優先順位を先に理解する
Claude Code の設定は「スコープ」という階層で解決されます。上ほど強い。
| 優先度 | スコープ | 場所 | 共有範囲 |
|---|---|---|---|
| 1(最強) | Managed(管理者配布) | MDM / managed-settings.json 等 |
組織全体・上書き不可 |
| 2 | コマンドライン引数 |
--model など |
そのセッションだけ |
| 3 | Local | .claude/settings.local.json |
自分だけ(git管理外) |
| 4 | Project | .claude/settings.json |
リポジトリの全員(gitコミット対象) |
| 5 | User | ~/.claude/settings.json |
自分の全プロジェクト |
ポイントは2つ。
-
/configで変えた多くの設定は~/.claude.json(個人のプリファレンス)に保存される。つまり「自分のマシンだけ」の変更です。チームに効かせたいなら.claude/settings.jsonに書いてコミットする必要があります。 - Managed スコープはユーザーが上書きできない。企業導入では、この層に安全側の設定を置くのが定石です。この層をどう配るかは第6章で詳しく扱います(MDM だけでなく、Team プランの組織なら管理画面から配信する方法もあります)。
2-3. 「settings.json に書けない設定」がある
前項の「多くは ~/.claude.json に保存される」には、もう一段の含意があります。/config の項目の一部は settings.json のスキーマに存在せず、/config からしか設定できません。書いてもエラーも警告も出ずに無視されます。
整理すると3層です。
| 層 | 保存先 | 設定値がアプリにも届くか | git でチーム共有 |
|---|---|---|---|
A. settings.json にも書ける |
~/.claude/settings.json(ユーザー)/ .claude/settings.json(プロジェクト) |
✅ 届く | ✅ できる |
B. /config でしか設定できない |
~/.claude.json のみ |
✅ 届く | ❌ できない |
| C. アプリ本体の UI 設定 |
~/Library/Application Support/Claude/config.json(macOS) |
(アプリ専用) | ❌ |
B に該当する7項目(v2.1.267 時点。CLI 内部のスキーマ・公開スキーマ・実ファイルの三点で確認):
/config の項目 |
キー |
|---|---|
| Show PR status footer | prStatusFooterEnabled |
| Claude in Chrome enabled by default | claudeInChromeDefaultEnabled |
| Skip the /copy picker | copyFullResponse |
| Copy on select | copyOnSelect |
| Open agents view by default | defaultToAgentsView |
| ← opens agents | leftArrowOpensAgents |
| Show status in terminal tab | showStatusInTerminalTab |
「届く」と「効く」は別です。A・B とも設定値はアプリ側のセッションへ届きますが、ターミナル UI を前提にした項目(
Copy on selectShow status in terminal tab← opens agentsなど)は届いても GUI では効果を持ちません。詳しくは 3-3 を参照してください。
ここが実務的に効いてきます。
-
B は自分の全環境には行き渡るのに、チームには配れない。
~/.claude.jsonは CLI とデスクトップアプリで共有されますが、.claude/settings.jsonに書いてコミットしても他人には届きません - とくに
claudeInChromeDefaultEnabledはセキュリティ判断(認証済みブラウザを AI が操作できる状態にするか)なのに、組織としてsettings.jsonで強制できません。統制するなら Managed スコープ側の別手段 ― 管理設定のdeniedMcpServersで Claude in Chrome の MCP サーバーを拒否する ― を使います(第6章) -
prStatusFooterEnabledをチーム標準にしたくても、結局は各自が/configで入れるしかない
なお copyFullResponse は /config の Advanced カテゴリ(ADVANCED — MOVING TO SETTINGS.JSON)にあります。同カテゴリの5項目のうち、autoUpdatesChannel / worktree.baseRef / respectGitignore / awaySummaryEnabled は settings.json 側にも受け皿があるのに対し、copyFullResponse だけ受け皿がありません。移行予告の対象でありながら、現時点では /config からしか設定できない項目、という状態です。
判定方法と、その限界: 公開スキーマに載っていれば A です。ただし両方向に誤判定があります ― 載っていなくても新しいキーや内部扱いのキー(
awaySummaryEnabledなど)は有効な場合があり、逆にrespectGitignoreはsettings.jsonのキーなのに/configは~/.claude.json側から読むため「~/.claude.jsonに現れたら B」も外します。確実に判定したいなら、settings.jsonに書いて再起動し、実際に挙動が変わるかを見てください。
2-4. 反映タイミング
Claude Code は設定ファイルを監視していて、ほとんどのキーは再起動なしで即反映されます。例外は model(セッション中は /model で切替)と outputStyle(/clear か再起動でシステムプロンプトが再構築される)、そして Synced project memory 系(「applies next session」とラベルにあるとおり次セッションから)。
3. CLI とデスクトップアプリで設定は共有されるのか
結論から言うと「設定ファイルは共有される。ただしバージョンは別管理」です。 ここは混乱しやすいので、実機で確かめた結果を整理します。
3-1. 共有されるもの
ターミナルの claude と、Claude デスクトップアプリの Code タブは、同じ設定ファイル群を読みます。
| ファイル | 内容 | 共有 |
|---|---|---|
~/.claude/settings.json |
User スコープ設定(env / permissions / hooks ほか) |
✅ |
~/.claude.json |
/config の個人プリファレンス |
✅ |
~/.claude/CLAUDE.md |
個人のグローバル指示 | ✅ |
.claude/settings.json(プロジェクト) |
リポジトリ共有設定 | ✅ |
~/.claude/commands / agents / skills / plugins
|
各種拡張 | ✅ |
| MCP サーバー定義 |
.mcp.json ほか |
✅ |
つまり、ターミナルで /config を触れば、その変更はデスクトップアプリの Code タブにも効きます。逆も同じです。これは 2-3 の B(/config 専用の7項目)にも当てはまります ― ~/.claude.json 経由なので設定値はアプリにも届くのに、チームには配れないという非対称が生まれます(ただし届いても TUI 前提の項目は GUI で効果を持ちません。次の 3-3 を参照)。permissions の deny ルール、hooks、CLAUDE.md の規約はどちらでも同じように働きます。
検証方法:
~/.claude/settings.jsonのenvブロックに独自の環境変数(例:"COMPANY": "自社名")を書いてから、デスクトップアプリの Code タブでecho $COMPANYを実行してみてください。値が返ってくれば、ユーザースコープ設定が読まれている証拠です。同様に~/.claude.jsonのタイムスタンプが、アプリ側の操作でも更新されることを確認できます。
3-2. 共有されないもの
一方で、次の2つは別物です。
① アプリ本体のUI設定
デスクトップアプリのウィンドウ・テーマ・ロケールなどは ~/Library/Application Support/Claude/config.json(macOS)に保存され、Claude Code の /config とは無関係です。/config の Theme を変えてもアプリ全体の外観は変わりません。
② Claude Code のバージョン
ここが一番の落とし穴です。
- CLI 版:
~/.local/share/claude/versions/<version> - デスクトップアプリ版:
~/Library/Application Support/Claude/claude-code/<version>/
両者は別々に更新されます。 実機では CLI が v2.1.245、デスクトップアプリが v2.1.260 と、15リビジョンずれている状態を確認しました。バージョンが違えば /config の項目構成も違うので、「ターミナルにはある設定がアプリ側に見当たらない」ということが普通に起こります。
現在どちらのバイナリで動いているかは、セッション内で環境変数を見れば分かります。
echo $CLAUDE_CODE_ENTRYPOINT # デスクトップアプリなら claude-desktop
echo $CLAUDE_CODE_EXECPATH # 実際に動いているバイナリのパス
3-3. UI 固有の設定は「効かない」のではなく「意味を持たない」
Theme Editor mode Terminal progress bar Copy on select Auto-scroll Show status in terminal tab Local notifications ← opens agents などは、ターミナルTUIの描画・入力を前提にした項目です。設定値そのものは共有されますが、GUI で動くデスクトップアプリでは効果がない、あるいはアプリ側のUIが優先されます。
逆に言えば、「Claude の振る舞い」を決める設定(権限・モデル・思考・ワークフロー・出力スタイル・言語・CLAUDE.md・hooks)はすべて両方に効くということです。チーム標準を作るなら、この振る舞い側だけを .claude/settings.json に固めれば、CLI 派とアプリ派が混在していても足並みが揃います。
4. 全項目リファレンス(カテゴリ別)
以下、/config のカテゴリ順に解説します。「キー」は settings.json / 環境変数で指定する場合の名前です。ただし7項目だけは settings.json に書けません(2-3 の B)。該当する項目にはその旨を明記しています。
注意: 表示される項目はプラン・組織の管理設定・実行環境によって増減します。IDE に接続していなければ IDE 関連の行は出ませんし、
ANTHROPIC_API_KEYを設定していなければUse custom API keyは現れません。以下は「出うる項目の全カタログ」として読んでください。
4-1. Appearance(外観)
Theme | 既定: dark
-
キー:
theme -
auto/dark/lightに加え、色覚特性に配慮したdark-daltonizedlight-daltonized、ANSI版、custom:<slug>のカスタムテーマまで指定可能。プラグインでブランドカラーのテーマを配布することもできます。カスタムテーマの選択は/themeから。
Language | 既定: Default(英語)
-
キー:
language -
"japanese"や ISO コード"ja"を指定するとその言語で応答。音声ディクテーションの言語も連動します。未設定ならセッションタイトルは会話の言語に合わせられます。 - 小ネタ: このフィールドは自由記述を受け付けます。
Reduce motion | 既定: false
-
キー:
prefersReducedMotion - スピナー・シマー・点滅などのアニメーションを抑制。アクセシビリティ用途。画面録画でデモ動画を撮るときにも有効です。
4-2. Model & output(モデルと応答)
Model | 既定: Default (recommended)
-
キー:
model(/modelコマンド、--modelフラグ、ANTHROPIC_MODELでも指定可) - 併せて押さえるべき関連設定:
-
fallbackModel: 過負荷・利用不可のときに順に試すフォールバックチェーン(最大3つ)。切替はそのターン限り。 -
modelPicker:/modelのピッカーに出す行を、順序とラベル付きで自分で定義できる新設定。Vertex/Bedrock のIDもそのまま並べられます。 -
availableModels/enforceAvailableModels: 組織で選択可能なモデルを制限(管理設定)。コストガバナンスの主要な打ち手。 -
modelPricing: 組織の契約単価を/costやステータスラインの金額表示に反映させる管理設定。 -
modelOverrides: Bedrock の推論プロファイルARNなど、プロバイダー固有IDへのマッピング。
-
-
モデルは黙って切り替わることがある(次項のフラグ切替、
fallbackModel、組織制限)という前提で運用設計してください。プロンプトキャッシュはモデル単位なので、切り替わるたびにコンテキスト全体が再処理され、入力コストがかかります。
Fast mode | 条件付き表示
-
キー:
fastMode/fastModePerSessionOptIn - 対応モデルで出力を高速化するモード(
/fastでトグル)。下位モデルに落とすわけではありません。 -
fastModePerSessionOptIn: trueにすると設定が永続化されず、毎セッション OFF から始まります。使用クレジットを消費する点に注意。
Switch models when a message is flagged | 既定: true
-
キー:
switchModelsOnFlag - 安全分類器がメッセージにフラグを立てたとき、自動的に上位モデルに切り替えて再実行するかどうか。
- 対象領域は主に攻撃的サイバーセキュリティ、生物・生命科学など。自分が書いた文章だけでなく、モデルが読んだもの全部(メモリ、コネクタ経由の内容、Web検索結果、ファイル)が判定対象です。身に覚えのない切替が起きるのはこのため。
-
オフにすると: 切り替わる代わりに会話が一時停止し、「上位モデルに切り替える/プロンプトを直して再試行する」を毎回選べます。非対話モード(
-p)ではフラグ時に拒否として終了します。 - 判断軸: モデルが黙って変わるのが困る人(コスト管理・再現性重視・セキュリティリポジトリを扱う人)はオフ。止まらず進んでほしい人はオン。正規のセキュリティ業務で頻繁に引っかかるなら Cyber Verification Program への申請も案内されます。
Continue automatically at usage limit | 既定: true 🆕
-
キー:
autoContinueAtUsageLimit - claude.ai の使用量上限でセッションが止まったとき、上限リセットを待って自動的に作業を再開します(v2.1.234 で追加)。
- オフにすると、上限ダイアログで「待つ」を毎回選ぶ形になります。
- 判断軸: 夜間に長時間タスクを回す人はオン一択。逆に「上限に当たったら止まってほしい(=コストを意識したい)」人はオフ。
Output style | 既定: default
-
キー:
outputStyle
| スタイル | 効果 |
|---|---|
Default |
標準のソフトウェアエンジニアリング応答 |
Concise 🆕 |
前置き・ナレーションを省き、結果から述べる(作業の丁寧さは変えない) |
Explanatory |
実装意図やコードベースのパターンを解説する「Insights」を追加 |
Learning |
学習モード。TODO(human) マーカーで自分に書かせる |
-
~/.claude/output-styles/または.claude/output-styles/に Markdown を置けば独自スタイルを定義できます。新人教育ではLearning、レビュー観点を揃えたいなら独自スタイル、が実務的。 - 注意: システムプロンプトの一部なので、変更は
/clearか再起動で反映されます。
Default view | 既定: default 🆕
-
キー:
defaultView - 起動時の表示を
transcript(従来のログ表示)かchat(要約された会話ビュー)から選択。defaultは環境に応じた自動選択。 - ツール実行の詳細を常時追いたい人は
transcript、会話として読みたい人はchat。
Verbose output | 既定: false
-
キー:
verbose - ツール出力を省略せず全文表示。「Claude が何を読んで何を判断したか」を追跡したいときに有効。挙動の不審を調べる最初の一手です。普段はオフでよい。
Auto-compact | 既定: true
-
キー:
autoCompactEnabled - コンテキストウィンドウが上限に近づいたとき、過去の会話を自動要約して圧縮します。長時間セッションを続けるための生命線。
- 落とし穴: 圧縮の瞬間に文脈が痩せます。「さっきまで覚えてたのに急にトンチンカンになった」の主犯はだいたいこれ。
-
チューニング:
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=80のように閾値を下げると、要約後に余白が残り品質が安定します。autoCompactWindow(またはCLAUDE_CODE_AUTO_COMPACT_WINDOW)でウィンドウ自体をトークン数指定することも可能。完全に切るならDISABLE_AUTO_COMPACT=1(手動/compactは残る)、両方切るならDISABLE_COMPACT=1。 - 現在の設定値は
/autocompactで確認できます。
Thinking mode | 既定: true
-
キー:
alwaysThinkingEnabled - 拡張思考(Extended Thinking)を既定で有効化。難しい設計判断やデバッグでは精度が明確に上がりますが、思考トークンぶんコストが増えます。
- 関連:
effortLevel(low/medium/high/xhigh)で深さを永続化、/effortでセッション中に変更(/effort <level> sでそのセッション限り)。 - 🆕
maxEffortLevel(v2.1.267): effort の上限を設定側から固定できます。Bedrock / Vertex / Foundry を含む全プロバイダーでクランプされ、複数の設定ファイルがあれば最も低い値が勝ちます。modelSettings.<model>.maxEffortLevelでモデル別指定も可能。組織のコスト上限を効かせる新しい打ち手です。
Default permission mode | 既定: default
-
キー:
permissions.defaultMode
| モード | 挙動 |
|---|---|
default |
すべてのツール実行で確認ダイアログ |
acceptEdits |
ファイル編集と簡単なBashは自動承認 |
plan |
読み取り専用(計画づくりまで) |
auto |
分類器による背景チェック付きの自動承認 |
dontAsk |
すべて自動承認 |
bypassPermissions |
権限チェックを完全スキップ |
- セッション中は
Shift+Tabで切替可能。 -
この記事で最も重要な項目です。
Bypass Permissionsは個人の実験環境なら効率的ですが、業務リポジトリの既定値にしてはいけません。組織で運用するなら Managed スコープでpermissions.disableBypassPermissionsModeを使い、そもそも選ばせない構成が安全です。 - 現実的な着地点は
acceptEdits+ 明示的なdenyルール(Read(./.env)、Bash(curl *)など)。 - 🆕
autoモードは継続的に強化されており、クラウドのメタデータ認証情報の取得・egress 回避・テナント跨ぎのアクセスは自動承認されなくなりました。作業ディレクトリ外の初回ファイル読み取りにも確認が入ります(permissions.blockReadsOutsideWorkingDirectoriesで恒久ブロック可)。
Use auto mode during plan | 既定: true
-
キー:
useAutoModeDuringPlan - プランモード中に自動モードの分類器を適用し、安全な読み取り系ツールを自動承認する。計画づくり中に「読んでいいですか」を10回聞かれる苦行から解放されます。基本オンでよい。
4-3. Display(表示)
Auto-scroll | 既定: true
-
キー:
autoScrollEnabled - フルスクリーン描画時、新しい出力を追って最下部に自動追従。オフにしても権限プロンプトだけはビューにスクロールしてきます。長い出力を途中で読み返したい人はオフ。
Terminal progress bar | 既定: true
-
キー:
terminalProgressBarEnabled - 対応ターミナル(ConEmu、Ghostty 1.2.0+、iTerm2 3.6.6+)で進捗バーを表示。
Show tips | 既定: true
-
キー:
spinnerTipsEnabled - 処理中のスピナー部分に操作ヒントを表示。
spinnerTipsOverrideで自社ルールに差し替えられます(例: 「コミット前にmake lintを回す」)。社内展開時の地味な啓蒙枠として使えます。
Show turn duration | 既定: true
-
キー:
showTurnDuration - 応答後に処理時間を表示(例:
Cooked for 1m 6s)。体感でなく数値でボトルネックを掴めるので、私はオン推奨です。
Time format | 既定: auto 🆕
-
キー:
timeFormat(およびtimeZone) - ターン終了時刻やトランスクリプトのタイムスタンプの表記を、12時間制 / 24時間制 / 24時間UTC / strftime パターンから選択(v2.1.257 で追加)。
- 海外チームとログを共有するなら
24h UTC固定が事故を減らします。
Show PR status footer | 既定: true
-
キー:
prStatusFooterEnabled― 2-3 の B(/config専用・settings.json不可) - 現在のブランチにオープンなPRがあると、画面下部にリンクとレビュー状態を色付き表示(60秒ごと更新)。緑=approved、黄=pending、赤=changes requested、灰=draft、紫=merged。
Ctrl+Clickでブラウザが開きます。 -
要件:
ghCLI がインストール・認証済みであること。 - GitHub Enterprise や社内レビューツールを使っている場合は
prUrlTemplateでリンク先を差し替えられます。
Show last response in external editor | 既定: false
-
キー:
externalEditorContext - 直前の応答を外部エディタ(IDE接続時は IDE)で開いて表示する。長大な設計ドキュメントを Claude に書かせて、そのまま読み込みたいときに便利です。
4-4. Input & controls(入力とエージェント制御)
Editor mode | 既定: normal
-
キー:
editorMode -
normalかvim。Vim派は必須。vimInsertModeRemapsでjj→ Escape のような2キーのリマップも可能です。 - 🆕 関連:
keybindingFlavorを"readline"にすると、Ctrl+Wが Bash と同じ「直前の空白まで削除」になります(既定は"classic")。 - 🆕 関連:
spellcheck: trueで、入力中のスペルミスに下線が付きます(aspell/hunspell/ispellが必要)。
Question auto-continue timeout | 既定: never
-
キー:
askUserQuestionTimeout - Claude からの質問ダイアログを放置したとき、選択済みの選択肢で自動的に続行するまでの待ち時間。
60s/5m/10m/never。 - 既定の
neverは「答えるまで待つ」。離席中も進めたい長時間タスクでは5mなどが有効ですが、勝手に進んで困る作業ではneverのまま。プロジェクト設定からは読み込まれない点に注意。
Claude-proposed goals | 既定: auto 🆕
-
キー:
modelProposedGoals - Claude が自発的に「このセッションのゴールはこれですね」と提案する機能(ProposeGoal ツール)の制御。
| 値 | 挙動 |
|---|---|
auto |
提案ごとに、承認を求めるかどうかを Claude が判断 |
alwaysAsk |
すべての提案を承認ダイアログ経由にする |
disabled |
機能自体をオフ |
- 自分で
/goalと打った場合は影響を受けません。
Copy on select | 既定: true
-
キー:
copyOnSelect― 2-3 の B(/config専用・settings.json不可) - ターミナル上でテキストを選択した瞬間にクリップボードへコピー。マウス操作を多用する人には快適ですが、意図しない上書きが起きるので、クリップボード履歴ツールと併用している人は挙動を確認してください。
Prompt suggestions | 既定: true
-
キー:
promptSuggestionEnabled(環境変数CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION) - 応答後に入力欄へ薄いグレーで表示される「次にこう聞くのでは?」という予測テキスト。
- ペアプロ画面共有中に「勝手に文字が出て紛らわしい」と言われたら切ってください。
Agents view | 🆕
-
キー:
agentsView(管理設定側の表示。実体は下の2キー) - エージェントビュー(バックグラウンドで動くエージェントの一覧画面)へのアクセス可否をまとめて表す行です。実際に触るのは Advanced 側の次の2つ。
-
defaultToAgentsView: 起動時にエージェントビューを開くか(既定 false) -
leftArrowOpensAgents: 入力欄が空のとき左矢印キーで開くか(既定 true) - どちらも 2-3 の B(
/config専用・settings.json不可)
-
- 組織的に機能ごと止めるなら
disableAgentView(CLAUDE_CODE_DISABLE_AGENT_VIEW=1)。
Rewind code (checkpoints) | 既定: true
-
キー:
fileCheckpointingEnabled - 編集前にファイルのスナップショットを保存し、
Esc2回 または/rewindで巻き戻せます。復元は「コードと会話/会話のみ/コードのみ」から選択。 -
重要な注意: Bashコマンド経由のファイル変更は追跡されません。
sed -iやrmで壊したものは戻りません。git のコミット習慣は引き続き必須です。 - 無効化:
CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING=1
Dynamic workflows | 既定: true
-
キー:
enableWorkflows/disableWorkflows(CLAUDE_CODE_DISABLE_WORKFLOWS=1) - 多数のサブエージェントをJavaScriptスクリプトでオーケストレーションする機能。Claude がスクリプトを書き、ランタイムがバックグラウンドで実行します。
- 向く仕事: リポジトリ横断のバグ掃討、500ファイル規模のマイグレーション、複数の独立した観点からの設計案出し。
- コスト影響が最も大きい機能のひとつ。次の2項目とセットで理解してください。
- 🆕 プロンプトキャッシュ効率の改善として、同一プレフィックスの兄弟エージェントは時間差で起動されるようになりました(
CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0で無効化)。
Ultracode keyword trigger | 既定: true
-
キー:
workflowKeywordTriggerEnabled - プロンプトに
ultracodeというキーワードが含まれていたら、動的ワークフローを起動する。 - キーワード1語で数十体のエージェントが立ち上がり得る、という点は共有メンバー全員に周知しておくべきです。意図しない起動が怖ければオフ。
Artifacts | 既定: true
-
キー:
enableArtifact(管理側はdisableArtifact/CLAUDE_CODE_DISABLE_ARTIFACT=1) - セッションの出力を claude.ai 上のプライベートWebページとして公開するツール。
- 企業導入では要検討項目。社内コードの成果物が外部URLとして生成される導線になり得るため、情シス・セキュリティ部門と合意した上で判断すべき設定です。
4-5. Connections(通知・接続)
Local notifications | 既定: auto
-
キー:
preferredNotifChannel -
auto/terminal_bell/iterm2/iterm2_with_bell/kitty/ghostty/notifications_disabled。 - 「長いタスクを投げて別作業に移る」運用では、これを設定しているかどうかで生産性が変わります。裏で終わったことに5分後に気づく、が一番もったいない。
Push when actions required | 既定: false
-
キー:
inputNeededNotifEnabled - Remote Control 接続中に、権限確認や質問で待ちが発生したらスマホへプッシュ通知。
- 移動中に長時間タスクを回すなら、これをオンにしないと Remote Control の価値が半減します。
Push when Claude decides | 既定: false
-
キー:
agentPushNotifEnabled - Claude が自発的に「これは知らせるべき」と判断したとき(長いタスクの完了など)にプッシュ通知。
- 前項が「止まった」通知、こちらが「終わった」通知。セットで使うのが正解です。
Auto-connect to IDE (external terminal) | 既定: true
-
キー:
autoConnectIde(環境変数CLAUDE_CODE_AUTO_CONNECT_IDE) - 外部ターミナルから起動したときに、開いているIDE(VS Code / JetBrains)へ自動接続する。接続されると差分表示や選択範囲の連携が効きます。
- うまく繋がらないときは
CLAUDE_CODE_IDE_SKIP_VALID_CHECK=1。
Auto-install IDE extension | 既定: true 🆕
-
キー:
autoInstallIdeExtension(CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL) - IDE 拡張の自動インストールの可否。初版では前項の付随キーとして紹介しましたが、独立した行に昇格しています。拡張の配布をIT部門が管理している環境ではオフに。
Diff tool | 既定: auto
-
キー:
diffTool - 差分表示に使うツールの選択。
autoは環境に応じて自動判定(IDE接続時はIDEのdiffビューア等)。差分が読みにくいと感じたときに最初に触る設定です。
Claude in Chrome enabled by default | 既定: false
-
キー:
claudeInChromeDefaultEnabled― 2-3 の B(/config専用・settings.json不可) - Chrome / Edge 拡張を通じて、Claude Code からブラウザを直接操作する機能(
/chromeまたはclaude --chrome)。Webアプリのテスト、コンソールログの読み取り、フォーム操作などが可能。 - セキュリティ観点で慎重に。認証済みのブラウザセッションを AI が操作できる状態になるため、既定オンにするなら対象環境を絞るべきです。
Enable Remote Control for all sessions | 既定: 組織デフォルトに従う
-
キー:
remoteControlAtStartup - ローカルで動作中のセッションに、スマホ・タブレット・別PCのブラウザから接続する機能。
claude --remote-controlで起動するとURLとQRコードが表示されます。セッション自体はローカルで動くので、ファイル・MCP・プロジェクト設定はそのまま使えます。 - 🆕 v2.1.222 で挙動が変わりました: リポジトリ設定(
.claude/settings.json/settings.local.json)からONにすることはできなくなり、OFFにすることだけが可能です。ONにするならユーザースコープの/configから。 - 組織として禁止するなら管理設定で
disableRemoteControl: true。
Use this machine's settings in cloud sessions | 既定: off 🆕
-
キー:
remoteHomeSettingsMode -
claude --cloudで起動するクラウドセッションに、このフォルダのCLAUDE.md・ルール・出力スタイル・プリファレンス、およびパスを含まない権限ルールを送るかどうか。 - 送られないものが明確に定義されています: 認証情報ファイル、Read ルールやサンドボックス設定が拒否しているもの、hooks・環境変数・MCP サーバー・プラグイン、そしてこのフォルダ外のファイル(リンク経由でも)。
- オンにするときは
/configパネルからのみ(何が送信されるかを画面で示すため)。CLI 引数からの一括有効化はできません。
Unattended commands from cloud sessions on this computer | 既定: 未設定 🆕
-
キー:
unattendedServing - クラウドセッションから、このマシン上で無人でコマンドを実行させることへの同意(
accepted/declined)。 - 一度
acceptedにしても撤回可能。組織の管理設定でロックされている場合はdeclinedのみ選べます。 -
業務端末では原則
declined。 有効にする場合は、そのマシンで何が実行され得るかを理解した上で。
Dialog expiry | 既定: default 🆕
-
キー:
dialogExpiry -
default/60s/5m/10m/never - リモートクライアントへ転送された権限ダイアログが、回答を待って居座る最大時間。同時に、保留(hold)された他セッションからのメッセージの保持時間も決めます。
- Remote Control を常用するなら、放置ダイアログが溜まらないよう
10m程度が実用的。
Messages from your other sessions | 既定: default 🆕
-
キー:
crossSessionInbound - 自分の他セッションからの
SendMessage(セッション間メッセージ)の受け取り方。
| 値 | 挙動 |
|---|---|
accept |
そのまま配送する |
hold |
Claude に触らせず、自分のレビュー待ちに置く |
refuse |
このセッションは受け取らない |
default |
モード整合(下記) |
-
default(モード整合)の挙動が秀逸です: 送信元セッションの権限モードのクラスが自分と一致するとき(bypass↔bypass、prompting↔prompting)だけ自動配送し、食い違う場合は承認待ちに保留します。権限モードを申告しない送信元は、自分が権限確認をスキップしている(bypass)ときだけ保留されます。 -
意図: 「確認を求めるモードで動いているセッションに、確認なしモードのセッションから指示が飛び込む」という権限の抜け道を塞ぐ設計です。基本は
defaultのままで。
External CLAUDE.md includes | 🆕
- 作業ディレクトリ外の
CLAUDE.mdを@インクルードで読み込むことを承認済みかどうかの表示行(読み取り専用)。承認状態は初回のダイアログで決まります。
Use custom API key | 条件付き表示 🆕
-
ANTHROPIC_API_KEYを環境変数に設定している場合のみ表示され、そのキーを使うことを承認するかを切り替えます。キーの末尾数文字が併記されるので、意図しないキーが使われていないか確認できます。
4-6. Advanced(settings.json へ移行予定の項目)
このカテゴリの項目は、設定済みだとヘッダーに
ADVANCED — MOVING TO SETTINGS.JSONと表示されます。将来/configから消える予告なので、settings.json側に書き移しておくのが安全です。ただしcopyFullResponsedefaultToAgentsView← opens agentsは現時点でsettings.jsonに受け皿が無く書き移せません(2-3 の B)。
Auto-update channel | 既定: latest
-
キー:
autoUpdatesChannel -
latest(最新)かstable(約1週間遅れ。大きな回帰を含むバージョンをスキップ)。 -
チーム運用なら
stable一択です。加えてminimumVersionでダウングレード防止、企業ならrequiredMinimumVersion/requiredMaximumVersionでバージョン帯を強制できます。「昨日まで動いていたスクリプトが壊れた」を防ぐガバナンスの要。 - 自動更新自体を止めるなら
DISABLE_AUTOUPDATER。
Worktree base ref | 既定: fresh
-
キー:
worktree.baseRef - 新しいワークツリーを
fresh(リモートの既定ブランチ)から作るか、head(現在のローカルHEAD)から作るか。 - 「main から切ってほしいのに作業中の変更を引き継いでしまう」といった事故はここで制御します。関連キーに
worktree.sparsePaths(巨大モノレポの高速化)、worktree.symlinkDirectories(node_modules等の重複回避)があり、モノレポ運用では効果が大きい。
Respect .gitignore in file picker | 既定: true
-
キー:
respectGitignore -
@によるファイル補完で.gitignore該当ファイルを候補から除外。オフにするとnode_modulesまで候補に出てきます。オンのままで。
Skip the /copy picker | 既定: false
-
キー:
copyFullResponse― 2-3 の B(/config専用・settings.json不可) -
/copy実行時、応答にコードブロックがあると「どれをコピーするか」のピッカーが出ます。trueにするとピッカーを飛ばして常に全文コピー。 - 小ネタ: ピッカー内で
wを押すとクリップボードでなくファイルに書き出せる(SSH越しに便利)。
Session recap | 既定: true
-
キー:
awaySummaryEnabled(環境変数CLAUDE_CODE_ENABLE_AWAY_SUMMARY) - 数分席を外して戻ってきたとき、「その間に何が起きたか」を1行で要約してくれます。長時間タスクを回す人には効きます。
Dynamic workflow size | 既定: medium
-
キー:
workflowSizeGuideline(/config workflowSizeGuideline=small) - 4段階。
unrestricted/small(5体未満)/medium(15体未満)/large(50体未満)。 - 最重要の注意: これは**「上限」ではなく「助言」**です。公式ドキュメントが明記しているとおり、プロンプト側の要求次第で Claude は上書きします。実際の暴走を止めているのは、この設定とは独立したランタイム側の制限です。
- つまり「smallにしたから安心」ではない。コスト管理はここだけに頼らず、使用量モニタリングと併用してください。
Claude-drafted feedback | 既定: notify 🆕
-
キー:
feedbackDrafts - セッション中に問題が起きたとき、Claude がフィードバックレポートの下書きを作って
/feedbackに積む機能(SendFeedback ツール)。
| 値 | 挙動 |
|---|---|
notify |
下書きが積まれたら1行の通知を出す |
quiet |
通知なしで積むだけ |
off |
機能自体をオフ |
- 送信は必ず人間のレビューを経ます。勝手に送られることはありません。
Synced project memory | 既定: 読み取りON / 書き込みOFF 🆕
-
キー:
orgMemoryRead/orgMemoryWrites - 組織で同期されたプロジェクトメモリの読み書き。ラベルにあるとおり、変更は次のセッションから反映されます。
- 書き込みは読み取りが有効でないと選べません(
Synced project memory writes (enable reads first)と表示されます)。
Open agents view by default | 既定: false / ← opens agents | 既定: true
-
キー:
defaultToAgentsView/leftArrowOpensAgents― 2-3 の B(/config専用・settings.json不可) - 前述の Agents view の実体。Vimキーバインドや矢印での履歴移動と競合を感じたら
leftArrowOpensAgentsをオフに。
4-7. Experimental(実験的機能)
仕様変更・削除の可能性があるカテゴリです。業務の前提にしないこと。
Precompute compaction | 🆕
-
キー:
precomputeCompactionEnabled - 圧縮(compaction)のサマリーを、必要になる前にバックグラウンドで先に作っておく。Auto-compact がオンのときだけ効きます。
- 「圧縮のたびに数十秒待たされる」が気になる人は試す価値あり。
Show message timestamps | 🆕
-
キー:
showMessageTimestamps - 各メッセージに到着時刻を刻印。前述の
timeFormat/timeZoneと組み合わせて使います。
Show status in terminal tab | 既定: false 🆕
-
キー:
showStatusInTerminalTab― 2-3 の B(/config専用・settings.json不可) - ターミナルのタブタイトルに実行状態(busy / idle など)を出す。複数タブで並行作業する人には効きます。
Teammate mode | 既定: in-process
-
キー:
teammateMode - Agent Teams(複数のClaude Codeインスタンスが並行作業し、メッセージと共有タスクリストで連携する機能)の表示方法。
| モード | 挙動 |
|---|---|
in-process |
全teammateをメインターミナル内で実行(Shift+Down で切替) |
auto |
環境に応じて分割ペインかin-processを自動選択 |
tmux |
各teammateを別ペインに表示(tmux / iTerm2 が必要) |
iterm2 |
iTerm2ネイティブの分割ペイン |
-
複数エージェントを本気で回すなら
tmux一択です。全員の出力が同時に見える/見えないの差は、監督コストに直結します。 - ⚠️
Default teammate modelは v2.1.234 で削除されました。 teammate は spawn 時に明示指定がなければリーダーと同じモデルを使います。並列時のコストを抑えたいならCLAUDE_CODE_SUBAGENT_MODEL(全サブエージェントに強制するならCLAUDE_CODE_SUBAGENT_MODEL_FORCE)で制御してください。
4-8. Internal(開発用)
snipEnabled / snipDebug / doneMeansMerged / autoUploadSessions / autoAddRemoteControlDaemonWorker / autofixPrMode の6項目。通常は表示されず、触る必要もありません。
5. 用途別おすすめ設定 3プロファイル
「正解の設定」は用途で変わります。3つの型を用意しました。
プロファイルA|個人開発者・速度最優先
止まらないことを最優先。壊れても自分だけが困る環境向け。
| 項目 | 推奨値 | 理由 |
|---|---|---|
| Default permission mode | acceptEdits |
編集は自動、危険操作だけ確認 |
| Thinking mode | true | 設計判断の質を優先 |
| Auto-compact | true(閾値80%) | 長時間セッションの安定 |
| Continue automatically at usage limit | true 🆕 | 上限リセットを待って自動再開 |
| Rewind code | true | 事故ってもすぐ戻す |
| Local notifications | iterm2_with_bell |
完了に即気づく |
| Show turn duration | true | 遅さを数値で把握 |
| Auto-update channel | latest |
新機能をすぐ試す |
| Dynamic workflow size | small |
実験段階でコストを抑える |
プロファイルB|チーム標準・再現性重視
「昨日と同じ動きをする」ことに価値がある環境。.claude/settings.json にコミットして共有します。
| 項目 | 推奨値 | 理由 |
|---|---|---|
| Default permission mode |
acceptEdits + deny ルール |
.env 読取や curl を明示的に禁止 |
| Auto-update channel | stable |
破壊的変更を1週間遅らせる |
| Switch models when flagged | false | モデルが黙って変わらない=再現性 |
| Model / fallbackModel | 明示指定 | 誰が回しても同じモデル |
maxEffortLevel |
指定 🆕 | 推論深度の上限を固定してコストを読める形に |
| Teammate mode | tmux |
並列作業を可視化 |
CLAUDE_CODE_SUBAGENT_MODEL |
軽量モデル 🆕 | 「Default teammate model」廃止後のコスト最適化 |
| Dynamic workflow size | medium |
現実的な並列度 |
| Messages from your other sessions |
default 🆕 |
権限モード整合による事故防止 |
| Show PR status footer | 各自が /config で設定 |
レビュー状態を常時可視化。settings.json では共有できない(2-3 の B) |
| Output style | 独自スタイル or Concise
|
レビュー観点をチームで統一 |
| Time format |
24h(UTC) 🆕 |
ログの時刻表記を揃える |
プロファイルC|企業導入・ガバナンス重視
Managed スコープに置いて、ユーザーが上書きできない層で守ります。配り方は第6章を参照してください(Team プランの組織なら MDM なしで claude.ai の管理画面から配信できます)。
| 項目 | 推奨値 | 理由 |
|---|---|---|
permissions.disableBypassPermissionsMode |
"disable" |
権限バイパスを選ばせない(真偽値ではなく文字列 "disable") |
requiredMinimumVersion |
指定 | 脆弱性のある旧版での起動を防ぐ |
availableModels + enforceAvailableModels
|
指定 | コストとデータ経路を統制 |
maxEffortLevel |
指定 🆕 | 全プロバイダー横断で推論コストの上限を固定 |
modelPricing |
指定 🆕 | 契約単価で /cost を実額表示 |
disableArtifact |
true(要検討) | 外部公開ページ生成の導線を管理 |
disableRemoteControl |
true(要検討) | 端末外からの接続を統制 |
unattendedServing |
declined を強制 🆕 |
無人実行を組織として禁止 |
permissions.blockReadsOutsideWorkingDirectories |
true 🆕 | 作業ディレクトリ外の読み取りを遮断 |
allowedMcpServers / deniedMcpServers
|
指定 | 接続先MCPをホワイトリスト化 |
strictKnownMarketplaces |
指定 | プラグイン供給元を限定("owner/*" のワイルドカード可 🆕) |
claudeMd |
指定 | 組織共通のコーディング規約を注入 |
companyAnnouncements |
指定 | 起動時に社内ルールを周知 |
補足: 管理設定は寛容にパースされます。1つのタイポで組織ポリシー全体が無効化されることはなく、無効なエントリだけが落ちて警告が出ます。展開前に検証マシンで
claude doctorを実行して、落ちたエントリを確認してください。/statusのSkipped sources行を見れば、優先度の高い管理ソースに負けて適用されなかった設定ファイルも分かります。
6. Managed スコープの実際の配り方(組織運用)
第2章の優先順位表で「1(最強)Managed」と書きましたが、これは1つの仕組みではありません。優先度つきの3経路があり、既定では上位が1つでも存在すると下位は完全に無視されます(マージされない)。「MDM を配ったのに managed-settings.json が効かない」は、バグではなく仕様どおりの挙動です。
| 優先度 | 経路 | 実体 | 配る人 |
|---|---|---|---|
| 1 | server-managed | claude.ai の組織設定から配信 | Team / Enterprise の管理者 |
| 2 | MDM | macOS: 管理プロファイル / Windows: レジストリポリシー | 情シスの MDM・GPO |
| 3 | ローカルファイル | managed-settings.json |
構成管理(Ansible / Jamf スクリプト等) |
合成方法は managedSourcesBehavior で選べます。
-
first-wins(既定): 最上位のソース1つだけが管理層になる。下位は捨てられる -
merge: 全ソースを deep-merge。真偽値・列挙は最も厳しい値が勝ち、配列は union
merge は「下位ソースも全部管理者の統制下にある」と確信できるときだけにしてください。下位が permissions.allow のような緩める方向のエントリを持ち込めてしまうためです。なお HKCU と --managed-settings はマージに参加しません。
6-1. server-managed ― 小規模組織ならまずこれ
Enterprise 契約は不要で、Team プランの組織であれば使えます。 端末管理の仕組み(MDM)も構成管理ツールも要らず、claude.ai の組織管理画面から設定を配るだけ。数人〜数十人規模の組織にとっては、事実上これが唯一現実的な選択肢です。
仕組みはこうなっています。
- Claude Code が起動時に組織の設定エンドポイントから設定を取得し、ローカルにキャッシュする
- 初回受信時にユーザー側へ承認ダイアログが出る(組織の設定内容が変わらない限り、再ログインや組織切替では再表示されません)
- 取得に失敗したときは古いキャッシュで継続するので、ネットワーク断で全員が止まることはない
- ペイロードの一部が不正でも、壊れたエントリだけ落として残りを適用する
メリット: 端末に何も置かないので、退職者の端末やBYODでも設定が追随する。変更が即座に全員へ行き渡る。
注意点: ユーザーの承認を経るため、拒否された端末には効きません。「絶対に外させない」統制が要る場合は MDM 層と併用してください。
forceLoginOrgUUID で組織アカウントを固定したり、リモート設定が取得できるまで起動をブロックさせる、といった強い制御もこの層で行います。
6-2. MDM ― 端末に強制する
macOS(管理プロファイル)
配布ドメインは com.anthropic.claudecode。Claude Code は次の2箇所をこの順で読みます。
/Library/Managed Preferences/<username>/com.anthropic.claudecode.plist # ユーザー単位
/Library/Managed Preferences/com.anthropic.claudecode.plist # デバイス単位
Jamf / Intune / Kandji などの Custom Settings(カスタム構成プロファイル) で、Preference Domain に com.anthropic.claudecode を指定し、settings.json と同じキーをそのまま plist のトップレベルに置きます。ラッパーのキーは不要です。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>autoUpdatesChannel</key>
<string>stable</string>
<key>requiredMinimumVersion</key>
<string>2.1.260</string>
<key>permissions</key>
<dict>
<key>defaultMode</key>
<string>acceptEdits</string>
<key>disableBypassPermissionsMode</key>
<string>disable</string>
</dict>
</dict>
</plist>
内部的には plutil -convert json で読まれます。日付型・データ型の値は変換できず無視されるので、文字列・数値・真偽値・配列・辞書だけで組んでください。
Windows(レジストリポリシー)
HKLM\SOFTWARE\Policies\ClaudeCode → 値名: Settings(JSON文字列)
HKCU\SOFTWARE\Policies\ClaudeCode → 値名: Settings(ユーザー単位)
GPO なら「レジストリ基本設定」で Settings に JSON を丸ごと入れます。
reg add "HKLM\SOFTWARE\Policies\ClaudeCode" /v Settings /t REG_SZ /d "{\"autoUpdatesChannel\":\"stable\"}" /f
WSL は既定では Windows 側ポリシーを読みません。 読ませるには wslInheritsWindowsSettings: true を HKLM と HKCU の両方に置く二重オプトインが必要です(管理者が経路を開き、ユーザーが確認する設計)。有効時は Windows 側が /etc/claude-code より優先されます。
6-3. ローカルファイル ― 検証と小回り
OS ごとの固定パスです。
| OS | パス |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-settings.json |
| Windows | C:\Program Files\ClaudeCode\managed-settings.json |
| Linux | /etc/claude-code/managed-settings.json |
sudo mkdir -p "/Library/Application Support/ClaudeCode"
sudo tee "/Library/Application Support/ClaudeCode/managed-settings.json" > /dev/null <<'JSON'
{
"permissions": {
"defaultMode": "acceptEdits",
"disableBypassPermissionsMode": "disable",
"deny": ["Read(./.env)", "Read(./secrets/**)"]
},
"autoUpdatesChannel": "stable",
"requiredMinimumVersion": "2.1.260"
}
JSON
分割配布用のドロップインディレクトリもあります。同じ階層に managed-settings.d/ を置くと、複数ファイルを組み合わせて読み込みます。「権限ポリシーはセキュリティ班、MCP 許可リストはプラットフォーム班」のように担当を分けたいときに便利です。
/Library/Application Support/ClaudeCode/
├── managed-settings.json
└── managed-settings.d/
├── 10-permissions.json
└── 20-mcp-allowlist.json
検証用にパスを差し替えたいときは CLAUDE_CODE_MANAGED_SETTINGS_PATH が使えます。
6-4. 反映確認 ― ここを飛ばすと事故ります
claude doctor
弾かれた無効エントリを一覧できます。管理設定は寛容にパースされるので、1つのタイポでポリシー全体が無効化されることはなく、壊れたキーだけが落ちて警告になります。裏を返せば気づかないまま効いていないことがあるということ。展開前の claude doctor は必須です。
セッション内では /status に次が出ます。
| 表示 | 意味 |
|---|---|
Setting sources |
実際に適用されたソース |
Skipped sources |
上位ソースに負けて適用されなかったファイル(first-wins の犠牲者) |
Enterprise managed settings (…, merged) / file + drop-ins
|
何がどう合成されたか |
「設定したのに効かない」の9割は Skipped sources を見れば解決します。
6-5. 実務的な進め方
- まずローカルの
managed-settings.jsonを1台に置いて挙動を確認(claude doctor→/status) - 内容が固まったら、Team/Enterprise なら server-managed へ、端末強制が要るなら MDM の plist / レジストリへ移植
- 移行したら下位の経路は必ず消す
②と③を併用すると first-wins で③が黙って無視されます。「昔ローカルに置いた managed-settings.json が残っていて、MDM に移行したつもりが二重管理になっていた」は、実際に起きるトラブルです。
7. コピペ用 settings.json
チーム共有用の .claude/settings.json の出発点です。プロジェクトに合わせて調整してください。
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"defaultMode": "acceptEdits",
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Bash(curl *)"
],
"disableBypassPermissionsMode": "disable"
},
"autoUpdatesChannel": "stable",
"alwaysThinkingEnabled": true,
"maxEffortLevel": "high",
"autoCompactEnabled": true,
"autoContinueAtUsageLimit": true,
"fileCheckpointingEnabled": true,
"showTurnDuration": true,
"timeFormat": "24h",
"respectGitignore": true,
"teammateMode": "tmux",
"workflowSizeGuideline": "medium",
"crossSessionInbound": "default",
"dialogExpiry": "10m",
"preferredNotifChannel": "terminal_bell",
"language": "japanese",
"env": {
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
"CLAUDE_CODE_SUBAGENT_MODEL": "claude-sonnet-5"
}
}
prStatusFooterEnabled はここに含めていません。 2-3 のとおり settings.json では無効で、書いても黙って無視されるためです(各自が /config で設定する必要があります)。
$schema を書いておくと、VS Code などでオートコンプリートとバリデーションが効きます。公開スキーマは最新CLIの追加設定に追いついていない場合があるため、新しいキーで警告が出ても必ずしも誤りではありません。
8. まとめ ― /config は「AIの働き方の就業規則」
カテゴリ再編後の /config を通して見ると、その本質がより明確になりました。これは見た目の好みを決める画面ではなく、「AIエージェントにどこまでの裁量を与え、どこで人間が介入するか」を定義する画面です。カテゴリ名がそのまま関心事の分類になっています。
- Model & output は安全性とコストを決める(権限モード・モデル・思考深度・使用量上限時の挙動)
- Input & controls はエージェントの暴走範囲を決める(ワークフロー・ultracode・チェックポイント)
- Connections は外部との境界を決める(クラウドへの設定送信・無人実行・セッション間メッセージ・Chrome操作)
-
Advanced は**「そろそろ
settings.jsonに移せ」というシステムからの督促** - Display / Appearance は生産性の微調整
そして今回の改訂で最も強調したいのは2点です。
1つ目。Connections カテゴリの新項目群(remoteHomeSettings / unattendedServing / crossSessionInbound)は、いずれも「別のどこかから、この環境に指示や設定が流れ込む」経路の制御です。 ローカル完結だった頃のセキュリティ観では足りません。企業導入では、権限モードと同じ重さでレビューすべき項目になりました。
2つ目。これらの設定はチームで揃えて初めて効果が出るということ。個人が ~/.claude.json でバラバラに調整している状態は、全員が違う就業規則で働いているのと同じです。しかも第3章で見たとおり、CLI とデスクトップアプリは設定ファイルを共有する一方、バージョンは別々に進みます。「同じ設定なのに挙動が違う」と感じたら、まず両者のバージョンを疑ってください。
.claude/settings.json をコミットし、Managed スコープで守る。そしてこれは大企業だけの話ではありません。 第6章で見たとおり、server-managed は Team プランの組織でも使えて、MDM も構成管理ツールも要りません。数人のチームでも「全員が同じ就業規則で働く」状態は今日から作れます。ここまでやって初めて「AI開発が組織の能力になった」と言えます。
※ 本記事は Claude Code v2.1.267 時点の情報です。項目の表示・非表示はプラン、組織の管理設定、実行環境によって変わります。Claude Code は更新頻度が非常に高く、設定項目は頻繁に増減しますので、最新の正確な仕様は公式ドキュメントをご確認ください。