Settings.json と Permissions の詳細
重要キーワード
Settings.json: Claude Code の中央管制
.claude/settings.json (プロジェクト用) と ~/.claude/settings.json (グローバル) で
Claude Code のあらゆる挙動を設定できます。
階層と優先順位
wzxhzdk:0
下の階層が上書き優先。API キーやトークンは local に書くのが安全。
主なトップレベル項目
wzxhzdk:1
Permissions の書き方
ツールごとに allow / ask / deny をルールで指定できます。
wzxhzdk:2
マッチャ構文
Read(*)... 任意の引数で許可Bash(pytest *)... 引数のプレフィックスマッチEdit(.env)... 完全一致
移行戦略
- 最初は
askを多めに → 慣れたらallowに移す - 危険操作は 常に deny に固定 (
rm -rf,git push --force,.env編集)
Statusline をカスタマイズ
wzxhzdk:0
ブランチ名や残トークンなどを常時表示できます。
env で環境変数を固定
セッション内で常時有効な環境変数。秘匿情報は 絶対に書かない こと (commit 漏れ事故を防ぐ)。
Plugin
カスタムスキル + コマンド + MCP を 1 パッケージで配布できる仕組み。
wzxhzdk:1
設定の確認
wzxhzdk:2
よくある失敗
- ❌
settings.jsonに API キーを書いて commit - ❌
allowでBash(*)を許可してしまう (危険) - ❌
denyを使わず権限制御を諦める - ✅
settings.jsonは チームで共有する固定ルール,settings.local.jsonで個別設定
試す
設定の改善案を Claude に提案させましょう。
次の `.claude/settings.json` の安全性を評価してください。問題点と改善案を箇条書きで。
```json
{
"permissions": {
"allow": ["Bash(*)", "Edit(*)"],
"deny": []
}
}
```チーム標準 settings.json テンプレ (コピペ用)
新規プロジェクトに置く デフォルト として:
wzxhzdk:2
→ 読み取りはほぼ自由 / 編集は対象ディレクトリだけ / 危険コマンドと秘密ファイルは絶対 deny。 新人がリポジトリを clone してすぐ Claude Code を使い始めても安全。
個人 (settings.local.json) のテンプレ
.gitignore に settings.local.json を必ず追加してから:
wzxhzdk:3
→ 個人の API キー・好みの追加コマンドはここに。チーム共有 settings.json と統合される。
演習: 安全な permissions 雛形を書く
Python プロジェクト用に、安全で実用的な .claude/settings.json を作成してください。
要件:
- Read / Glob / Grep / Edit (一般ファイル) は allow
- pytest, ruff, git status/diff/log は allow
- git push, git commit -a は ask
- rm -rf, .env 編集, curl/wget は deny
まとめ
お疲れ様でした!