はじめに
Claude Codeをインストールして認証を完了したら、次のステップはプロジェクトに最適化した設定を構築することです。適切な初期設定を行うことで、Claude Codeはプロジェクトの規約やワークフローを理解し、より効率的な開発支援が可能になります。
本記事では、Claude Codeの設定システムの全体像を解説し、CLAUDE.mdファイルによるメモリ管理、settings.jsonによる詳細設定、パーミッションの構成方法を実践的に解説します。この記事を読むことで、以下のことができるようになります。
- CLAUDE.mdファイルを作成し、プロジェクト固有の指示を効果的に記述する
- settings.jsonで権限やツールの動作をカスタマイズする
- 個人設定とチーム共有設定を適切に使い分ける
- セキュリティを考慮したパーミッション設定を構築する
実行環境
- オペレーティングシステム: macOS 10.15以上、Ubuntu 20.04以上/Debian 10以上、Windows 10以上(WSL 1/2またはGit for Windows)
- ハードウェア: 4GB以上のRAM
- Node.js 18以上(npmインストールの場合のみ必要)
- インターネット接続(認証およびAI処理に必要)
- シェル環境: Bash、Zsh、またはFish推奨
前提条件
- コマンドライン操作の基礎知識
- Gitの基本操作(clone、commit、push等)
- プログラミングの基礎知識(言語は問わない)
- Claude.aiまたはAnthropic Consoleアカウント
- Claude Codeのインストールと認証が完了していること
Claude Codeの設定体系
Claude Codeは階層的な設定システムを採用しており、組織全体から個人レベルまで、さまざまなスコープで設定を管理できます。
設定スコープの全体像
Claude Codeの設定には4つのスコープがあり、それぞれ異なる目的と適用範囲を持っています。
| スコープ | 設定ファイルの場所 | 適用範囲 | Git管理 |
|---|---|---|---|
| Managed | システムディレクトリのmanaged-settings.json | マシン上のすべてのユーザー | IT部門が管理 |
| User | ~/.claude/ディレクトリ | すべてのプロジェクトで有効 | しない |
| Project | .claude/ディレクトリ | リポジトリの全コラボレーター | する |
| Local | .claude/*.local.*ファイル | このリポジトリでの自分のみ | しない(自動でgitignore) |
設定の優先順位
複数のスコープで同じ設定が存在する場合、より具体的なスコープが優先されます。
flowchart TD
A[Managed設定] --> B[コマンドライン引数]
B --> C[Local設定]
C --> D[Project設定]
D --> E[User設定]
A -.- A1[最高優先度 - 上書き不可]
E -.- E1[最低優先度 - 他で指定がない場合に適用]例えば、User設定でBash(npm run:*)を許可していても、Project設定で拒否されていれば、Project設定が優先されてコマンドはブロックされます。
CLAUDE.mdによるメモリ管理
CLAUDE.mdは、Claude Codeに対するプロジェクト固有の指示や情報を記述するMarkdownファイルです。Claude Codeは起動時にこのファイルを読み込み、セッション全体を通じてその内容を参照します。
CLAUDE.mdファイルの種類と配置場所
CLAUDE.mdファイルは複数の場所に配置でき、それぞれ異なる目的で使用します。
| 種類 | 配置場所 | 用途 | 共有範囲 |
|---|---|---|---|
| エンタープライズポリシー | /Library/Application Support/ClaudeCode/CLAUDE.md (macOS) | 組織全体の標準 | 組織全体 |
| プロジェクトメモリ | ./CLAUDE.md または ./.claude/CLAUDE.md | チーム共有の指示 | ソース管理経由でチーム |
| プロジェクトルール | ./.claude/rules/*.md | モジュール化された指示 | ソース管理経由でチーム |
| ユーザーメモリ | ~/.claude/CLAUDE.md | 個人の好み(全プロジェクト) | 自分のみ |
| ローカルメモリ | ./CLAUDE.local.md | 個人のプロジェクト固有設定 | 自分のみ |
CLAUDE.local.mdは自動的に.gitignoreに追加されるため、個人的な設定をバージョン管理から除外できます。
/initコマンドでCLAUDE.mdを生成する
新しいプロジェクトでCLAUDE.mdを作成する最も簡単な方法は、/initコマンドを使用することです。
|
|
Claude Codeが起動したら、以下のコマンドを実行します。
|
|
/initコマンドは、プロジェクトの構造を分析し、適切なCLAUDE.mdのテンプレートを自動生成します。生成されたファイルは必要に応じて編集してください。
効果的なCLAUDE.mdの記述方法
CLAUDE.mdには、プロジェクトの概要、コーディング規約、よく使うコマンドなどを記述します。以下は実践的な記述例です。
|
|
重要な注意事項
- 環境変数は.env.localで管理し、絶対にコミットしない
- APIエンドポイントは/src/lib/api.tsで一元管理する
- エラーハンドリングはErrorBoundaryを使用する
### CLAUDE.mdのベストプラクティス
効果的なCLAUDE.mdを作成するためのポイントを紹介します。
**具体的に記述する**
曖昧な指示よりも具体的な指示の方が効果的です。
~~~markdown
<!-- 悪い例 -->
- コードを適切にフォーマットする
<!-- 良い例 -->
- インデントは2スペースを使用する
- 行末のセミコロンは省略しない
- オブジェクトの最後のプロパティにもカンマを付ける
構造化して整理する
関連する情報はMarkdownの見出しでグループ化します。
|
|
定期的に更新する
プロジェクトの進化に合わせてCLAUDE.mdも更新し、常に最新の情報を反映させます。
@インポート構文による外部ファイルの参照
CLAUDE.mdでは@path/to/file構文を使って外部ファイルをインポートできます。
|
|
相対パスと絶対パスの両方が使用でき、ホームディレクトリからのパスも指定できます。
|
|
インポートは最大5階層まで再帰的に解決されます。現在読み込まれているメモリファイルは/memoryコマンドで確認できます。
.claude/rules/によるモジュール化
大規模なプロジェクトでは、CLAUDE.mdを1つの大きなファイルにするのではなく、.claude/rules/ディレクトリで複数のファイルに分割できます。
|
|
.claude/rules/内のすべての.mdファイルは自動的にプロジェクトメモリとして読み込まれます。
パス固有のルール
YAMLフロントマターでpathsフィールドを指定すると、特定のファイルパターンにのみ適用されるルールを定義できます。
|
|
複数のパターンを指定することも可能です。
|
|
settings.jsonによる詳細設定
settings.jsonは、Claude Codeの動作を詳細にカスタマイズするためのJSON形式の設定ファイルです。パーミッション、環境変数、ツールの動作などを制御できます。
settings.jsonファイルの配置場所
settings.jsonは複数の場所に配置でき、それぞれ異なるスコープで適用されます。
| スコープ | ファイルパス | 用途 |
|---|---|---|
| User | ~/.claude/settings.json | 全プロジェクトで有効な個人設定 |
| Project | .claude/settings.json | チーム共有のプロジェクト設定 |
| Local | .claude/settings.local.json | 個人的なプロジェクト設定(Git管理外) |
| Managed | /Library/Application Support/ClaudeCode/managed-settings.json (macOS) | IT部門による組織設定 |
基本的なsettings.jsonの構造
以下は、settings.jsonの基本的な構造と代表的な設定項目です。
|
|
主要な設定項目
settings.jsonで設定できる主要な項目を解説します。
| 設定項目 | 説明 | 例 |
|---|---|---|
| permissions | ツール使用の許可/拒否ルール | 後述 |
| env | セッションに適用する環境変数 | {"FOO": "bar"} |
| model | デフォルトで使用するモデル | "claude-sonnet-4-5-20250929" |
| language | Claudeの応答言語 | "japanese" |
| cleanupPeriodDays | 非アクティブセッションの削除期間 | 20 |
| attribution | Git commit/PRの帰属表示設定 | 後述 |
| hooks | ツール実行前後のカスタムコマンド | 後述 |
環境変数の設定
envフィールドを使用すると、すべてのClaude Codeセッションに環境変数を自動適用できます。
|
|
チーム全体で共通の環境変数を設定したい場合は、Project設定(.claude/settings.json)に記述します。
言語設定
Claude Codeの応答言語を設定できます。日本語で応答させたい場合は以下のように設定します。
|
|
帰属表示(Attribution)の設定
Claude Codeは、GitコミットやPull Requestに帰属表示を追加します。この動作をカスタマイズできます。
|
|
帰属表示を無効にする場合は、空文字列を設定します。
|
|
パーミッション設定
パーミッション設定は、Claude Codeがどのツールやファイルにアクセスできるかを制御する重要な設定です。
パーミッションルールの構造
パーミッションはallow、ask、denyの3種類のルールで構成されます。
| ルール | 動作 |
|---|---|
| allow | 確認なしで自動的に許可 |
| ask | 実行前に確認を求める |
| deny | 完全にブロック |
|
|
ツール別のパーミッション設定
Claude Codeの各ツールに対してパーミッションを設定できます。
Bashコマンド
|
|
Bashルールはプレフィックスマッチングを使用します。Bash(npm run:*)はnpm runで始まるすべてのコマンドにマッチします。
ファイル読み取り(Read)
|
|
ファイル編集(Edit)/書き込み(Write)
|
|
Web取得(WebFetch)
|
|
機密ファイルの保護
セキュリティ上重要なファイルはdenyルールで保護することを推奨します。
|
|
これらのパターンにマッチするファイルは、Claude Codeから完全に見えなくなり、機密情報の漏洩を防止できます。
デフォルトモードの設定
Claude Codeの起動時のデフォルトモードを設定できます。
|
|
利用可能なモードは以下の通りです。
| モード | 説明 |
|---|---|
| plan | 読み取り専用(Plan Mode) |
| acceptEdits | 編集を個別確認(Accept Mode) |
| bypassPermissions | 自動承認(Auto-Accept Mode) |
追加の作業ディレクトリ
デフォルトでは、Claude Codeは現在の作業ディレクトリ内のファイルにのみアクセスできます。追加のディレクトリへのアクセスを許可するには、additionalDirectoriesを設定します。
|
|
/allowedコマンドによる権限管理
Claude Codeセッション中に/allowed(または/allowed-tools)コマンドを使用すると、現在の権限設定を対話的に確認・変更できます。
|
|
このコマンドで追加された権限は、対応するsettings.jsonファイルに永続化されます。
サンドボックス設定
Claude Codeには、Bashコマンドをサンドボックス環境で実行する機能があります。これにより、ファイルシステムやネットワークへの意図しないアクセスを防止できます。
|
|
| 設定項目 | 説明 | デフォルト |
|---|---|---|
| enabled | サンドボックスを有効化 | false |
| autoAllowBashIfSandboxed | サンドボックス内のBashコマンドを自動承認 | true |
| excludedCommands | サンドボックス外で実行するコマンド | [] |
サンドボックス機能はmacOSとLinuxでのみ利用可能です。
/configコマンドによる設定管理
Claude Codeセッション中に/configコマンドを実行すると、設定インターフェースが開きます。
|
|
このインターフェースでは、以下の操作が可能です。
- 現在の設定状態の確認
- モデルの切り替え
- 拡張思考モードの有効化/無効化
- その他の設定オプションの変更
/memoryコマンドによるメモリ編集
/memoryコマンドを使用すると、システムエディタでCLAUDE.mdファイルを直接編集できます。
|
|
編集後、ファイルを保存して閉じると、変更がセッションに反映されます。
設定のユースケース別推奨構成
個人開発プロジェクト
個人開発では、User設定に基本的な好みを設定し、プロジェクト固有の設定はLocal設定に記述します。
~/.claude/settings.json(User設定)
|
|
~/.claude/CLAUDE.md(User CLAUDE.md)
|
|
チーム開発プロジェクト
チーム開発では、Project設定をGitで共有し、チーム全体で統一された開発体験を提供します。
.claude/settings.json(Project設定)
|
|
.claude/CLAUDE.md(Project CLAUDE.md)
|
|
エンタープライズ環境
組織全体でセキュリティポリシーを強制する場合は、Managed設定を使用します。
/Library/Application Support/ClaudeCode/managed-settings.json(macOS)
|
|
Managed設定はIT部門がシステムディレクトリに配置し、ユーザーやプロジェクト設定で上書きできません。
トラブルシューティング
設定が反映されない場合
設定が期待通りに動作しない場合は、以下を確認してください。
- ファイルの配置場所: settings.jsonやCLAUDE.mdが正しいパスに配置されているか確認
- JSON構文エラー: settings.jsonに構文エラーがないか確認
- スコープの優先順位: より高い優先度のスコープで上書きされていないか確認
- Claude Codeの再起動: 設定変更後はClaude Codeを再起動
現在の設定を確認する
/configコマンドで現在の設定状態を確認できます。
|
|
読み込まれているメモリファイルは/memoryコマンドで確認できます。
|
|
設定ファイルの完全リセット
設定を完全にリセットする場合は、以下のファイルを削除します。
|
|
まとめ
本記事では、Claude Codeの初期設定について、CLAUDE.mdによるメモリ管理とsettings.jsonによる詳細設定を解説しました。
適切な設定を行うことで、Claude Codeはプロジェクトの文脈を理解し、チームの規約に沿った提案ができるようになります。特に以下のポイントを押さえておくことが重要です。
- CLAUDE.mdはプロジェクトの概要、規約、よく使うコマンドを記述し、Claude Codeにコンテキストを与える
- settings.jsonでパーミッション、環境変数、ツールの動作を細かく制御する
- スコープの使い分けにより、個人設定とチーム設定を適切に管理する
- 機密ファイルの保護をdenyルールで設定し、セキュリティを確保する
次のステップとして、Claude Codeの基本操作を学び、実際の開発タスクでの活用を始めてみてください。