Claude Code の設定ガイド|CLAUDE.md・permissions・モデル切り替え
「Claude Code を使い始めたけれど、毎回同じ指示を繰り返している」「チームで設定を共有したい」「コストが気になるけれど、どこを調整すればいいかわからない」——こうした悩みは、Claude Code の設定を正しく理解することで解決できます。
Claude Code は、設定をほとんど行わなくてもすぐに使い始められるツールです。しかし、設定を適切に行うことで作業効率は大きく変わります。特に CLAUDE.md による指示の永続化、パーミッションによるセキュリティ管理、モデルの使い分けによるコスト最適化は、日常的に Claude Code を使うなら必ず押さえておきたいポイントです。
本記事では、Claude Code の設定方法を体系的に解説します。初期設定から応用的なチーム運用まで、この記事を読めば Claude Code を自分の開発スタイルに合わせてカスタマイズできるようになります。
Claude Code の基本的な使い方についてはこちらの記事を参考にしてください。
CLAUDE.md とは何か
CLAUDE.md は、Claude Code に対してプロジェクト固有のルールやコンテキストを伝えるための設定ファイルです。Markdown 形式で記述し、Claude Code がセッションを開始するたびに自動的に読み込まれます。
通常、Claude Code に指示を出すときは対話プロンプトに直接入力します。しかし、プロジェクトのコーディング規約やディレクトリ構成、使用しているフレームワークの情報など、毎回伝える必要がある情報をセッションごとに入力するのは非効率です。
CLAUDE.md にこれらの情報を書いておけば、セッションを新しく開始しても Claude Code が毎回自動的にルールを読み込んで従ってくれます。いわば、Claude Code のための「プロジェクトマニュアル」です。
CLAUDE.md を使うメリット
- 指示の繰り返しが不要になる: コーディング規約、命名規則、使用ライブラリなどを毎回伝える手間がなくなる
- 一貫性のある出力が得られる: 同じルールに基づいてコードが生成されるため、プロジェクト全体のスタイルが統一される
- チームで設定を共有できる: Git にコミットすることで、チーム全員が同じルールで Claude Code を使える
- 新メンバーのオンボーディングにも役立つ: プロジェクトのルールが文書化されることで、人間にとっても参考資料になる
CLAUDE.md の書き方と配置場所
CLAUDE.md は配置する場所によってスコープが異なります。用途に応じて使い分けましょう。
配置場所ごとのスコープ
| 配置場所 | スコープ | 用途 |
|---|---|---|
~/.claude/CLAUDE.md | 全プロジェクト共通 | 個人の作業スタイル、言語設定 |
プロジェクトルート/CLAUDE.md | プロジェクト全体 | コーディング規約、アーキテクチャ |
サブディレクトリ/CLAUDE.md | 特定ディレクトリ | ディレクトリ固有のルール |
Claude Code は起動時にこれらのファイルをすべて読み込み、マージして適用します。グローバル設定とプロジェクト設定が矛盾する場合は、よりスコープの狭い設定が優先されます。
グローバル設定(~/.claude/CLAUDE.md)
マシン全体で共通のルールを定義します。すべてのプロジェクトに適用されるため、個人の作業スタイルに関する設定を書くのに適しています。
# ~/.claude/CLAUDE.md
## 言語設定
- 日本語で応答すること
- コメントも日本語で書くこと
- 変数名・関数名は英語(camelCase)
## 作業スタイル
- 変更前に必ず既存コードのパターンを確認する
- テストファイルが存在する場合は、変更に合わせてテストも更新する
- コミットメッセージは日本語で書く
プロジェクト設定(プロジェクトルート/CLAUDE.md)
プロジェクト固有のルールを定義します。Git にコミットしてチーム全体で共有するのが一般的です。
# CLAUDE.md
## プロジェクト概要
- React + TypeScript の Web アプリケーション
- パッケージマネージャ: pnpm
- フレームワーク: React Router v7
## コーディング規約
- TypeScript strict モードを使用する
- コンポーネントは関数コンポーネントで書く
- CSS は Tailwind CSS を使用する
- テストは Vitest で書く
## ディレクトリ構成
- app/routes/ - ページコンポーネント
- app/components/ - 共通コンポーネント
- app/lib/ - ユーティリティ関数
## 命名規則
- ファイル名: kebab-case(例: user-profile.tsx)
- コンポーネント名: PascalCase(例: UserProfile)
- 変数・関数名: camelCase(例: getUserName)
## 開発コマンド
- `pnpm dev` - 開発サーバー起動
- `pnpm test` - テスト実行
- `pnpm build` - ビルド
/init コマンドで自動生成
CLAUDE.md を一から書くのが面倒な場合は、/init コマンドを使ってプロジェクトの構成を自動分析し、CLAUDE.md を生成できます。
/init
Claude Code がプロジェクトのファイル構成、package.json、設定ファイルなどを読み取り、適切な CLAUDE.md のテンプレートを生成してくれます。生成された内容をベースに、プロジェクト固有のルールを追加・修正していくのが効率的です。
CLAUDE.md を書くときのコツ
簡潔に書く: 長すぎる CLAUDE.md はトークンを消費します。本当に必要なルールだけを記述しましょう。
具体的に書く: 「きれいなコードを書く」のような曖昧な指示ではなく、「関数は50行以内に収める」「早期リターンを使う」など具体的なルールにします。
禁止事項を明記する: 「使ってはいけない」ものを明示すると効果的です。例えば、「any 型を使わない」「console.log をコミットしない」など。
開発コマンドを書く: ビルド、テスト、lint のコマンドを記載しておくと、Claude Code が適切なタイミングでこれらを実行できます。
パーミッション設定
Claude Code はファイルの読み書きやシェルコマンドの実行を行うため、パーミッション(許可)の管理はセキュリティ上重要です。何を自動承認し、何を毎回確認するかを適切に設定することで、安全性と利便性のバランスを取れます。
パーミッションの仕組み
Claude Code がファイルを変更したりコマンドを実行したりするときには、デフォルトでユーザーの承認が求められます。これは安全のための仕組みですが、信頼できる操作まで毎回承認するのは非効率です。
パーミッション設定では、以下の3つのレベルで制御できます。
- Allow(許可): 確認なしで自動実行する
- Ask(確認): 実行前にユーザーに確認を求める(デフォルト)
- Deny(拒否): 実行を禁止する
settings.json によるパーミッション設定
プロジェクトルートの .claude/settings.json にパーミッションルールを定義できます。
{
"permissions": {
"allow": [
"Read",
"Glob",
"Grep",
"Bash(npm test)",
"Bash(npm run lint)",
"Bash(npm run build)",
"Bash(git status)",
"Bash(git diff)",
"Bash(git log)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git push --force)",
"Bash(git reset --hard)"
]
}
}
allow に追加したツールやコマンドは確認なしで実行されます。deny に追加したものは Claude Code が実行しようとしてもブロックされます。
設定のスコープ
パーミッション設定も CLAUDE.md と同様に複数のスコープがあります。
| 配置場所 | スコープ |
|---|---|
~/.claude/settings.json | 全プロジェクト共通 |
プロジェクトルート/.claude/settings.json | プロジェクト固有 |
プロジェクト固有の設定は Git にコミットすることで、チーム全体で同じパーミッションルールを共有できます。
/permissions コマンド
現在のパーミッション設定を確認・変更するには、/permissions コマンドを使います。
/permissions
対話的にパーミッションを追加・削除できるため、settings.json を直接編集するよりも手軽です。
おすすめのパーミッション設定
開発効率とセキュリティのバランスを考慮した、おすすめの設定を紹介します。
自動許可にしてよいもの:
- ファイルの読み取り(
Read,Glob,Grep) - テスト実行(
Bash(npm test)など) - lint/format(
Bash(npm run lint)など) - Git の参照系(
git status,git diff,git log)
毎回確認すべきもの:
- ファイルの書き込み(
Write,Edit) - 任意のシェルコマンド実行
- Git の変更系(
git commit,git push)
明示的に禁止すべきもの:
rm -rfによる再帰的削除git push --forceによる強制プッシュgit reset --hardによる変更の破棄- 本番環境に影響するデプロイコマンド
モデル切り替え
Claude Code では、使用する AI モデルを切り替えることができます。タスクの性質に応じてモデルを使い分けることで、品質とコストのバランスを最適化できます。
/model コマンド
セッション中にモデルを切り替えるには、/model コマンドを使います。
/model
利用可能なモデル一覧が表示され、対話的に選択できます。また、モデル名を直接指定することも可能です。
/model claude-sonnet-4-20250514
モデルの使い分け
Claude Code で利用できる主なモデルと、その使い分けの目安は以下の通りです。
| モデル | 特徴 | おすすめの用途 |
|---|---|---|
| Claude Opus 4 | 最高精度。複雑な推論に強い | アーキテクチャ設計、複雑なリファクタリング、バグの根本原因分析 |
| Claude Sonnet 4 | バランス型。速度と精度の両立 | 日常的なコーディング、機能追加、コードレビュー |
| Claude Haiku | 高速・低コスト | 簡単な質問、ファイル検索、定型的な変更 |
起動時のモデル指定
コマンドラインから起動時にモデルを指定することもできます。
claude --model claude-sonnet-4-20250514
特定のタスクに集中するセッションでは、あらかじめモデルを指定して起動すると効率的です。
コスト意識を持ったモデル選択
API 従量課金を使っている場合、モデルの選択はコストに直結します。目安として以下の使い分けが効果的です。
- 日常作業の8割は Sonnet: 品質・速度・コストのバランスが最も良い
- 難しい問題には Opus: 複雑なバグの調査やアーキテクチャ判断など、精度が重要な場面で使用
- 簡単なタスクには Haiku: ファイルの検索、簡単な質問、フォーマット変更など、精度をそこまで求めない場面で使用
Claude Max プランを利用している場合は月額定額のため、常に最高精度のモデルを使っても追加コストはかかりません。
コスト管理の設定
Claude Code を継続的に使う上で、コスト管理は避けて通れないテーマです。特に API 従量課金を利用している場合は、適切な管理設定を行いましょう。
/cost コマンドでモニタリング
セッション中のトークン消費量とコストを確認するには、/cost コマンドを使います。
/cost
入力トークン数、出力トークン数、推定コストが表示されます。定期的に確認する習慣をつけることで、予想外の高額請求を防げます。
Anthropic Console でのコスト上限設定
API 従量課金を使っている場合は、Anthropic Console から以下の設定が可能です。
- 月額の支出上限: 1ヶ月のAPI利用料の上限を設定
- 使用量アラート: 一定額に達したら通知を受け取る
これらの設定は Anthropic Console の「Settings」から行えます。想定外のコストを防ぐために、必ず上限を設定しておきましょう。
トークン消費を抑えるテクニック
日常的にコストを抑えるためのテクニックをまとめます。
/compact を活用する: 長い会話が続くとコンテキストウィンドウにトークンが蓄積します。タスクの区切りで /compact を実行し、会話履歴を要約・圧縮しましょう。
具体的な指示を出す: 曖昧な指示は試行錯誤を招き、余分なトークンを消費します。最初から具体的に指示することで、やり直しの回数を減らせます。
CLAUDE.md を整備する: プロジェクトのルールを CLAUDE.md に書いておくことで、毎回の説明が不要になりトークンを節約できます。
セッションを適切に区切る: 無関係な複数のタスクを同じセッションで処理すると、コンテキストが肥大化します。タスクが変わったら /clear で新しいセッションを始めましょう。
.claudeignore でファイルを除外する
.claudeignore ファイルを使うと、Claude Code がアクセスしないファイルやディレクトリを指定できます。.gitignore と同じ構文で記述します。
.claudeignore の作成
プロジェクトルートに .claudeignore ファイルを作成します。
# .claudeignore
# ビルド成果物
dist/
build/
.next/
# 依存パッケージ
node_modules/
# 環境変数・機密情報
.env
.env.local
.env.production
*.pem
*.key
# 大きなデータファイル
data/
*.sql.gz
*.csv
# ログファイル
logs/
*.log
.claudeignore を使うべき場面
セキュリティ: .env ファイルや認証情報を含むファイルを除外して、Claude Code が機密情報にアクセスすることを防ぐ
パフォーマンス: node_modules やビルド成果物など、大量のファイルを含むディレクトリを除外して、ファイル検索の速度を向上させる
ノイズの除去: ログファイルやデータファイルなど、コード変更に無関係なファイルを除外して、Claude Code が本質的なコードに集中できるようにする
チーム共有の設定方法
Claude Code の設定をチーム全体で共有することで、メンバー全員が一貫した開発体験を得られます。
Git にコミットすべき設定ファイル
以下のファイルはプロジェクトリポジトリにコミットし、チーム全体で共有しましょう。
| ファイル | 用途 |
|---|---|
CLAUDE.md | プロジェクトのルール・規約 |
.claude/settings.json | パーミッション設定 |
.claudeignore | ファイル除外設定 |
.claude/commands/ | カスタムスラッシュコマンド |
Git にコミットすべきでない設定ファイル
個人の好みに関する設定はグローバル設定(~/.claude/)に置き、リポジトリにはコミットしません。
# ~/.claude/CLAUDE.md(個人設定の例)
## 個人の好み
- 日本語で応答する
- 説明は簡潔にする
- コード変更時は必ず差分を表示する
チーム設定のベストプラクティス
段階的に導入する: 最初から完璧な CLAUDE.md を目指さず、チームで使いながら徐々にルールを追加していく
レビューに含める: CLAUDE.md の変更もコードレビューの対象にする。ルールの追加・変更がチーム全体に影響するため、合意形成が重要
定期的に見直す: プロジェクトの進行に伴い、不要になったルールやアップデートが必要なルールが出てくる。定期的なメンテナンスを行う
おすすめ初期設定テンプレート
最後に、Claude Code を使い始めるときにすぐ使えるテンプレートを紹介します。プロジェクトの状況に応じてカスタマイズしてください。
CLAUDE.md テンプレート
# CLAUDE.md
## プロジェクト概要
- [プロジェクト名]: [簡単な説明]
- 技術スタック: [言語], [フレームワーク], [主要ライブラリ]
- パッケージマネージャ: [npm/pnpm/yarn/bun]
## コーディング規約
- 言語: TypeScript(strict モード)
- フォーマッター: Prettier
- リンター: ESLint
- テスト: Vitest
## 命名規則
- ファイル名: kebab-case
- コンポーネント名: PascalCase
- 変数・関数名: camelCase
- 定数: UPPER_SNAKE_CASE
## ディレクトリ構成
- src/routes/ - ページ
- src/components/ - 共通コンポーネント
- src/lib/ - ユーティリティ
- src/types/ - 型定義
## 開発コマンド
- `npm run dev` - 開発サーバー起動
- `npm test` - テスト実行
- `npm run build` - ビルド
- `npm run lint` - lint 実行
## 禁止事項
- any 型を使わない
- console.log をコミットしない
- インラインスタイルを使わない(Tailwind CSS を使用)
settings.json テンプレート
{
"permissions": {
"allow": [
"Read",
"Glob",
"Grep",
"Bash(npm test)",
"Bash(npm run lint)",
"Bash(npm run build)",
"Bash(npx tsc --noEmit)",
"Bash(git status)",
"Bash(git diff)",
"Bash(git log)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git push --force)",
"Bash(git reset --hard)"
]
}
}
.claudeignore テンプレート
# ビルド成果物
dist/
build/
.next/
out/
# 依存パッケージ
node_modules/
# 環境変数
.env
.env.*
# 機密情報
*.pem
*.key
*.cert
# 大きなファイル
*.sql.gz
*.tar.gz
これらのテンプレートをベースに、プロジェクト固有の設定を追加していきましょう。
まとめ
本記事では、Claude Code の設定方法を体系的に解説しました。ポイントを振り返ります。
- CLAUDE.md でルールを永続化する: プロジェクトのコーディング規約や構成情報を記述し、毎回の説明を省く
- 配置場所でスコープを分ける: グローバル設定(
~/.claude/)は個人の好み、プロジェクト設定は規約に使い分ける - パーミッションで安全性を確保する: 信頼できる操作は自動許可、危険な操作は明示的に拒否する
- モデルを使い分ける: 日常は Sonnet、難問は Opus、簡易タスクは Haiku でコストを最適化する
- コストを管理する:
/costで監視し、/compactでトークンを節約する .claudeignoreで不要なファイルを除外する: セキュリティとパフォーマンスを両立する- チームで設定を共有する:
CLAUDE.mdと.claude/settings.jsonを Git にコミットする
設定は一度行えば終わりではなく、プロジェクトの成長に合わせて育てていくものです。まずはテンプレートをベースに始めて、使いながら最適化していくのがおすすめです。
設定の詳細やカスタムコマンドの活用方法について、さらに深く学びたい方は以下のレッスンを参照してください。