← 기사 목록
日本語https://zenn.dev/topics/ai/feed

Claude Code settings.json 全設定リファレンス──「いつ・なぜ変えるか」の判断基準付き

추출된 키워드

42
settings.json·5Claude Code·5sandbox.enabled·4Hooks·4permissions.allow·4permissions.ask·4permissions.deny·4claude-sonnet-4-6·4MCP·3ConfigChange·3UserPromptSubmit·3Stop·3Notification·3PostToolUse·3PreToolUse·3SessionStart·3availableModels·3sandbox.network·3sandbox.filesystem·3MCP サーバー·3permissions.disableBypassPermissionsMode·3permissions.defaultMode·3permissions.additionalDirectories·3opus·3sonnet·3haiku·3ANTHROPIC_API_KEY·3apiKeyHelper·3Vault·2docker·21Password CLI·2MDM·2mcp__github·2mcp__puppeteer·2osascript·2prettier·2npm·2git·2Cursor·2VS Code·2Landlock·2Apple Seatbelt·2

원문

31,692
Claude Code settings.json 全設定リファレンス──「いつ・なぜ変えるか」の判断基準付き

Claude Code settings.json 全設定リファレンス──「いつ・なぜ変えるか」の判断基準付き

Claude Code を使い始めて数週間。基本操作には慣れたが、

settings.json
を開くと設定項目が多すぎて、何を触るべきか分からない——そんな状態ではないだろうか。

公式ドキュメントは英語で項目が羅列されているだけで、「この設定を、いつ、なぜ変えるのか」 の判断基準がない。この記事では、

settings.json
の全設定項目を網羅し、各項目に「変えるべきタイミング」と「現場での実践例」を添えた。

前提:設定ファイルの 5 層構造

設定項目の解説に入る前に、Claude Code の設定がどこに配置され、どの順序で評価されるかを押さえておく。

優先度: Managed(最高) > CLI フラグ > Local > Project > User(最低)

~/.claude/settings.json          ← User:全プロジェクト共通の個人設定
.claude/settings.json            ← Project:チーム共有(git 管理)
.claude/settings.local.json      ← Local:個人実験用(gitignore)
claude --model opus              ← CLI フラグ:セッション単位の一時的な上書き
/Library/Application Support/    ← Managed:IT 管理者がデプロイ
  ClaudeCode/managed-settings.json
スコープ典型的な用途git 管理
User 言語設定、個人の好み、全プロジェクト共通の deny ルールしない
Project チームの lint ルール、MCP サーバー、共通 Hookする
Local 実験的な設定、個人の API キー関連しない
CLI フラグ
--model
--add-dir
など、セッション限りの上書き
Managed 組織のセキュリティポリシー、バイパス禁止IT 管理者が配布

重要: 配列設定(

allow
deny
など)はスコープ間でマージされる。上位スコープが下位を「上書き」するのではなく、全スコープのルールが統合されて評価される。

チーム規模別のスコープ活用目安:

  • 個人開発: User スコープのみで十分。Project に設定を置く必要はない
  • 小チーム(3〜5人): Project スコープを git 管理し、チームの deny ルールと Hook を共有する
  • 中規模(20人以上): Managed スコープによる IT ポリシー配布を検討する
  • エンタープライズ(50人以上): Managed + MDM 配布の自動化が現実的な選択肢になる

設定ファイルの先頭に書くべき 1 行

すべての

settings.json
の冒頭にこれを入れる。
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json"
}

VS Code・Cursor で自動補完とバリデーションが有効になる。設定キーのタイポを防ぎ、利用可能な値の候補が表示される。この 1 行で設定ミスの大半が未然に防止できる。

カテゴリ 1:コア設定

日常的に最も触る機会が多い基本設定。

model

{
  "model": "claude-sonnet-4-6"
}
項目内容
string
デフォルトAPI プラン/サブスクリプションに依存
変えるべき時チーム全員のモデルを統一したい、コスト管理したい

判断基準: 個人で使うなら

~/.claude/settings.json
(User)に設定。チームで統一するなら
.claude/settings.json
(Project)に。ただし、メンバーの実験を妨げないよう
availableModels
と組み合わせるのが現実的。

availableModels

{
  "availableModels": ["sonnet", "haiku"]
}
項目内容
string[]
デフォルト全モデル利用可能
変えるべき時Opus の利用をコスト理由で制限したい

判断基準: Managed スコープで設定すると組織全体でモデルを制限できる。Project スコープに入れると、そのプロジェクトのコスト上限を暗黙的に設定する効果がある。

language

{
  "language": "japanese"
}
項目内容
string
デフォルト自動検出
変えるべき時応答言語を固定したい

判断基準: 日本語チームなら User スコープに入れておくと快適。英語ドキュメントのプロジェクトでは Project で

"english"
を設定して上書きする手もある。

outputStyle

{
  "outputStyle": "Explanatory"
}
項目内容
string
デフォルトなし
変えるべき時出力形式をカスタマイズしたい(教育的、簡潔等)

判断基準: 個人の好みの範囲なので User スコープに置く。プロジェクトで統一する必要はほぼない。

env

{
  "env": {
    "NODE_ENV": "development",
    "BASH_DEFAULT_TIMEOUT_MS": "180000"
  }
}
項目内容
object
デフォルトなし
変えるべき時シェルプロファイルに依存せず環境変数を固定したい

判断基準: シェルの

.zshrc
.bashrc
に散らばせるより、ここに集約した方がチーム展開が容易。ただし API キーなどの秘密情報は 絶対にここに書かない。秘密情報は
apiKeyHelper
を使う。

apiKeyHelper

{
  "apiKeyHelper": "/usr/local/bin/get-claude-api-key.sh"
}
項目内容
string
デフォルトなし
変えるべき時API キーを動的に取得したい(Vault、1Password CLI 等)

判断基準:

ANTHROPIC_API_KEY
.env
に書くのは危険。シークレットマネージャーから動的取得するスクリプトのパスをここに設定する。

cleanupPeriodDays

{
  "cleanupPeriodDays": 14
}
項目内容
number
デフォルト
30
変えるべき時ディスク容量が気になる、セッション履歴を早く消したい

判断基準: デフォルトの 30 日で問題ないことがほとんど。ディスクが逼迫する CI 環境では短く設定する。

カテゴリ 2:パーミッション設定

最もインパクトが大きく、最初に設計すべきカテゴリ。セキュリティと開発効率のバランスを決める。

permissions.deny

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Bash(curl * | bash)",
      "Bash(rm -rf *)"
    ]
  }
}
項目内容
string[]
デフォルト
[]
変えるべき時 初日に設定する。Claude に触らせたくないファイル・コマンドがある

判断基準: deny ルールは 最優先で評価 される。他のスコープの allow で上書きできない。まず「何を絶対に許可してはいけないか」を書き出し、そこから設計する。

permissions.ask

{
  "permissions": {
    "ask": [
      "Bash(git push *)",
      "Bash(docker *)"
    ]
  }
}
項目内容
string[]
デフォルト
[]
変えるべき時特定のコマンドで毎回確認を強制したい

判断基準:

ask
は deny ほど厳しくないが、allow のように素通りもさせない中間ルール。
git push
docker
のように「実行はしたいが、毎回意識的に確認したい」コマンドに適している。評価順序は deny → ask → allow で、deny にマッチしなかったものが ask で引っかかる。

permissions.allow

{
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(npx prettier *)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Bash(git status)"
    ]
  }
}
項目内容
string[]
デフォルト
[]
変えるべき時毎回の確認プロンプトが煩わしいコマンドがある

判断基準: 「Claude が毎回聞いてくるのが煩わしいが、安全なコマンド」を入れる。

npm run lint
git diff
は典型例。
git push
は allow ではなく ask に入れる方が安全。

パーミッションルールの構文

パターン構文を理解しておかないと、意図しないルールを書いてしまう。

# 基本形式
ToolName                    # 全操作を対象
ToolName(specifier)         # 条件付き

# Bash のパターン
Bash(npm run *)             # npm run で始まるコマンド(* は単語境界で分割)
Bash(git * main)            # git の後に何かがあり main で終わるコマンド
Bash(ls*)                   # ls で始まる(単語境界なし、lsof もマッチする)

# Read/Edit のパスパターン
Read(./.env)                # カレントディレクトリの .env(./ はカレントから相対)
Read(/src/**/*.ts)          # プロジェクトルートからの相対パス(/ で始める)
Read(./secrets/**)          # secrets 以下を再帰的に
Read(~/.zshrc)              # ホームディレクトリ(~ で始める)
Read(//etc/passwd)          # ファイルシステムルートの絶対パス(// で始める)

# WebFetch のドメインパターン
WebFetch(domain:github.com)       # 特定ドメイン
WebFetch(domain:*.npmjs.org)      # ワイルドカードサブドメイン

# MCP ツール
mcp__github                        # GitHub MCP の全ツール
mcp__puppeteer                     # Puppeteer MCP の全ツール(同上)
mcp__puppeteer__puppeteer_navigate # Puppeteer の特定ツールのみ

permissions.additionalDirectories

{
  "permissions": {
    "additionalDirectories": ["../shared-libs/", "../docs/"]
  }
}
項目内容
string[]
デフォルト
[]
変えるべき時モノレポで隣のパッケージを参照する、ドキュメントが別ディレクトリにある

判断基準: Claude Code はデフォルトでカレントディレクトリのみを作業対象とする。マルチパッケージ構成では、ここに参照先を追加する。

permissions.defaultMode

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}
動作
"default"
初回使用時にツールごとに確認
"acceptEdits"
ファイル編集を自動承認
"plan"
ファイル修正・コマンド実行不可(Plan モード)
"dontAsk"
/permissions
allow
ルールで事前承認されたツールのみ実行
"bypassPermissions"
すべての確認をスキップ(危険

判断基準: 個人開発なら

"acceptEdits"
が快適。チーム共有設定には入れない方が安全。Managed スコープで
"dontAsk"
を強制すると堅牢だが、開発速度は落ちる。

permissions.disableBypassPermissionsMode

{
  "permissions": {
    "disableBypassPermissionsMode": "disable"
  }
}
項目内容
"disable"
または未設定
変えるべき時
--dangerously-skip-permissions
の使用を組織的に禁止したい

判断基準: Managed スコープ専用と考えてよい。セキュリティポリシーが厳しい組織では必須。個人開発では不要。

カテゴリ 3:サンドボックス設定

パーミッションの deny ルールが 10 個を超えたら、サンドボックスの方が管理しやすい。

sandbox.enabled

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true
  }
}
項目内容
boolean
デフォルト
false
変えるべき時deny ルールでは追いつかないセキュリティ要件がある

判断基準: macOS では Apple Seatbelt、Linux では Landlock を使う OS レベルのサンドボックス。有効にすると、Claude のコマンド実行がサンドボックス内に制限される。

autoAllowBashIfSandboxed: true
にすると、サンドボックス内の Bash コマンドは確認なしで実行される。

sandbox.filesystem

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

パスプレフィックスの意味:

プレフィックス意味
//
絶対パス
//tmp/build
/tmp/build
~/
ホームディレクトリ
~/.kube
/
設定ファイルからの相対パス
/build

sandbox.network

{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "registry.yarnpkg.com"],
      "allowLocalBinding": true
    }
  }
}
項目内容
allowedDomains
許可するドメイン(ワイルドカード対応)
allowLocalBinding
ローカルポートバインドの許可

判断基準: ネットワーク制限は強力だが、設定漏れで

npm install
git clone
が失敗する。まず
allowedDomains
を広めに設定し、段階的に絞る。

カテゴリ 4:Hooks 設定

ツール実行の前後にカスタム処理を挟む仕組み。自動化のキーポイント。

基本構造

{
  "hooks": {
    "イベント名": [
      {
        "matcher": "ツール名パターン",
        "hooks": [
          {
            "type": "command",
            "command": "実行するコマンド"
          }
        ]
      }
    ]
  }
}

主要イベント一覧

イベント発火タイミングmatcher 対象主な用途
SessionStart
セッション開始時
startup
,
resume
,
clear
,
compact
初期化、コンテキスト再注入
PreToolUse
ツール実行前ツール名危険操作のブロック
PostToolUse
ツール実行後(成功)ツール名自動フォーマット、通知
Notification
通知発生時
permission_prompt
,
idle_prompt
,
auth_success
デスクトップ通知
Stop
応答完了時なしタスク完了チェック
UserPromptSubmit
プロンプト送信時なし入力バリデーション
ConfigChange
設定変更時
user_settings
,
project_settings
設定変更の監査

Hook の type

type動作ユースケース
command
シェルコマンド実行フォーマッター実行、通知送信
http
HTTP POST外部サービス連携、Slack 通知
prompt
単一ターン LLM 評価コード品質チェック
agent
マルチターン検証テスト実行、複合的な検証

実践例:自動フォーマット

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write 2>/dev/null || true"
          }
        ]
      }
    ]
  }
}

判断基準: PostToolUse で Prettier を走らせると、Claude が編集するたびに自動フォーマットされる。レビュー時のフォーマット差分が解消される。ただし、大量のファイルを連続編集するタスクではフック実行のレイテンシが加算されるため、体感で遅く感じることがある。

実践例:デスクトップ通知(macOS)

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

実践例:コンテキスト圧縮後のリマインダー

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "compact",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'Reminder: Use Bun, not npm. Run bun test before committing.'"
          }
        ]
      }
    ]
  }
}

判断基準: 長時間作業でコンテキスト圧縮が発生すると、初期の指示が失われることがある。

compact
マッチャーで再注入すると、この問題を防げる。

終了コードの意味

Hook スクリプトの終了コードで Claude の動作を制御できる。ただし イベントによってブロック可否が異なる 点に注意。

コード効果
0
処理を続行。stdout は JSON として解析される(
UserPromptSubmit
SessionStart
のみ Claude のコンテキストに追加。他は verbose モードで表示)
2
ブロック可能なイベントでは処理をブロック。stderr が Claude にフィードバックされる
その他処理を続行。stderr は verbose モード(Ctrl+O)で表示されるのみ

exit 2 でブロックできるイベント:

PreToolUse
PermissionRequest
UserPromptSubmit
Stop
SubagentStop
ConfigChange

exit 2 でもブロックできないイベント:

PostToolUse
(既に実行済み)、
Notification
SessionStart
SessionEnd
など。これらでは stderr が表示されるのみ。
#!/bin/bash
# PreToolUse フックの例:危険なコマンドをブロック
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')

if echo "$COMMAND" | grep -qE "drop table|truncate|rm -rf /"; then
  echo "Blocked: destructive command detected" >&2
  exit 2  # ブロック
fi

exit 0  # 許可

disableAllHooks / allowManagedHooksOnly

{
  "disableAllHooks": false,
  "allowManagedHooksOnly": false
}

判断基準:

disableAllHooks
はデバッグ時に一時的に使う。
allowManagedHooksOnly
は Managed スコープ専用で、IT 管理者が承認した Hook のみ許可する。

カテゴリ 5:MCP サーバー設定

MCP(Model Context Protocol)サーバーの管理に関する設定。

enableAllProjectMcpServers

{
  "enableAllProjectMcpServers": true
}
項目内容
boolean
デフォルト
false
変えるべき時
.mcp.json
のサーバーを毎回確認プロンプトなしで有効化したい

判断基準: 信頼できるリポジトリでのみ

true
にする。不明なリポジトリを clone して
true
になっていると、悪意あるMCPサーバーが自動起動するリスクがある。

allowedMcpServers / deniedMcpServers

{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverUrl": "https://mcp.company.com/*" },
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] }
  ],
  "deniedMcpServers": [
    { "serverName": "dangerous-server" }
  ]
}

3 つのマッチ方法がある。

方法対象
serverName
サーバー名
"github"
serverUrl
リモートサーバー URL
"https://*.company.com/*"
serverCommand
stdio サーバーの起動コマンド
["npx", "-y", "package"]

判断基準: Managed スコープに入れると、組織で許可された MCP サーバーのみ使用可能になる。

serverCommand
完全一致なので、引数の順序まで正確に書く必要がある。

カテゴリ 6:UI・表示設定

使い勝手の微調整。優先度は低いが、長時間使うなら設定する価値がある。

キーデフォルト説明
showTurnDuration
boolean
true
各ターンの所要時間を表示
spinnerTipsEnabled
boolean
true
ローディング中のヒント表示
terminalProgressBarEnabled
boolean
true
プログレスバー表示
prefersReducedMotion
boolean
false
アニメーション削減
respectGitignore
boolean
true
@
ピッカーで
.gitignore
を尊重
{
  "showTurnDuration": true,
  "prefersReducedMotion": false,
  "respectGitignore": true
}

判断基準: 大半のケースでデフォルト値のまま十分に機能する。

respectGitignore: false
にすると
node_modules
内のファイルも
@
で参照できるが、ノイズが増えるので非推奨。

statusLine

{
  "statusLine": {
    "type": "command",
    "command": "echo \"branch: $(git branch --show-current) | cost: $CLAUDE_SESSION_COST\""
  }
}

判断基準: ステータスラインに Git ブランチやセッションコストを表示できる。長時間セッションでコスト管理したいなら設定する価値がある。

カテゴリ 7:認証・クラウドプロバイダー設定

{
  "forceLoginMethod": "console",
  "forceLoginOrgUUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
キー説明
forceLoginMethod
"claudeai"
または
"console"
でログイン方式を制限
forceLoginOrgUUID
組織 UUID を自動選択(複数組織に所属する場合)
awsAuthRefresh
AWS SSO のリフレッシュコマンド

判断基準: 組織で API Console を使う場合は

"console"
を Managed スコープに設定。個人の Claude Pro/Max サブスクリプションなら不要。

カテゴリ 8:高度な設定

attribution

{
  "attribution": {
    "commit": "",
    "pr": ""
  }
}

判断基準: コミットメッセージや PR に

Co-Authored-By: Claude
を付けるかどうか。空文字を設定すると帰属表示が消える。チームポリシーに従う。

alwaysThinkingEnabled

{
  "alwaysThinkingEnabled": true
}

判断基準: 拡張思考(Extended Thinking)をデフォルトで有効化する。複雑なタスクでは推論品質が上がるが、簡単なタスクではレイテンシが増える。Option+T でトグルもできるので、デフォルト有効にしておいて問題ない。

plansDirectory

{
  "plansDirectory": "./plans"
}

判断基準: Plan モードで生成される計画ファイルの保存先。デフォルトは

./plans
。チームでレビューする場合は git 管理下のディレクトリに設定する。

teammateMode

{
  "teammateMode": "auto"
}
動作
"auto"
環境に応じて自動選択
"in-process"
同一プロセス内でエージェントチーム実行
"tmux"
tmux セッションで並列実行

判断基準: エージェントチーム(

CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
)を使う場合のみ関係する。tmux がインストール済みなら
"tmux"
の方が視覚的にわかりやすい。

主要な環境変数クイックリファレンス

settings.json
env
セクションか、シェルで設定する。現場で特に使用頻度が高いものを厳選した。

モデル・出力制御

変数デフォルト用途
ANTHROPIC_MODEL
-デフォルトモデルの上書き
CLAUDE_CODE_MAX_OUTPUT_TOKENS
32000
最大出力トークン(上限
64000
。長い生成物が切れる場合に増やす)
CLAUDE_CODE_EFFORT_LEVEL
"high"
推論レベル(
"low"
,
"medium"
,
"high"
CLAUDE_CODE_SUBAGENT_MODEL
-サブエージェントのモデル上書き

Bash 制御

変数デフォルト用途
BASH_DEFAULT_TIMEOUT_MS
120000
Bash コマンドのデフォルトタイムアウト
BASH_MAX_TIMEOUT_MS
600000
Bash コマンドの最大タイムアウト
BASH_MAX_OUTPUT_LENGTH
-出力の最大文字数

機能フラグ

変数デフォルト用途
CLAUDE_CODE_DISABLE_AUTO_MEMORY
0
自動メモリ無効化
CLAUDE_CODE_DISABLE_FAST_MODE
-Fast モード無効化
CLAUDE_CODE_SIMPLE
0
最小モード(Bash・ファイルツールのみ)
ENABLE_TOOL_SEARCH
"auto"
MCP ツール検索(
"auto:5"
で閾値変更可)

プライバシー

変数デフォルト用途
DISABLE_TELEMETRY
0
テレメトリのオプトアウト
DISABLE_ERROR_REPORTING
0
Sentry エラー報告のオプトアウト
CLAUDE_CODE_HIDE_ACCOUNT_INFO
0
UI でのメール・組織情報を非表示
DISABLE_COST_WARNINGS
0
コスト警告を無効化

クラウドプロバイダー

変数用途
CLAUDE_CODE_USE_BEDROCK
AWS Bedrock を有効化
CLAUDE_CODE_USE_VERTEX
Google Vertex AI を有効化
CLAUDE_CODE_USE_FOUNDRY
Foundry を有効化
ANTHROPIC_API_KEY
Anthropic API キー

判断基準: 環境変数と

settings.json
の使い分けは明確にする。永続的に設定したい項目は settings.json の env

一時的に切り替えたい項目はシェルで設定する。

現場でハマる罠と対策

罠 1:deny ルールが「効かない」

症状:

deny
Read(./.env)
を入れたのに、Claude が
.env
の内容を読んでいる。

原因: Claude が絶対パスでアクセスしている。

./.env
は相対パスのルールなので、
//Users/me/project/.env
にはマッチしない。

対策: 両方のパターンを deny に入れる。

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(//.env)",
      "Read(//.env.*)"
    ]
  }
}

罠 2:Hook が発火しない

症状:

PostToolUse
Hook を設定したが、何も起きない。

原因: 以下のいずれか。

  • matcher
    のツール名が間違っている(大文字小文字は区別される)
  • Hook スクリプトに実行権限がない
  • disableAllHooks: true
    が上位スコープで設定されている

対策:

claude --debug
で起動すると、Hook の発火状況が詳細に表示される。
claude --debug
# Hook の実行ログが出力される

罠 3:スコープの優先順位を誤解する

症状: User スコープの

allow
で許可したのに、Project スコープの
deny
で拒否される。

原因: これは正しい動作。deny は最優先で評価される。

対策: 設定の意図を理解する。deny はどのスコープに書いても最優先。「Project で deny しているが自分だけ allow したい」場合は、Local スコープ(

.claude/settings.local.json
)に allow を書いても効かない。deny を解除するしかない。

罠 4:MCP サーバーが起動しない

症状:

.mcp.json
にサーバーを追加したが、利用できない。

原因:

enableAllProjectMcpServers
false
(デフォルト)で、明示的な承認が必要。

対策: Claude Code 内で

/mcp
コマンドを実行し、サーバーを有効化する。信頼できるプロジェクトなら
enableAllProjectMcpServers: true
を検討する。

インタラクティブコマンドで設定を管理する

settings.json
を直接編集するだけでなく、Claude Code の REPL 内でインタラクティブに設定を変更できる。
コマンド説明
/config
設定 TUI(テキスト UI)を開く
/permissions
パーミッション管理インターフェース
/hooks
フック設定メニュー
/mcp
MCP サーバーの状態確認・認証
/allowed-tools add Edit
ツール権限をその場で追加

判断基準: 初回の設計は

settings.json
を直接書く方が効率的。運用中の微調整は
/config
/permissions
の方が手早い。

チーム導入:最初の 3 ステップ

チームに Claude Code の設定を導入する場合、以下のステップで段階的に進める。

  • Project スコープの— deny ルール(
    settings.json
    をリポジトリに入れる
    .env
    保護)と PostToolUse Hook(フォーマッター)を最低限設定し、
    git commit
    する
  • User スコープの推奨テンプレートを共有する— Wiki やオンボーディングドキュメントに
    ~/.claude/settings.json
    のサンプルを載せる。強制ではなく推奨として配布する
  • 20 人を超えたら Managed スコープを検討する
    disableBypassPermissionsMode
    allowedMcpServers
    など、個人で解除できない組織ポリシーが必要になるタイミングが来る

まとめ:最初に設定する 5 つの項目

設定項目は多いが、最初に触るべきはこの 5 つに絞れる。

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "language": "japanese",
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)"
    ],
    "allow": [
      "Bash(npm run *)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Bash(git status)"
    ]
  }
}
  • — エディタ補完を有効化。設定ミスの半分を防ぐ
    $schema
  • — 応答言語を固定
    language
  • — 秘密情報の保護。最優先で設定する
    deny
  • — 安全なコマンドの確認スキップ。日常の摩擦を減らす
    allow
  • Hook(PostToolUse → フォーマッター)— 自動フォーマットでレビュー品質を上げる

残りは「痛みが出てから追加する」で十分。設定は増やすより減らす方が難しい。

参考リンク

GitHubで編集を提案