81
115

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code「/config」設定の教科書 ― 8カテゴリ全項目を1つずつ解説+おすすめ設定(v2.1.267対応)

81
Last updated at Posted at 2026-07-27

📝 更新履歴

  • 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 を開きながら読んでください。


目次

  1. v2.1.220 からの変更点サマリー(既読者向け)
  2. そもそも /config とは何を触っているのか(settings.json に書けない設定を含む)
  3. CLI とデスクトップアプリで設定は共有されるのか
  4. 全項目リファレンス(カテゴリ別)
  5. 用途別おすすめ設定 3プロファイル
  6. Managed スコープの実際の配り方(組織運用)
  7. コピペ用 settings.json
  8. まとめ

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 select Show 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-daltonized light-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 でブラウザが開きます。
  • 要件: gh CLI がインストール・認証済みであること。
  • 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
  • 編集前にファイルのスナップショットを保存し、Esc 2回 または /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 側に書き移しておくのが安全です。ただし copyFullResponse defaultToAgentsView ← 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. 実務的な進め方

  1. まずローカルの managed-settings.json を1台に置いて挙動を確認(claude doctor → /status)
  2. 内容が固まったら、Team/Enterprise なら server-managed へ、端末強制が要るなら MDM の plist / レジストリへ移植
  3. 移行したら下位の経路は必ず消す

②と③を併用すると 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 は更新頻度が非常に高く、設定項目は頻繁に増減しますので、最新の正確な仕様は公式ドキュメントをご確認ください。

81
115
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
81
115

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?