機能概要
ここまでClaude Codeを動かして基本的な操作に慣れてきました。この章ではよりよくClaude Codeを活用するために、こまかい機能をひとつひとつ理解して、便利な機能を活用できるようになりましょう。 公式マニュアルのうち、必ず知っておくべき内容をわかりやすく抜粋してありますが、さらに詳細を知りたい場合は公式ドキュメントを参照してください。
Claude Code設定
設定ファイル (settings.json)
設定ファイル(settings.json)は、階層的な設定を通じてClaude Codeを設定するための仕組みです。
-
ユーザ設定
- 場所:
~/.claude/settings.json - ユーザ設定はすべてのプロジェクトに適用される個人のグローバル設定ファイルです
- 場所:
-
プロジェクト設定
- 場所:
.claude/settings.json - プロジェクトで共有する設定です、チェックイン対象
- 場所:
-
プロジェクト設定(ローカル)
- 場所:
.claude/settings.local.json - ローカルのみで有効な設 定。Claude Code起動時に
.gitignoreへ追加されますが、必要があれば除外対象に追加してください
- 場所:
-
エンタープライズ管理ポリシー設定(
managed-settings.json)- 場所: 詳細は公式ドキュメント参照
- MDMを用いて配布が可能なファイル
設定の優先順位
以下の優先順位で適用されます。設定はマージされ、より具体的な設定がより広範な設定に追加またはオーバーライドします。上位の設定は下位の設定をオーバーライドします。
- エンタープライズ管理ポリシー設定
- コマンドライン引数
- ローカルプロジェクト設定 (
.claude/settings.local.json) - 共有プロジェクト設定 (
.claude/settings.json) - ユーザ設定 (
~/.claude/settings.json)
利用可能な設定
settings.jsonは多数のオプションをサポートしています。
ここでは代表的な設定のみ解説します、詳細は公式ドキュメントを参照してください。
| キー | 説明 | 例 |
|---|---|---|
env | すべてのセッションに適用される環境変数 | {"FOO": "bar"} |
permissions | 権限の構造については下記の表参照 | |
hooks | ツール実行の前後に実行するコマンドを設定します。フックを参照 | {"PreToolUse": {"Bash": "echo 'Running command...'"}} |
model | Claude Codeで使用するデフォルトモデルをオーバーライドします | "claude-3-5-sonnet-20241022" |
権限設定
権限設定(公式ドキュメント)およびアイデンティティとアクセス管理(公式ドキュメント)を参照ください。
現在の設定の確認
現在反映されている設定は /config スラッシュコマンドで確認できます。
> /config
╭────────────────────────────────────────────────────────────────────────────────╮
│ Settings │
│ Configure Claude Code preferences │
│ │
│ ❯ Auto-compact true │
│ │
│ Use todo list true │
│ │
│ Verbose output false │
│ │
│ Auto-updates true │
│ │
│ Theme Dark mode (colorblind-friendly) │
│ │
│ Notifications Auto │
│ │
│ Output style default │
│ │
│ Editor mode normal │
│ │
│ Model Default (recommended) │
│ │
│ Diff tool auto │
│ │
│ Auto-connect to IDE (external terminal) true │
│ │
╰────────────────────────────────────────────────────────────────────────────────╯
ここで編集した設定はプロジェクト設定(.claude/settings.json)に保存されます。
メモリファイル (CLAUDE.md)
メモリファイル(CLAUDE.md)は、スタイルガイドラインやワークフローの一般的なコマンドなど、セッション間でユーザの指示を記憶することができます。
-
ユーザメモリ
- 場所:
~/.claude/CLAUDE.md - ユーザ設定はすべてのプロジェクトに適用される個人のグローバル設定ファイルです。コードスタイリング設定、個人ツールのショートカットなどの記憶に使えます
- 場所:
-
プロジェクトメモリ
- 場所:
./CLAUDE.mdor./.claude/CLAUDE.md - プロジェクトで共有する指示の記憶です、チェックイン対象。プロジェクトアーキテクチャ、コーディング標準、一般的なワークフローなどの指示の記憶に使えます
- 場所:
-
プロジェクトメモリ(ローカル)
- 場所:
./CLAUDE.local.md - ローカルのみで有効な記憶です。個人のプロジェクト固有設定に使えますが、チェックイン対象にならないように
.gitignoreに追加しておく必要があります。ただしCLAUDE.mdにはインポート機構が使えるため、個人設定はプロジェクト外で管理しインポートして利用することが推奨されています
- 場所:
すべてのメモリファイルは、Claude Code起動時に自動的にコンテキストに読み込まれます。
CLAUDE.mdのインポート機構
CLAUDE.mdファイル内で @path/to/import 構文を使用して追加ファイルをインポートできます。
プロジェクト概要については@READMEを、このプロジェクトで利用可能なnpmコマンドについては@package.jsonを参照してください。
# 追加指示
- gitワークフロー @docs/git-instructions.md
このファイルではインポート機構で3ファイルが読み込まれます。
この機構を利用してユーザのホームディレクトリからCLAUDE.local.md相当のファイルを読み込む方法が現在は推奨されています。
# 個人設定
- @~/.claude/my-project-instructions.md
また、潜在的な衝突を避けるため、markdownコードスパンとコードブロック内ではインポートは評価されないことにも注意が必要です。
このコードスパンはインポートとして扱われません:`@anthropic-ai/claude-code`
インポートされたファイルは追加ファイルを再帰的にインポートでき、最大深度は5ホップです。/memoryコマンドはメモリファイル編集用のスラッシュコマンドですが、どのメモリファイルが読み込まれているかを確認するのにも役立ちます。
以下は.claude/CLAUDE.mdファイルが存在するプロジェクトで/memoryコマンドを実行した例です。User memoryとProject memoryはファイルの有無に関係なく必ず表示されます。
> /memory
╭──────────────────────────────────────────────────────────────────╮
│ │
│ Select memory to edit: │
│ │
│ ❯ 1. .claude/CLAUDE.md │
│ 2. User memory Saved in ~/.claude/CLAUDE.md │
│ 3. Project memory Checked in at ./CLAUDE.md │
│ │
╰──────────────────────────────────────────────────────────────────╯
CLAUDE.mdの再帰的読み込み
Claude Codeはメモリを再帰的に読み取ります。cwdから開始して、Claude Codeはプロジェクトのルートディレクトリまで再帰し、見つけたCLAUDE.mdまたはCLAUDE.local.mdファイルを読み取ります。これは、foo/bar/ でClaude Codeを実行し、foo/CLAUDE.mdとfoo/bar/CLAUDE.mdの両方にメモリがある大きなリポジトリで作業する際に特に便利です。
Claudeは現在の作業ディレクトリ下のサブツリーにネストされたCLAUDE.mdも発見します。起動時の読み込みは行わず、Claudeがそれらのサブツリー内のファイルを読み取る際にのみ読み込まれます。
# ショートカットでメモリを追加する
入力を # 文字で開始すると、これを保存するメモリファイルを選択するように求められ、素早くメモリを追加できます。
> # 常に説明的な変数名を使用する
/memory でメモリを直接編集
Claude Codeセッション中に /memory スラッシュコマンドを使用すると、システムエディタが起動して当該メモリファイルを開きます。
> /memory
/init でプロジェクトメモリをブートストラップ
プロジェクトメモリをすばやく作成するときに利用します。
> /init
プロジェクトが進んだ状態で使用すると、予期せぬ破壊的な変更を起こす可能性があるため、注意が必要です。
サブエージェント設定
Claude Codeは、ユーザレベルとプロジェクトレベルの両方で設定できるカスタムAIサブエージェントをサポートしています。これらのサブエージェントは、YAMLフロントマターを持つMarkdownファイルとして保存されます。
- ユーザサブエージェント:
~/.claude/agents/- すべてのプロジェクトで利用可能 - プロジェクトサブエージェント:
.claude/agents/- プロジェクト固有でチームと共有可能
サブエージェントファイルは、カスタムプロンプトとツール権限を持つ専門のAIアシスタントを定義します。サブエージェントの作成と使用について詳しくは、サブエージェントをご覧ください。