Claude Code の設定
グローバル設定、プロジェクトレベルの設定、テーマ、環境変数を使用してClaude Codeを設定する方法を学びます。
Claude Codeは、ニーズに合わせて動作を設定するための様々な設定オプションを提供しています。ターミナルでclaude config
を実行するか、対話型REPLを使用する際に/config
コマンドを使用してClaude Codeを設定できます。
設定の階層構造
新しいsettings.json
ファイルは、階層的な設定を通じてClaude Codeを設定する公式のメカニズムです。
ユーザー設定は~/.claude/settings.json
で定義され、すべてのプロジェクトに適用されます。
プロジェクト設定は、共有設定用の.claude/settings.json
と、ローカルプロジェクト設定用の.claude/settings.local.json
の下のプロジェクトディレクトリに保存されます。Claude Codeは作成時に.claude/settings.local.json
を無視するようにgitを設定します。
Claude Codeのエンタープライズ導入では、エンタープライズ管理ポリシー設定もサポートしています。これらはユーザーとプロジェクトの設定よりも優先されます。システム管理者は、macOSでは/Library/Application Support/ClaudeCode/policies.json
に、LinuxとWSL上のWindowsでは/etc/claude-code/policies.json
にポリシーを展開できます。
設定の優先順位
設定は優先順位の順に適用され、後のソースが前のソースを上書きします:
- ユーザー設定
- 共有プロジェクト設定
- ローカルプロジェクト設定
- コマンドライン引数
- エンタープライズポリシー
設定オプション
Claude Codeはグローバルとプロジェクトレベルの設定をサポートしています。
設定を管理するには、以下のコマンドを使用します:
- 設定の一覧表示:
claude config list
- 設定の表示:
claude config get <key>
- 設定の変更:
claude config set <key> <value>
- 設定への追加(リスト用):
claude config add <key> <value>
- 設定からの削除(リスト用):
claude config remove <key> <value>
デフォルトではconfig
はプロジェクト設定を変更します。グローバル設定を管理するには、--global
(または-g
)フラグを使用します。
グローバル設定
グローバル設定を設定するには、claude config set -g <key> <value>
を使用します:
キー | 値 | 説明 |
---|---|---|
autoUpdaterStatus | disabled またはenabled | 自動更新を有効または無効にする(デフォルト:enabled ) |
env | JSON(例:'{"FOO": "bar"}' ) | すべてのセッションに適用される環境変数 |
preferredNotifChannel | iterm2 、iterm2_with_bell 、terminal_bell 、またはnotifications_disabled | 通知を受け取る場所(デフォルト:iterm2 ) |
theme | dark 、light 、light-daltonized 、またはdark-daltonized | カラーテーマ |
verbose | true またはfalse | bashとコマンドの完全な出力を表示するかどうか(デフォルト:false ) |
プロジェクト設定
プロジェクト設定を管理するには、claude config set <key> <value>
を使用します(-g
フラグなし):
キー | 値 | 説明 |
---|---|---|
allowedTools | ツールの配列 | 手動承認なしで実行できるツール |
ignorePatterns | glob文字列の配列 | ツール使用時に無視されるファイル/ディレクトリ |
例:
権限
Claude Codeのツール権限は/allowed-tools
で管理できます。このUIは、すべての権限ルールとそれらが由来するsettings.jsonファイルを一覧表示します。
- 許可ルールは、Claude Codeが指定されたツールを追加の手動承認なしで使用することを許可します。
- 拒否ルールは、Claude Codeが指定されたツールを使用することを防ぎます。拒否ルールは許可ルールよりも優先されます。
権限ルールはTool(optional-specifier)
の形式を使用します。
例えば、WebFetch
を許可ルールのリストに追加すると、ユーザーの承認を必要とせずにウェブフェッチツールの使用が許可されます。Claudeが利用できるツールのリストを参照してください(括弧内の名前を使用してください)。
一部のツールは、より細かい権限制御のためにオプションの指定子を使用します。例えば、WebFetch(domain:example.com)
という許可ルールは、example.comへのフェッチは許可しますが、他のURLへのフェッチは許可しません。
Bashルールは、Bash(npm run build)
のような完全一致か、Bash(npm run test:*)
のように:*
で終わるプレフィックス一致が可能です。
Read()
とEdit()
ルールはgitignoreの仕様に従います。パターンは.claude/settings.json
を含むディレクトリからの相対パスで解決されます。絶対パスを参照するには//
を使用し、ホームディレクトリからの相対パスには~/
を使用します。例えばRead(//tmp/build_cache)
やEdit(~/.zshrc)
などです。Claudeは、Grep、Glob、LSなどの他のファイル関連ツールにもReadとEditルールを適用するよう最善の努力をします。
MCPツール名はmcp__server_name__tool_name
の形式に従います:
server_name
はClaude Codeで設定されたMCPサーバーの名前ですtool_name
はそのサーバーが提供する特定のツールです
その他の例:
ルール | 説明 |
---|---|
Bash(npm run build) | 正確なBashコマンドnpm run build に一致します。 |
Bash(npm run test:*) | npm run test で始まるBashコマンドに一致します。コマンドセパレータの処理に関する注意を参照してください。 |
Edit(~/.zshrc) | ~/.zshrc ファイルに一致します。 |
Read(node_modules/**) | 任意のnode_modules ディレクトリに一致します。 |
mcp__puppeteer__puppeteer_navigate | puppeteer MCPサーバーのpuppeteer_navigate ツールに一致します。 |
WebFetch(domain:example.com) | example.comへのフェッチリクエストに一致します |
Claude Codeはコマンドセパレータ(&&
など)を認識するため、Bash(safe-cmd:*)
のようなプレフィックス一致ルールでは、safe-cmd && other-cmd
のようなコマンドを実行する権限は与えられません。
自動更新の権限オプション
Claude Codeがグローバルnpmプレフィックスディレクトリ(自動更新に必要)への書き込み権限が不足していることを検出した場合、このドキュメントページを指す警告が表示されます。自動更新の問題に関する詳細な解決策については、トラブルシューティングガイドを参照してください。
推奨:新しいユーザー書き込み可能なnpmプレフィックスを作成する
このオプションを推奨する理由:
- システムディレクトリの権限を変更する必要がない
- グローバルnpmパッケージ用の専用の場所を作成
- セキュリティのベストプラクティスに従う
Claude Codeは活発に開発が進められているため、上記の推奨オプションを使用して自動更新を設定することをお勧めします。
自動更新の無効化
権限の問題を修正する代わりに自動更新を無効にしたい場合は、以下のコマンドを使用できます:
ターミナル設定の最適化
Claude Codeは、ターミナルが適切に設定されている場合に最も効果的に動作します。以下のガイドラインに従って、使用体験を最適化してください。
サポートされているシェル:
- Bash
- Zsh
- Fish
テーマと外観
Claudeはターミナルのテーマを制御できません。それはターミナルアプリケーションによって処理されます。オンボーディング時または/config
コマンドを使用して、いつでもClaude Codeのテーマをターミナルに合わせることができます。
改行
Claude Codeに改行を入力するには、いくつかのオプションがあります:
- クイックエスケープ:
\
に続いてEnterを押して改行を作成 - キーボードショートカット:適切な設定でOption+Enter(Meta+Enter)を押す
Option+Enterをターミナルで設定するには:
Mac Terminal.appの場合:
- 設定 → プロファイル → キーボードを開く
- 「Optionをメタキーとして使用」をチェック
iTerm2とVSCodeターミナルの場合:
- 設定 → プロファイル → キーを開く
- 一般の下で、左/右Optionキーを「Esc+」に設定
iTerm2とVSCodeユーザーへのヒント:より直感的な代替手段として、Claude Code内で/terminal-setup
を実行してShift+Enterを自動的に設定できます。
通知の設定
適切な通知設定で、Claudeがタスクを完了したときを見逃さないようにします:
ターミナルベルの通知
タスク完了時のサウンドアラートを有効にする:
macOSユーザーの場合:システム設定 → 通知 → [使用中のターミナルアプリ]で通知権限を有効にすることを忘れないでください。
iTerm 2のシステム通知
タスク完了時のiTerm 2アラートの設定:
- iTerm 2の環境設定を開く
- プロファイル → ターミナルに移動
- 「ベルを無音にする」と「アイドル時に通知を送信」を有効にする
- 希望する通知遅延を設定
これらの通知はiTerm 2に特有のもので、デフォルトのmacOSターミナルでは利用できないことに注意してください。
大量の入力の処理
広範なコードや長い指示を扱う場合:
- 直接の貼り付けを避ける:Claude Codeは非常に長い貼り付けられたコンテンツを処理するのが困難な場合があります
- ファイルベースのワークフローを使用する:コンテンツをファイルに書き込み、Claudeに読み取りを依頼する
- VS Codeの制限に注意する:VS Codeのターミナルは特に長い貼り付けを切り詰める傾向があります
Vimモード
Claude Codeは、/vim
または/config
で有効にできるVimキーバインディングのサブセットをサポートしています。
サポートされているサブセットには以下が含まれます:
- モード切り替え:
Esc
(NORMALモードへ)、i
/I
、a
/A
、o
/O
(INSERTモードへ) - ナビゲーション:
h
/j
/k
/l
、w
/e
/b
、0
/$
/^
、gg
/G
- 編集:
x
、dw
/de
/db
/dd
/D
、cw
/ce
/cb
/cc
/C
、.
(繰り返し)
環境変数
Claude Codeは、その動作を制御するために以下の環境変数をサポートしています:
変数 | 目的 |
---|---|
DISABLE_AUTOUPDATER | 1 に設定すると自動更新を無効にします |
DISABLE_BUG_COMMAND | 1 に設定すると/bug コマンドを無効にします |
DISABLE_COST_WARNINGS | 1 に設定するとコスト警告メッセージを無効にします |
DISABLE_ERROR_REPORTING | 1 に設定するとSentryエラーレポートをオプトアウトします |
DISABLE_TELEMETRY | 1 に設定するとStatsigテレメトリをオプトアウトします(Statsigイベントにはコード、ファイルパス、bashコマンドなどのユーザーデータは含まれないことに注意) |
HTTP_PROXY | ネットワーク接続用のHTTPプロキシサーバーを指定します |
HTTPS_PROXY | ネットワーク接続用のHTTPSプロキシサーバーを指定します |
MCP_TIMEOUT | MCPサーバー起動のタイムアウト(ミリ秒) |
MCP_TOOL_TIMEOUT | MCPツール実行のタイムアウト(ミリ秒) |