新しいコードベースを理解する
コードベースの概要を素早く把握する
新しいプロジェクトに参加したばかりで、その構造を素早く理解する必要があるとします。関連するコードを見つける
特定の機能または機能に関連するコードを見つける必要があるとします。バグを効率的に修正する
エラーメッセージが表示され、そのソースを見つけて修正する必要があるとします。コードをリファクタリングする
古いコードを最新のパターンとプラクティスを使用するように更新する必要があるとします。特化した subagent を使用する
特定のタスクをより効果的に処理するために、特化した AI subagent を使用したいとします。Plan Mode を使用して安全なコード分析を行う
Plan Mode は Claude に読み取り専用操作でコードベースを分析して計画を作成するよう指示します。これはコードベースの探索、複雑な変更の計画、またはコードの安全なレビューに最適です。Plan Mode では、Claude はAskUserQuestionを使用して要件を収集し、計画を提案する前に目標を明確にします。
Plan Mode を使用する場合
- マルチステップの実装:機能が多くのファイルへの編集を必要とする場合
- コード探索:何かを変更する前にコードベースを徹底的に調査したい場合
- インタラクティブな開発:Claude との方向性について反復したい場合
Plan Mode の使用方法
セッション中に Plan Mode をオンにする Shift+Tab を使用してセッション中に Plan Mode に切り替えることができます。 Normal Mode にいる場合、Shift+Tab は最初に Auto-Accept Mode に切り替わります。これはターミナルの下部に⏵⏵ accept edits on で示されます。その後の Shift+Tab は Plan Mode に切り替わります。これは ⏸ plan mode on で示されます。
Plan Mode で新しいセッションを開始する
Plan Mode で新しいセッションを開始するには、--permission-mode plan フラグを使用します:
-p を使用して Plan Mode でクエリを直接実行することもできます:
例:複雑なリファクタリングの計画
--name または /rename で名前を設定している場合、計画を受け入れてもそれは上書きされません。
Plan Mode をデフォルトとして設定する
テストを使用する
カバーされていないコードのテストを追加する必要があるとします。 Claude は、プロジェクトの既存のパターンと規約に従うテストを生成できます。テストをリクエストするときは、検証したい動作について具体的に説明してください。Claude は既存のテストファイルを調べて、既に使用されているスタイル、フレームワーク、アサーションパターンに一致させます。 包括的なカバレッジのために、Claude に見落とした可能性のあるエッジケースを特定するよう依頼してください。Claude はコードパスを分析し、エラー条件、境界値、見落としやすい予期しない入力のテストを提案できます。プルリクエストを作成する
Claude に直接プルリクエストを作成するよう依頼するか(「create a pr for my changes」)、ステップバイステップで Claude をガイドできます:gh pr create を使用して PR を作成すると、セッションはその PR に自動的にリンクされます。後で claude --from-pr <number> で再開できます。
ドキュメントを処理する
コードのドキュメントを追加または更新する必要があるとします。ノートと非コードフォルダで作業する
Claude Code はどのディレクトリでも機能します。ノートボルト、ドキュメントフォルダ、またはマークダウンファイルの任意のコレクション内で実行して、コードと同じ方法でコンテンツを検索、編集、再編成します。.claude/ ディレクトリと CLAUDE.md は他のツールの設定ディレクトリと並んで競合なく存在します。Claude は各ツール呼び出しで新しくファイルを読み込むため、別のアプリケーションで行った編集は次回そのファイルを読み込むときに表示されます。
画像を使用する
コードベース内の画像を使用する必要があり、Claude の画像コンテンツ分析を支援したいとします。会話に画像を追加する
次のいずれかの方法を使用できます:
- Claude Code ウィンドウに画像をドラッグアンドドロップする
- 画像をコピーして、CLI に ctrl+v で貼り付ける(cmd+v は使用しないでください)
- Claude に画像パスを提供する。例:「Analyze this image: /path/to/your/image.png」
ファイルとディレクトリを参照する
@ を使用して、Claude に読み込まれるのを待たずにファイルまたはディレクトリをすばやく含めます。MCP リソースを参照する
拡張思考(思考モード)を使用する
拡張思考はデフォルトで有効になっており、Claude が複雑な問題をステップバイステップで推論するためのスペースを提供します。この推論は詳細モードで表示され、Ctrl+O でオンに切り替えることができます。拡張思考中、スピナーは「still thinking」や「almost done thinking」などのインラインの進捗ヒントを表示し、Claude が積極的に作業していることを示します。
さらに、努力レベルをサポートするモデルは適応的推論を使用します。固定された思考トークン予算の代わりに、モデルは努力レベル設定とタスクに基づいて動的に思考を決定します。適応的推論により、Claude は日常的なプロンプトにより速く応答し、それから恩恵を受けるステップのためにより深い思考を予約できます。
拡張思考は、複雑なアーキテクチャの決定、難しいバグ、マルチステップの実装計画、異なるアプローチ間のトレードオフの評価に特に価値があります。
「think」、「think hard」、「think more」などのフレーズは通常のプロンプト指示として解釈され、思考トークンを割り当てません。
思考モードを設定する
思考はデフォルトで有効になっていますが、調整または無効にできます。| スコープ | 設定方法 | 詳細 |
|---|---|---|
| 努力レベル | /effort を実行するか、/model で調整するか、CLAUDE_CODE_EFFORT_LEVELを設定する | サポートされているモデルでの思考の深さを制御する |
ultrathink キーワード | プロンプトの任意の場所に「ultrathink」を含める | そのターンでモデルがより多く推論するよう指示するコンテキスト内指示を追加します。努力レベル自体は変更しません。努力レベルを調整を参照してください |
| トグルショートカット | Option+T(macOS)または Alt+T(Windows/Linux)を押す | 現在のセッションの思考をオン/オフに切り替えます(すべてのモデル)。ターミナル設定を有効にして Option キーショートカットを有効にする必要がある場合があります |
| グローバルデフォルト | /config を使用して思考モードをトグルする | すべてのプロジェクト全体でデフォルトを設定します(すべてのモデル)。~/.claude/settings.json に alwaysThinkingEnabled として保存されます |
| トークン予算を制限する | MAX_THINKING_TOKENS環境変数を設定する | 思考予算を特定のトークン数に制限します。適応的推論を備えたモデルでは、適応的推論が無効になっていない限り 0 に設定されている場合のみ適用されます。例:export MAX_THINKING_TOKENS=10000 |
Ctrl+O を押して詳細モードをトグルし、グレーのイタリック体で表示される内部推論を確認します。
拡張思考の仕組み
拡張思考は、Claude が応答する前に実行する内部推論の量を制御します。より多くの思考により、ソリューションを探索し、エッジケースを分析し、間違いを自己修正するためのより多くのスペースが提供されます。 努力レベルをサポートするモデルでは、思考は適応的推論を使用します。モデルは、選択した努力レベルに基づいて思考トークンを動的に割り当てます。これは速度と推論の深さのトレードオフを調整するための推奨される方法です。努力レベル自体を変更せずに、Claude がそのターンでより多くまたはより少なく思考することを望む場合は、プロンプトで直接そう言うか、CLAUDE.md で言うこともできます。
古いモデルでは、思考は出力予算から最大 31,999 トークンの固定予算を使用します。MAX_THINKING_TOKENS環境変数でこれを制限するか、/config または Option+T/Alt+T トグルで思考を完全に無効にできます。
適応的推論を備えたモデルでは、MAX_THINKING_TOKENS は 0 に設定されている場合のみ適用されます。または CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 は、これらのモデルを固定予算に戻します。CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING は Opus 4.6 と Sonnet 4.6 にのみ適用されます。Opus 4.7 は常に適応的推論を使用し、固定思考予算をサポートしていません。環境変数を参照してください。
以前の会話を再開する
Claude Code を開始するときは、以前のセッションを再開できます:claude --continueは現在のディレクトリで最新の会話を続行しますclaude --resumeは会話ピッカーを開くか、名前で再開しますclaude --from-pr 123は特定のプルリクエストにリンクされたセッションを再開します
/resume を使用して別の会話に切り替えます。
選択したセッションが古く、それを再度読み込むことが使用制限の実質的な部分を消費するほど大きい場合、--resume、--continue、および /resume は完全なトランスクリプトを読み込む代わりに、サマリーから再開することを提案します。このプロンプトは Amazon Bedrock、Google Cloud Vertex AI、または Microsoft Foundry では利用できません。
セッションはプロジェクトディレクトリごとに保存されます。デフォルトでは、/resume ピッカーは現在の worktree からのインタラクティブセッションを表示し、リストを他の worktree またはプロジェクトに広げるためのキーボードショートカット、検索、プレビュー、名前変更があります。以下のセッションピッカーを使用を参照してください。
別の worktree の同じリポジトリからセッションを選択すると、Claude Code はディレクトリを切り替える必要なく直接再開します。関連のないプロジェクトからセッションを選択すると、cd と再開コマンドをクリップボードにコピーします。
名前で再開すると、現在のリポジトリとその worktree 全体で解決されます。claude --resume <name> と /resume <name> の両方が完全一致を探し、セッションが別の worktree に存在する場合でも直接再開します。
名前があいまいな場合、claude --resume <name> はピッカーを開き、名前を検索用語として事前入力します。/resume <name> をセッション内から実行すると、代わりにエラーが報告されるため、/resume を引数なしで実行してピッカーを開き、選択します。
claude -p または SDK 呼び出しで作成されたセッションはピッカーに表示されませんが、セッション ID をそのまま claude --resume <session-id> に渡すことで再開できます。
セッションに名前を付ける
セッションに説明的な名前を付けて、後で見つけやすくします。これは複数のタスクまたは機能に取り組むときのベストプラクティスです。セッションに名前を付ける
起動時に またはセッション中に ピッカーから任意のセッションの名前を変更することもできます。
-n でセッションに名前を付けます:/rename を使用します。これはプロンプトバーに名前も表示します:/resume を実行し、セッションに移動して、Ctrl+R を押します。セッションピッカーを使用する
/resume コマンド(または引数なしの claude --resume)は、次の機能を備えたインタラクティブセッションピッカーを開きます:
ピッカーのキーボードショートカット:
| ショートカット | アクション |
|---|---|
↑ / ↓ | セッション間を移動する |
→ / ← | グループ化されたセッションを展開または折りたたむ |
Enter | ハイライトされたセッションを選択して再開する |
Space | セッションコンテンツをプレビューする。Ctrl+V も、ターミナルがペーストとしてキャプチャしないターミナルで機能します |
Ctrl+R | ハイライトされたセッションの名前を変更する |
/ または Space 以外の任意の印字可能文字 | 検索モードに入り、セッションをフィルタリングする |
Ctrl+A | このマシン上のすべてのプロジェクトからセッションを表示します。もう一度押すと現在のリポジトリを復元します |
Ctrl+W | 現在のリポジトリのすべての worktree からセッションを表示します。もう一度押すと現在の worktree を復元します。マルチ worktree リポジトリでのみ表示されます |
Ctrl+B | 現在の git ブランチからのセッションにフィルタリングします。もう一度押すとすべてのブランチからのセッションを表示します |
Esc | ピッカーまたは検索モードを終了する |
- セッション名(設定されている場合)、そうでない場合は会話の要約または最初のユーザープロンプト
- 最後のアクティビティからの経過時間
- メッセージ数
- Git ブランチ(該当する場合)
Ctrl+Aですべてのプロジェクトに広げた後に表示されるプロジェクトパス
/branch、/rewind、または --fork-session で作成)はルートセッションの下にグループ化され、関連する会話を見つけやすくなります。
Git worktree を使用して並列 Claude Code セッションを実行する
複数のタスクに同時に取り組む場合、各 Claude セッションがコードベースの独自のコピーを持つ必要があります。そうしないと変更が衝突します。Git worktree は、同じリポジトリ履歴とリモート接続を共有しながら、独自のファイルとブランチを持つ個別の作業ディレクトリを作成することで、この問題を解決します。つまり、Claude が 1 つの worktree で機能に取り組んでいる間に、別の worktree でバグを修正でき、どちらのセッションも相互に干渉しません。--worktree(-w)フラグを使用して、分離された worktree を作成し、Claude をその中で開始します。渡す値は worktree ディレクトリ名とブランチ名になります:
<repo>/.claude/worktrees/<name> に作成され、デフォルトのリモートブランチから分岐します。これは origin/HEAD が指すところです。worktree ブランチは worktree-<name> という名前が付けられます。
ベースブランチは Claude Code フラグまたは設定を通じて設定できません。origin/HEAD はクローン時に Git が設定したローカル .git ディレクトリに保存される参照です。リポジトリのデフォルトブランチが後で GitHub または GitLab で変更された場合、ローカル origin/HEAD は古いものを指し続け、worktree はそこから分岐します。ローカル参照をリモートが現在デフォルトと見なしているものと再同期するには:
.git ディレクトリのみを更新する標準 Git コマンドです。リモートサーバーでは何も変わりません。worktree が特定のブランチではなくリモートのデフォルトに基づくようにしたい場合は、git remote set-head origin your-branch-name で明示的に設定します。
worktree の作成方法を完全に制御するには、WorktreeCreate フックを設定します。フックは Claude Code のデフォルト git worktree ロジックを完全に置き換えるため、必要な ref から取得してブランチできます。
セッション中に Claude に「work in a worktree」または「start a worktree」を依頼することもでき、自動的に作成されます。
Subagent worktree
Subagent は worktree 分離を使用して、競合なしに並列で作業することもできます。Claude に「use worktrees for your agents」を依頼するか、カスタム subagentでisolation: worktree をエージェントのフロントマターに追加して設定します。各 subagent は独自の worktree を取得し、変更なしで subagent が終了すると自動的にクリーンアップされます。
Worktree クリーンアップ
worktree セッションを終了すると、Claude は変更があったかどうかに基づいてクリーンアップを処理します:- 変更なし:worktree とそのブランチは自動的に削除されます
- 変更またはコミットが存在する:Claude は worktree を保持するか削除するかをプロンプトします。保持するとディレクトリとブランチが保存され、後で戻ることができます。削除すると worktree ディレクトリとそのブランチが削除され、すべてのコミットされていない変更とコミットが破棄されます
cleanupPeriodDays設定より古い場合、コミットされていない変更、追跡されていないファイル、プッシュされていないコミットがない場合、起動時に自動的に削除されます。--worktree で作成した worktree は、このスイープによって削除されることはありません。
Claude セッション外で worktree をクリーンアップするには、worktree を手動で管理を使用します。
Worktree に gitignored ファイルをコピーする
Git worktree は新しいチェックアウトなので、メインリポジトリから.env や .env.local などの追跡されていないファイルは含まれません。Claude が worktree を作成するときにこれらのファイルを自動的にコピーするには、プロジェクトルートに .worktreeinclude ファイルを追加します。
ファイルは .gitignore 構文を使用して、コピーするファイルをリストします。パターンに一致し、gitignored されているファイルのみがコピーされるため、追跡されたファイルは決して複製されません。
.worktreeinclude
--worktree、subagent worktree、およびデスクトップアプリの並列セッションで作成された worktree に適用されます。
Worktree を手動で管理する
worktree の場所とブランチ設定をより細かく制御するには、Git を使用して worktree を直接作成します。これは特定の既存ブランチをチェックアウトするか、worktree をリポジトリの外に配置する必要がある場合に便利です。Git 以外のバージョン管理
Worktree 分離はデフォルトで git で機能します。SVN、Perforce、Mercurial などの他のバージョン管理システムの場合は、WorktreeCreate と WorktreeRemove フックを設定して、カスタム worktree 作成とクリーンアップロジックを提供します。設定されている場合、これらのフックは--worktree を使用するときにデフォルトの git 動作を置き換えます。そのため、.worktreeincludeは処理されません。フックスクリプト内でローカル設定ファイルをコピーしてください。
共有タスクとメッセージングを使用した並列セッションの自動調整については、エージェントチームを参照してください。
Claude が注意を必要とするときに通知を受け取る
長時間実行されるタスクを開始して別のウィンドウに切り替えるときは、Claude が終了したときまたは入力が必要なときに知ることができるようにデスクトップ通知を設定できます。これはNotification フックイベントを使用します。これは Claude が許可を待っている、アイドル状態で新しいプロンプトの準備ができている、または認証を完了しているときはいつでも発火します。
設定にフックを追加する
~/.claude/settings.json を開き、プラットフォームのネイティブ通知コマンドを呼び出す Notification フックを追加します:- macOS
- Linux
- Windows
hooks キーがある場合は、上書きするのではなく Notification エントリをマージします。CLI で説明したいことを説明することで、Claude にフックを書くよう依頼することもできます。オプションでマッチャーを絞り込む
デフォルトでは、フックはすべての通知タイプで発火します。特定のイベントのみで発火させるには、
matcher フィールドを次のいずれかの値に設定します:| マッチャー | 発火する場合 |
|---|---|
permission_prompt | Claude がツール使用を承認する必要がある場合 |
idle_prompt | Claude が完了し、次のプロンプトを待っている場合 |
auth_success | 認証が完了する場合 |
elicitation_dialog | Claude があなたに質問している場合 |
Claude を unix スタイルのユーティリティとして使用する
検証プロセスに Claude を追加する
Claude Code をリンターまたはコードレビューアーとして使用したいとします。 ビルドスクリプトに Claude を追加する:パイプイン、パイプアウト
Claude にデータをパイプインし、構造化された形式でデータを取得したいとします。 Claude を通じてデータをパイプする:出力形式を制御する
特に Claude Code をスクリプトまたは他のツールに統合する場合、Claude の出力が特定の形式である必要があるとします。Claude をスケジュールで実行する
Claude に長時間実行されるタスクを自動的に定期的に処理させたいとします。例えば、毎朝オープン PR をレビューしたり、毎週依存関係を監査したり、夜間に CI の失敗をチェックしたりします。 実行場所に基づいてスケジューリングオプションを選択します:| オプション | 実行場所 | 最適な用途 |
|---|---|---|
| ルーチン | Anthropic 管理インフラストラクチャ | コンピュータがオフの場合でも実行する必要があるタスク。claude.ai/code/routinesで設定します。 |
| デスクトップスケジュール済みタスク | デスクトップアプリ経由のマシン | ローカルファイル、ツール、またはコミットされていない変更への直接アクセスが必要なタスク。 |
| GitHub Actions | CI パイプライン | オープン PR などのリポジトリイベント、またはワークフロー設定と一緒に存在する必要がある cron スケジュールに関連するタスク。 |
/loop | 現在の CLI セッション | セッションが開いている間のクイックポーリング。タスクは新しい会話を開始すると停止します。--resume と --continue は期限切れでないものを復元します。 |
Claude にその機能について質問する
Claude は自分のドキュメントへの組み込みアクセスを持っており、自分の機能と制限について質問に答えることができます。質問例
Claude はこれらの質問に対してドキュメントベースの回答を提供します。実行可能な例と実践的なデモンストレーションについては、
/powerup を実行してアニメーション化されたデモを含むインタラクティブレッスンを受けるか、上記の特定のワークフローセクションを参照してください。次のステップ
ベストプラクティス
Claude Code から最大限の価値を得るためのパターン
Claude Code の仕組み
agentic ループとコンテキスト管理を理解する
Claude Code を拡張する
skill、フック、MCP、subagent、プラグインを追加する
リファレンス実装
開発コンテナリファレンス実装をクローンする