概要
Claude Codeは、AnthropicのClaude AIモデルを使用したコマンドラインインターフェース (CLI) 開発ツールである。
このページでは、Claude Codeの主要機能とコマンドリファレンスを解説する。
特に重要な3つの機能を詳細に説明し、その他の有用なスラッシュコマンドとキーボードショートカットについても概要を示す。
主要機能は以下の通りである。
- セッション再開機能 (/resume)
- 以前の会話セッションに復帰する機能
- 複数の作業セッションを並行管理できる
- Model Context Protocol機能 (/mcp)
- 外部ツール、API、データベースへの接続を実現
- 拡張可能なプラグインシステム
- 巻き戻し機能 (/rewind)
- コード変更と会話履歴を任意のポイントまで巻き戻す
- 探索的なアプローチを安全に実行できる
これらの機能により、開発作業の効率性と柔軟性が大幅に向上する。
セッション再開機能 (/resume)
セッション再開機能は、以前の会話セッションに復帰して作業を継続する機能である。
複数のタスクを並行して管理し、中断した作業を後から再開することができる。
基本的な使い方
セッションを再開するには、以下の3つの方法がある。
- 方法1 : 前回のセッションに自動復帰
claude --continue
- 方法2 : 特定のセッションに復帰
claude --resume [セッション名]
- 方法3 : セッション内でのコマンド
/resume
セッション内で /resume コマンドを実行すると、インタラクティブなセッションピッカーが起動する。
セッションピッカーの機能
セッションピッカーは、保存されているセッションを管理するための対話的なインターフェースである。
セッションピッカーでできること
- セッションの検索
- キーワードでセッションを絞り込む。
- プレビュー表示
- セッションの内容を確認してから選択できる。
- 名前変更
- セッションに分かりやすい名前を付けられる。
- セッション削除
- 不要なセッションを削除できる。
操作方法
- 矢印キー
- セッションの選択
- Enter
- セッションの再開
- /
- 検索モード
- r
- 名前変更
- d
- セッション削除
- Esc
- キャンセル
セッションの自動保存
Claude Codeのセッションは、ローカルに自動的に保存される。
保存に関する仕様を以下に示す。
- 保存場所
- ローカルストレージ (ブラウザ版の場合はIndexedDB)
- CLI版の場合は設定ディレクトリ
- 保存期間
- 30日間
- 30日経過後は自動的に削除される
- 保存内容
- 会話履歴
- ファイルの変更履歴
- コンテキスト情報
- セッション設定
セッション名の設定
セッションに分かりやすい名前を設定することで、管理が容易になる。
名前設定のタイミング
- セッション開始時
claude --resume <セッション名>
- セッション中
/resumeコマンドでセッションピッカーを開き、名前変更
- セッション終了時
- 次回のために名前を設定
名前設定のベストプラクティス
- プロジェクト名や機能名を含める
- 例: "user-auth-refactoring"
- 作業内容を簡潔に表現
- 例: "fix-login-bug"
- 日付を含める (長期プロジェクトの場合)
- 例: "api-redesign-2025-01"
Gitワーカーツリーとの統合
セッション再開機能は、Gitのワーカーツリーと統合して使用できる。
ワーカーツリー統合の仕組みを以下に示す。
- ワーカーツリーごとにセッションを保存
- 各ワーカーツリーで独立した作業セッションを管理
- ディレクトリ切り替え時の自動認識
- ワーカーツリーを切り替えると、対応するセッションが自動選択される
- ブランチとセッションの対応付け
- 特定のブランチでの作業セッションを追跡できる
使用例を以下に示す。
# メインブランチのワーカーツリーで作業 cd ~/project/main claude --resume main-development
# 別のワーカーツリーに切り替え cd ~/project/feature-branch claude --resume feature-implementation
このように、複数のワーカーツリーで並行して異なるタスクを進めることができる。
使用すべきケース
セッション再開機能を使用すべきケースを以下に示す。
複数タスクの並行実行
- 複数の機能開発を同時に進める
- 各機能ごとにセッションを作成
- バグ修正と機能開発を並行
- バグ修正セッションと機能開発セッションを分ける
- レビュー対応と新規開発を並行
- レビュー指摘対応用のセッションを別に作成
作業の中断と再開
- 緊急タスクの割り込み
- 現在の作業を中断して緊急タスクに対応
- 緊急タスク完了後に元の作業に復帰
- 長期プロジェクトの継続
- 数日または数週間にわたるプロジェクトの継続
- 毎日同じセッションに復帰して作業を続ける
- コンテキストの保持
- 複雑な作業のコンテキストを失わずに保持
- 再開時に前回の作業内容を即座に思い出せる
推奨される方法
セッション再開機能を効果的に使用するために推奨される方法を以下に示す。
早期のセッション名設定
- 作業開始時にすぐにセッション名を設定する
- デフォルトの自動生成名ではなく、分かりやすい名前を使用
- 作業内容が明確になったら名前を更新
- 最初は仮の名前でも、後で適切な名前に変更できる
ディレクトリ構造への留意
- プロジェクトのディレクトリ構造を考慮してセッションを管理
- サブディレクトリごとにセッションを分けることも検討
- Gitのワーカーツリーを活用
- ブランチごとにワーカーツリーを作成し、セッションと対応付ける
定期的なセッション整理
- 完了したセッションは削除する
- 不要なセッションが蓄積しないようにする
- 長期保存が必要な場合はエクスポート
- 重要な会話履歴は別途保存する
Model Context Protocol機能 (/mcp)
MCP (Model Context Protocol) は、Claude Codeが外部ツール、API、データベース、サービスに接続するための標準プロトコルである。
MCPを使用することで、Claude Codeの機能を大幅に拡張できる。
MCPの概要
MCPは、以下の接続を実現する。
接続可能な外部システム
- 外部ツール
- コマンドラインツール、スクリプト
- API
- RESTful API、GraphQL API
- データベース
- PostgreSQL、MySQL、MongoDB 等
- サービス
- GitHub、Slack、Sentry 等
MCPの仕組み
- MCPサーバ
- 外部システムとの接続を提供するサーバ
- MCPクライアント
- Claude Code内でMCPサーバと通信するクライアント
- トランスポート
- HTTP/SSE、stdio 等複数のトランスポートをサポート
MCPサーバのインストール
MCPサーバをインストールする方法を以下に示す。
トランスポートの種類
- HTTP/SSE (Server-Sent Events)
- ネットワーク経由での接続
- stdio
- 標準入出力を使用したローカル接続
MCPサーバのインストール方法
- HTTP/SSEサーバの例
{ "mcpServers": { "my-server": { "url": "http://localhost:3000/mcp", "transport": "sse" } } }
- stdioサーバの例
{ "mcpServers": { "my-local-server": { "command": "node", "args": ["/path/to/server.js"], "transport": "stdio" } } }
MCPサーバの管理コマンド
MCPサーバを管理するためのコマンドを以下に示す。
- サーバの一覧表示
claude mcp list
- サーバの追加
claude mcp add <名前> <URL または コマンド>
- サーバの削除
claude mcp remove <名前>
- サーバの詳細情報取得
claude mcp get <名前>
MCPスコープ
MCPサーバは、3つのスコープで管理できる。
| スコープ | 説明 | 設定ファイルの場所 |
|---|---|---|
| local | 現在のディレクトリのみ | .claude/mcp.json |
| project | プロジェクト全体 | プロジェクトルート/mcp.json |
| user | ユーザ全体 (全プロジェクト) | ~/.claude/mcp.json |
- スコープの優先順位
- 同じ名前のサーバが複数のスコープで定義されている場合、優先順位の高いスコープの設定が使用される。
- local (最優先)
- project
- user (最低優先)
実用的なMCPサーバの例
実際に使用されているMCPサーバの例を以下に示す。
Sentry連携
エラートラッキングサービスSentryとの連携例を示す。
- 設定例
{ "mcpServers": { "sentry": { "url": "https://sentry.io/api/mcp", "transport": "sse", "env": { "SENTRY_AUTH_TOKEN": "your-token-here" } } } }
# 使用例 1 : 最近のエラーをSentryから取得して分析してください。 # 使用例 2 : Claudeは、MCPサーバ経由でSentryからエラー情報を取得し、分析を行う。
GitHub連携
GitHubのIssue、Pull Request、Discussionsとの連携例を示す。
- 設定例
{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "transport": "stdio", "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "your-token-here" } } } }
# 使用例 1 : このリポジトリの未解決のIssueを一覧表示してください # 使用例 2 : Issue #123 の内容を要約してください
PostgreSQL連携
PostgreSQLデータベースとの連携例を示す。
- 設定例
{ "mcpServers": { "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:password@localhost:5432/mydb"], "transport": "stdio" } } }
# 使用例 1 : usersテーブルのスキーマを確認してください。 # 使用例 2 : 最近追加されたユーザを10件表示してください。
環境変数とヘッダ認証
MCPサーバへの接続時に、環境変数やHTTPヘッダを使用した認証を設定できる。
- 環境変数の設定
{ "mcpServers": { "api-server": { "url": "https://api.example.com/mcp", "transport": "sse", "env": { "API_KEY": "your-api-key", "API_SECRET": "your-api-secret" } } } }
- HTTPヘッダの設定
{ "mcpServers": { "api-server": { "url": "https://api.example.com/mcp", "transport": "sse", "headers": { "Authorization": "Bearer your-token", "X-Custom-Header": "custom-value" } } } }
リソース参照 (@メンション)
MCPサーバが提供するリソースを、@ メンションで参照できる。
# リソース参照の例 : @github/issue/123 の内容を確認してください @sentry/error/latest を分析してください @postgres/table/users のスキーマを表示してください
リソース参照により、以下のメリットが得られる。
- 直感的な操作
- リソースを自然言語で参照できる
- コンテキストの明確化
- どのリソースについて話しているかが明確
- 自動補完
- 利用可能なリソースを自動補完で選択できる
MCPスラッシュコマンド
MCP関連のスラッシュコマンドを以下に示す。
- セッション内でのMCP管理
- /mcp
このコマンドにより、以下の操作が可能になる。
- MCPサーバの一覧表示
- MCPサーバの有効化/無効化
- MCPサーバの設定確認
- MCPリソースの参照
組織でのMCP管理
組織でMCPサーバを管理する方法を以下に示す。
- managed-mcp.jsonファイル
{ "allowlist": [ "github.com/modelcontextprotocol/*", "example.com/approved-servers/*" ], "denylist": [ "untrusted.com/*" ] }
組織管理の仕組みを以下に示す。
- allowlist
- 許可されたMCPサーバのリスト
- リストにあるサーバのみインストール可能
- denylist
- 禁止されたMCPサーバのリスト
- リストにあるサーバはインストール不可
これにより、組織全体でのセキュリティポリシーを維持できる。
セキュリティ上の注意事項
MCPサーバを使用する際のセキュリティ注意事項を以下に示す。
プロンプトインジェクション対策
- MCPサーバが返すデータを盲目的に信頼しない
- 悪意のあるデータが含まれる可能性を考慮
- 外部データの検証
- MCPサーバから取得したデータを検証してから使用
信頼できるサーバのみ使用
- 公式のMCPサーバを優先
- Model Context Protocol公式リポジトリのサーバを使用
- サードパーティサーバの検証
- ソースコードを確認してから使用
- 組織のallowlist/denylistの遵守
- 組織のポリシーに従う
認証情報の管理
- 環境変数の使用
- APIキーやトークンはハードコードせず環境変数で管理する。
- 設定ファイルのバージョン管理除外
- mcp.jsonファイルを .gitignoreファイルに追加する。
- 最小権限の原則
- 必要最小限の権限のみをMCPサーバに付与する。
巻き戻し機能 (/rewind)
巻き戻し機能は、コード変更と会話履歴を任意のポイントまで巻き戻す機能である。
探索的なアプローチでコーディングを行い、失敗した場合でも簡単に元の状態に戻すことができる。
基本的な使い方
巻き戻し機能を起動する方法を以下に示す。
方法 1 : キーボードショートカット
- [Esc] --> [Esc] (Escキーを2回連続で押す)
- 巻き戻しメニューが表示される
方法 2 : スラッシュコマンド
/rewind
巻き戻しメニューでは、以下の3つの選択肢が表示される。
巻き戻しの3つの選択肢
巻き戻し時に、以下の3つの選択肢から選択できる。
| 選択肢 | 説明 | 使用場面 |
|---|---|---|
| Conversation only | 会話履歴のみを巻き戻す | コードは保持したまま、会話を再開したい場合 |
| Code only | コード変更のみを巻き戻す | 会話履歴は保持したまま、コードを元に戻したい場合 |
| Both | 会話とコード両方を巻き戻す | 完全に前の状態に戻したい場合 |
選択後、巻き戻したいポイント (ユーザプロンプト または ファイル編集) を選択する。
自動追跡される変更
巻き戻し機能は、以下の変更を自動的に追跡する。
追跡される変更:
- ユーザプロンプト
- ユーザが入力した全てのプロンプト
- ファイル編集
- Edit、Write、NotebookEdit ツールによる変更
- ファイルの作成、変更、削除
- セッション履歴
- 会話の流れとコンテキスト
追跡されない変更 (制限事項):
- Bashコマンドでの変更
git commitnpm install- これらの変更は手動で元に戻す必要がある。
- 外部ツールでの変更
- Claude Code外で行われた変更
使用すべきケース
巻き戻し機能を使用すべきケースを以下に示す。
探索的アプローチ
- 複数のアプローチを試す
- アプローチAを試して、うまくいかなければ巻き戻してアプローチBを試す
- 実験的な実装
- 新しいライブラリやパターンを試して、問題があれば元に戻す
- リファクタリングの試行
- リファクタリングを試して、結果が良くなければ元に戻す
失敗した実装の取り消し
- バグが発生した場合
- 変更によってバグが発生した場合、すぐに元に戻す
- パフォーマンス低下
- 変更によってパフォーマンスが低下した場合
- テストの失敗
- 変更によってテストが失敗した場合
会話の再構成
- 会話の方向性を変える
- 会話が脱線した場合、前のポイントに戻って方向性を変える
- 誤った指示の訂正
- 誤った指示を出した場合、巻き戻して正しい指示を出す
ベストプラクティス
巻き戻し機能を効果的に使用するためのベストプラクティスを以下に示す。
段階的な変更
- 小さな変更を積み重ねる
- 大きな変更を一度に行うのではなく、小さな変更を段階的に行う
- 巻き戻しが容易になる
- 各段階で動作確認
- 変更後に動作を確認してから次の変更に進む
Git統合
- 巻き戻し後にGitコミット
- 巻き戻した後、良い状態をGitにコミットする
- Gitとの併用
- 巻き戻し機能はGitの代替ではなく、Gitと併用する
- Gitで管理できない細かい変更に巻き戻し機能を使用
会話の整理
- 重要なポイントでマーク
- 重要な決定や変更の後に、明示的なコメントを残す
- 巻き戻し時に見つけやすくなる
Bashコマンドへの注意
- Bashコマンドの変更は手動で元に戻す、
git commit、npm install等は巻き戻されない。- これらのコマンドを実行する前に、状態を確認する。
その他の重要なスラッシュコマンド
Claude Codeには、上記3つの主要機能以外にも有用なスラッシュコマンドが多数存在する。
セッション管理
/exit- セッションを終了する
/clear- 会話履歴をクリアする (コードは保持)
/reset- セッション全体をリセット
サブエージェント関連
/agents- 利用可能なサブエージェントの一覧を表示
- サブエージェントの詳細情報を確認
設定とコンテキスト
/config- Claude Codeの設定を表示・変更
/context- 現在のコンテキスト情報を表示
- コンテキストウインドウの使用状況を確認
コスト管理
/cost- 現在のセッションのコストを表示
- トークン使用量とAPI呼び出し回数を確認
診断とトラブルシューティング
/doctor- Claude Codeの動作環境を診断
- 問題があれば修正方法を提案
ヘルプ
/help- 利用可能なコマンドの一覧を表示
- 各コマンドの使い方を確認
キーボードショートカット一覧
Claude Codeで使用できるキーボードショートカットを以下に示す。
| ショートカット | 機能 | 説明 |
|---|---|---|
| [Ctrl] + [C] | 中断 | 実行中の処理を中断 |
| [Ctrl] + [D] | 終了 | セッションを終了 |
| [Ctrl] + [G] | Gitコミット | 変更をGitにコミット (対話的) |
| [Shift] + [Tab] | プランモード切り替え | プランモードと通常モードを切り替え |
| [Esc] --> [Esc] ([Esc]キーを2回押下) |
巻き戻し | 巻き戻しメニューを表示 |
| [Ctrl] + [L] | 画面クリア | ターミナル画面をクリア (会話は保持) |
| [Tab] | 自動補完 | コマンドやパスの自動補完 |
| 矢印キー (上 / 下) | 履歴移動 | 入力履歴を遡る・進む |
主要なCLIフラグ
Claude Codeを起動する際に使用できる主要なCLIフラグを以下に示す。
権限モード
claude --permission-mode <モード>
モードの種類:
- ask (デフォルト)
- 各操作前にユーザに確認を求める
- plan
- 読み取り専用モード (プランモード)
- allow
- 全ての操作を自動承認
モデル選択
claude --model <モデル名>
# 使用例 : claude --model claude-opus-4-20250514 claude --model claude-sonnet-4-20250514
出力形式
非対話的な出力を行う。(これは、パイプやスクリプトでの使用に適している)
claude --print
ヘッドレスモード
対話なしで実行する。(これは、自動化に適している)
claude --headless --prompt "プロンプト内容"
セッション再開
claude --continue
claude --resume <セッション名>
その他の有用なフラグ
claude --help
全てのCLIフラグの一覧を表示する。
claude --version
Claude Codeのバージョンを表示する。
claude --no-mcp
MCPサーバを無効化して起動する。
推奨される方法
Claude Codeの主要機能を効果的に組み合わせて使用するために推奨される方法を以下に示す。
セッション管理の戦略
複数のセッションを効果的に管理する方法を示す。
セッション分割の基準
- タスクの性質で分ける
- 機能開発、バグ修正、リファクタリング等
- 優先度で分ける
- 緊急タスク、通常タスク、実験的タスク
- プロジェクトで分ける
- プロジェクトAのセッション、プロジェクトBのセッション
セッション名の命名規則
- プロジェクト名-タスク名の形式
- 例: myapp-user-authentication
- 日付を含める (長期プロジェクト)
- 例: api-redesign-2025-01
- 優先度を含める
- 例: urgent-login-bug-fix
MCPとセッションの組み合わせ
MCPサーバをセッションごとに使い分ける方法を示す。
プロジェクトスコープのMCP設定
- プロジェクト固有のMCPサーバを設定
- プロジェクトルートに mcp.json を配置
- セッション再開時に自動的にMCPサーバが読み込まれる
- プロジェクトに復帰すると、そのプロジェクト用のMCP設定が有効になる
ローカルスコープのMCP設定
- 特定のディレクトリでのみ使用するMCPサーバ
- .claude/mcp.jsonファイルに設定
- 実験的なMCPサーバの試行
- ローカルスコープで試してから、プロジェクトスコープに昇格
巻き戻しとGitの併用
巻き戻し機能とGitを併用する戦略を示す。
巻き戻しとGitの使い分け
- 細かい試行錯誤: 巻き戻し機能
- 複数のアプローチを試す際は巻き戻し機能を使用
- 安定したポイント: Gitコミット
- 良い状態になったらGitにコミット
- 大きな変更の前: Gitブランチ
- 大きな変更を行う前にブランチを作成
ワークフロー例
- 新機能の開発を開始
- 巻き戻し機能を使って複数のアプローチを試す
- 良いアプローチが見つかったらGitコミット
- さらに開発を進める
- 完成したら最終的なGitコミットとプッシュ
プランモードとの統合
主要機能をプランモードと組み合わせる方法を示す。
- プランモードでの計画立案 --> 通常モードでの実装
- プランモード ([Shift] + [Tab] キー) で計画を立てる
- セッションに名前を付けて保存
- 通常モードに切り替えて実装
- 必要に応じて巻き戻しながら実装
- 完成したらGitコミット
- セッションを終了または保存
- プランモードでのMCP活用
- プランモードでMCPサーバ経由でデータベーススキーマを確認
- API仕様をMCP経由で取得
- 計画を立案
- 通常モードに切り替えて実装
参考リンク
- Claude Code公式ドキュメント
- Claude Code公式ドキュメント - Sessions
- Claude Code公式ドキュメント - Model Context Protocol
- Claude Code公式ドキュメント - Rewind
- Model Context Protocol公式サイト