- Authors
- Name
- 1. Claude Code 紹介
- 2. インストールと初期設定
- 3. 基本的な使い方
- 4. コアスラッシュコマンド
- 5. ツール(Tools)システム
- 6. Permissionモード
- 7. CLAUDE.md活用法
- 8. MCP(Model Context Protocol)サーバー連携
- 9. マルチエージェントアーキテクチャ
- 10. IDE統合
- 11. カスタムフック
- 12. Git統合
- 13. 高度な活用パターン
- 14. Claude Code vs 競合ツール比較
- 15. コスト最適化のヒント
- 16. トラブルシューティングガイド
- 17. Claude Agent SDK:プログラマティックな活用
- 18. 参考資料
1. Claude Code 紹介
Agentic Codingとは?
Agentic Codingとは、AIが単にコードを自動補完するレベルを超え、コードベースを理解し自らファイルを探索・編集し、コマンドを実行して自律的に開発作業を遂行するパラダイムだ。従来のコード自動補完(autocomplete)ツールが「次の行」を予測するだけに留まっていたのに対し、agentic codingツールは開発者の意図を把握して作業フロー全体を自律的に処理する。
Claude CodeはAnthropicが公式に提供するターミナルベースのAIコーディングエージェントだ。IDEプラグインではなくCLI(Command Line Interface)として動作し、ターミナルで自然言語コマンドを通じてコードの読み取り、修正、実行の全プロセスを管理する。
コア特徴
Claude Codeが既存のAIコーディングツールと差別化されるコア特徴は以下の通りだ。
- ターミナルネイティブ:IDEに依存せずターミナルから直接実行される。SSHリモートサーバー、Dockerコンテナ、CI/CDパイプラインなどどこでも使用可能だ。
- コードベース理解:プロジェクト構造を自動分析し、ファイル間の依存関係を把握してコンテキストに合った作業を遂行する。
- ツールベースアーキテクチャ:Read、Write、Edit、Bash、Glob、Grepなど多様な内蔵ツールを組み合わせて複雑な作業を遂行する。
- Gitネイティブ統合:コミット、ブランチ作成、PR作成、コードレビューまでGitワークフロー全体を自然言語で処理する。
- Extended Thinking:複雑な問題に対してまず推論過程を経た後にコードを作成する思考チェーンがデフォルトで有効になっている。
- マルチエージェント:Task toolとSubagentを活用して最大10個の並列タスクを同時処理する。
どのような作業に適しているか?
Claude Codeは以下のようなシナリオで特に強力だ。
1. 大規模リファクタリング → "すべてのclass componentをfunction componentに変換して"
2. コードベース探索 → "認証ロジックがどこに実装されているか分析して"
3. バグデバッグ → "このエラーログを分析して原因を見つけて修正して"
4. テストコード生成 → "このモジュールのunit testを書いて"
5. Gitワークフロー → "変更をコミットしてPRを作成して"
6. ドキュメント化 → "このAPIのJSDocを書いて"
7. CI/CD自動化 → "GitHub Actionsでコードレビューを自動化して"
2. インストールと初期設定
システム要件
Claude Codeを使用するには以下の環境が必要だ。
- OS:macOS、Linux(WindowsはWSL経由で使用)
- Node.js:v18以上(npmインストール時)
- アカウント:Claude Pro、Max、Teams、Enterprise、またはConsole(API)アカウント(無料プランは非対応)
インストール方法
方法1:ネイティブインストール(推奨)
ネイティブバイナリインストール方式が現在の公式推奨方法だ。別途Node.jsの依存関係が不要で、自動アップデートに対応している。
# macOS / Linux ネイティブインストール
curl -fsSL https://claude.ai/install.sh | bash
方法2:npm経由のインストール
既存のNode.js環境がすでに構築されている場合、npmでもインストールできる。
# npm グローバルインストール
npm install -g @anthropic-ai/claude-code
# インストール確認
claude --version
方法3:VS Code Extension
VS Codeマーケットプレイスから直接インストールすることもできる。
1. VS CodeでCmd+Shift+X (Mac) / Ctrl+Shift+X (Windows/Linux)
2. "Claude Code"を検索
3. Installをクリック
認証設定
Claude Codeは2つの認証方式をサポートしている。
OAuth認証(Pro/Max/Teams/Enterprise)
# 初回実行時にブラウザOAuth認証
claude
# 手動ログイン
claude auth login
初めてclaudeコマンドを実行するとブラウザが開き、AnthropicアカウントでログインするOAuthフローが開始される。認証完了後、トークンがローカルに保存され以降は自動ログインされる。
APIキー認証(Console)
# 環境変数でAPIキーを設定
export ANTHROPIC_API_KEY="sk-ant-api03-..."
# または.envファイルに保存
echo 'ANTHROPIC_API_KEY=sk-ant-api03-...' >> ~/.zshrc
source ~/.zshrc
APIキーはAnthropic Consoleで生成できる。絶対に公開リポジトリにAPIキーをコミットしないよう注意する。
モデル選択
Claude Codeは複数のClaudeモデルをサポートしている。デフォルトモデルはClaude Sonnetで、必要に応じて変更できる。
# モデル確認と変更
claude --model claude-sonnet-4-6
claude --model claude-opus-4-6
claude --model claude-haiku-3-5
# 会話中のモデル変更
/model
インストール検証
インストールが正常に完了したか確認するには以下のコマンドを実行する。
# バージョン確認
claude --version
# 簡単なテスト
claude "Say hello"
# 環境診断
claude doctor
3. 基本的な使い方
Claude Codeは3つの実行モードをサポートしている。状況に応じて適切なモードを選択すればよい。
3.1 対話型(Interactive)モード
最も基本的な使用方法だ。ターミナルでclaudeを実行すると対話型REPL環境が開始される。
# 対話型モード開始
claude
# プロジェクトディレクトリで開始(推奨)
cd ~/my-project && claude
対話型モードでは自然言語で作業を指示する。
> このプロジェクトの構造を分析して
> src/auth/login.tsファイルにJWT検証ロジックを追加して
> package.jsonのすべての依存関係を最新バージョンに更新して
Claudeは各作業に必要なツールを自動的に選択して実行する。ファイル修正やコマンド実行前にはユーザーの承認を要求する。
3.2 ワンショット(One-shot)モード
初期プロンプトを引数として渡すと、会話が開始された後そのプロンプトがすぐに実行される。
# 初期プロンプトと共に開始
claude "srcディレクトリのすべてのTypeScriptファイルでdeprecated API使用を見つけて"
# 特定ファイルを参照して質問
claude "このファイルのパフォーマンス問題を分析して" --file src/utils/parser.ts
3.3 パイプ(Pipe)/ヘッドレス(Headless)モード
--print(-p)フラグを使用すると非対話型モードで実行される。CI/CDパイプラインやスクリプト自動化に適している。
# 非対話型実行
claude -p "package.jsonの依存関係リストを整理して"
# stdinを通じたパイプ入力
cat error.log | claude -p "このエラーログを分析して解決方法を提案して"
# PR diffを分析
git diff main...HEAD | claude -p "この変更でセキュリティ脆弱性をレビューして"
# 出力形式の指定
claude -p "プロジェクト構造を分析して" --output-format json
# CI/CDパイプラインでの使用
claude -p "コードレビューを実行して" \
--dangerously-skip-permissions \
--output-format stream-json
パイプモードのコア特徴は以下の通りだ。
| 特性 | 説明 |
|---|---|
--print / -p | 非対話型モード有効化 |
--output-format | text、json、stream-json対応 |
--dangerously-skip-permissions | すべての権限確認をスキップ(CI/CD専用) |
--session-id | マルチターンセッション維持 |
--resume | 前のセッションを再開 |
--append-system-prompt | デフォルトのシステムプロンプトに追加指示 |
マルチターンセッション例
# セッションIDを指定して連続会話
claude -p "プロジェクト構造を分析して" --session-id my-review
# 同じセッションでフォローアップ質問
claude -p "さっき分析した構造で改善すべき点は?" \
--session-id my-review --resume
4. コアスラッシュコマンド
Claude Codeの対話型モードでは/で始まるスラッシュコマンドを使用できる。これらのコマンドはセッション管理、モデル変更、コスト確認など様々な機能を提供する。
必須コマンド一覧
| コマンド | 説明 | 使用タイミング |
|---|---|---|
/help | 利用可能なすべてのコマンドを表示 | 初めて使用する時 |
/init | CLAUDE.mdファイル生成 | 新しいプロジェクト開始時 |
/model | AIモデル変更(Sonnet/Opus/Haiku) | 作業の複雑度に応じて |
/compact | 会話履歴の圧縮 | 長いセッションでコンテキスト節約 |
/cost | 現在のセッションのトークン使用量確認 | コストモニタリング |
/clear | 会話履歴の初期化 | 新しいトピック開始時 |
/doctor | インストール状態の診断 | 問題発生時 |
/review | コードレビューの実行 | PR前のレビュー |
/commit | Gitコミットの生成 | 変更保存時 |
/hooks | カスタムフック設定 | 自動化ワークフロー構成時 |
/login | 認証の再実行 | トークン期限切れ時 |
/logout | ログアウト | アカウント切り替え時 |
/config | 設定確認と変更 | 設定カスタマイズ |
/permissions | 権限設定の管理 | セキュリティ設定調整時 |
主要コマンド詳細
/init - プロジェクト初期化
/init
/initはプロジェクトルートにCLAUDE.mdファイルを自動生成する。このファイルにはプロジェクト構造、ビルドコマンド、コーディングコンベンションなどが含まれる。新しいプロジェクトで最初に実行すべきコマンドだ。
/compact - 会話圧縮
# 基本圧縮
/compact
# カスタム指示と共に圧縮
/compact 認証関連のコンテキストだけ保持して
/compactは会話履歴を要約してコンテキストウィンドウの空間を確保する。重要な情報は保持しつつ不要な重複を除去する。長いコーディングセッションでは必須のコマンドだ。Claude Codeはコンテキスト上限に達すると自動的にauto-compactionを実行するが、手動で実行するとより精密な制御が可能だ。
/model - モデル変更
/model
実行すると利用可能なモデル一覧が表示され、現在の作業に適したモデルを選択できる。一般的な推奨事項は以下の通りだ。
- Haiku:簡単な質問、素早いコード生成、コスト節約
- Sonnet:日常的なコーディング作業(デフォルト、最もバランスの取れた選択)
- Opus:複雑なアーキテクチャ設計、大規模リファクタリング、深い推論が必要な作業
/cost - コスト確認
/cost
現在のセッションで使用した入力/出力トークン数と予想コストを表示する。セッション管理に有用で、/compactの前後でコストを比較すると節約効果を確認できる。
/doctor - 環境診断
/doctor
インストール状態、API接続、権限設定、MCP構成などを自動的にチェックする。問題が検出されると解決方法を提案する。Anthropic公式ドキュメントによると、一般的な問題の85%を自動診断する。
カスタムスラッシュコマンド
.claude/commands/ディレクトリにMarkdownファイルを作成すると、カスタムスラッシュコマンドを作れる。
<!-- .claude/commands/review-security.md -->
以下の項目を重点にセキュリティレビューを実行してください:
1. SQLインジェクション脆弱性
2. XSS脆弱性
3. 認証/認可バイパスの可能性
4. 機密情報の露出
5. CSRF脆弱性
変更されたファイルのみを対象に分析し、各項目ごとに深刻度(High/Medium/Low)を表示してください。
このように作成したファイルは/review-securityで呼び出せる。
5. ツール(Tools)システム
Claude Codeの核心的な強みは、多様な内蔵ツールを組み合わせて作業を遂行するツールベースアーキテクチャにある。Claudeはユーザーのリクエストを分析して適切なツールを自動選択し実行する。
内蔵ツール全一覧
読み取り専用ツール(Zero-risk)
これらのツールはファイルシステムや外部状態を変更しないため、別途の権限承認は不要だ。
| ツール | 説明 | 使用例 |
|---|---|---|
| Read | ファイル内容の読み取り(画像、PDF含む) | ソースコード分析、設定ファイル確認 |
| Glob | ファイル名パターンマッチング | **/*.ts、src/**/*.test.jsパターン検索 |
| Grep | ファイル内容検索(ripgrepベース) | 正規表現でコードパターン検索 |
| WebSearch | Web検索 | 最新ドキュメント、APIリファレンス照会 |
| WebFetch | URLコンテンツの取得 | 公開URL内容の読み取り |
書き込みツール
ファイルを修正したりコマンドを実行するツールだ。デフォルトでは実行前にユーザーの承認を要求する。
| ツール | 説明 | 使用例 |
|---|---|---|
| Edit | ファイル内容の正確な修正(文字列置換) | 特定関数の修正、変数名の変更 |
| MultiEdit | 1つのファイルで複数箇所を同時修正 | 複数のimport文の追加 |
| Write | ファイル作成または全体上書き | 新規ファイル作成、設定ファイル作成 |
| Bash | シェルコマンド実行 | npm install、git commit、docker build |
| NotebookEdit | Jupyterノートブックセル編集 | データ分析ノートブックの修正 |
エージェントツール
複雑な作業を分割し並列処理するツールだ。
| ツール | 説明 | 使用例 |
|---|---|---|
| Task | サブエージェントの生成と実行 | 並列コードレビュー、マルチファイル分析 |
各ツールの動作方式
Read - ファイル読み取り
Readツールは絶対パスを使用してファイルを読み取る。
- テキストファイル:行番号付きで内容を表示
- 画像(PNG、JPG):マルチモーダル分析
- PDF:特定ページ範囲の指定可能(pages: "1-5")
- Jupyterノートブック:すべてのセルと出力を表示
- 大容量ファイル:offsetとlimitで部分読み取り
Edit - 精密修正
Editツールはファイル内でユニークな文字列を見つけて正確に置換する方式で動作する。ファイル全体を上書きしないため安全だ。
作業フロー:
1. Readでファイル内容を確認
2. old_string(既存内容)とnew_string(新しい内容)を指定
3. old_stringがファイル内でユニークか確認
4. ユニークでなければより多くの周辺コンテキストを含めてリトライ
Bash - コマンド実行
Bashツールはシェルコマンドを実行する。サンドボックス環境でセキュリティが適用され、最大10分(600秒)のタイムアウトがある。
# Bashツールで実行可能な作業の例
npm install express
git status
docker compose up -d
python manage.py migrate
kubectl get pods
Glob & Grep - 検索
Globはファイル名パターンで検索し、Grepはファイル内容を正規表現で検索する。両ツールともripgrepベースで、大規模コードベースでも高速なパフォーマンスを提供する。
Glob例:
- **/*.ts → すべてのTypeScriptファイル
- src/**/test.* → src配下のすべてのテストファイル
- *.{js,jsx,ts,tsx} → すべてのJavaScript/TypeScriptファイル
Grep例:
- "TODO|FIXME" → すべてのTODO/FIXMEコメント
- "function\s+\w+" → 関数宣言の検索
- "import.*from\s+'react'" → React importの検索
Task - サブエージェント
Taskツールは独立したコンテキストウィンドウを持つサブエージェントを生成する。複雑な作業の分割や並列処理に使用する。詳細は9章 マルチエージェントアーキテクチャで扱う。
6. Permissionモード
Claude Codeはセキュリティのために4つの権限モードを提供する。各モードはClaudeに付与する自律性のレベルを定義する。
4つの権限モード
1. Normalモード(デフォルト)
最も一般的なモードで、読み取り操作は自動承認し、書き込み/実行操作はユーザー確認を要求する。
自動承認:Read、Glob、Grep、WebSearch、WebFetch
確認必要:Edit、Write、Bash、NotebookEdit
ほとんどの使用シナリオ(約85%)に適している。
2. Planモード
読み取り専用アクセスのみ許可し、ファイル修正やコマンド実行はブロックする。コード分析やアーキテクチャ設計段階で使用する。
自動承認:Read、Glob、Grep、WebSearch、WebFetch
ブロック:Edit、Write、Bash(すべての書き込み操作)
3. Auto-acceptモード
ファイルの読み取りと書き込みを自動承認するが、シェルコマンドは依然として確認を要求する。大規模リファクタリングのような反復的なファイル修正が必要な作業に適している。
# Auto-acceptモードで実行
claude --auto-accept-edits
4. Bypassモード(危険)
すべての権限確認をスキップする。隔離されたCI/CD環境でのみ使用すべきだ。ローカル開発環境では絶対に使用しない。
# CI/CD専用 — 絶対にローカルで使用しないこと
claude --dangerously-skip-permissions
settings.jsonによる細かな権限制御
~/.claude/settings.json(グローバル)または.claude/settings.json(プロジェクト)でツールごとに細かな権限ルールを定義できる。
{
"permissions": {
"allow": [
"Read",
"Edit",
"MultiEdit",
"Write",
"Glob",
"Grep",
"Bash(npm run lint)",
"Bash(npm run test *)",
"Bash(git status)",
"Bash(git diff *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(curl *)",
"Bash(wget *)",
"WebFetch(domain:internal.company.com)"
]
}
}
ルールの評価順序は以下の通りだ。
- denyルールを先に確認 -- マッチすれば無条件でブロック
- allowルールを確認 -- マッチすれば自動承認
- どこにもマッチしなければユーザーに確認を要求(ask)
プロジェクト別権限の継承
プロジェクト.claude/settings.jsonのdenyルールはグローバルルールとマージされるが、allowルールはグローバル権限を超えることはできない。これは悪意のあるプロジェクト設定がシステムセキュリティをバイパスするのを防止する。
サンドボックス
権限とは別に、OSレベルのサンドボックスが適用される。これはBashツールのファイルシステムおよびネットワークアクセスを物理的に制限する。
- macOS:Seatbeltベースのサンドボックス
- Linux:bubblewrap(bwrap)ベースの隔離
# サンドボックスの無効化(信頼できる環境でのみ)
claude --dangerously-disable-sandbox
7. CLAUDE.md活用法
CLAUDE.mdとは?
CLAUDE.mdはClaude Codeにプロジェクトのコンテキスト、コーディングコンベンション、ビルドコマンドなどを伝えるプロジェクトメモリファイルだ。すべてのセッション開始時に自動的にロードされ、Claudeの応答品質に直接的な影響を与える。
メモリシステム構造
Claude Codeは2つのメモリシステムを提供する。
1. CLAUDE.md(手動メモリ)
開発者が直接記述するプロジェクトコンテキストファイルだ。階層的構造をサポートする。
~/.claude/CLAUDE.md → グローバル(すべてのプロジェクトに適用)
~/project/CLAUDE.md → プロジェクトルート
~/project/src/CLAUDE.md → サブディレクトリ
~/project/src/components/CLAUDE.md → より詳細なディレクトリ
すべてのレベルのCLAUDE.mdが同時にロードされ、より具体的なレベルが競合時に優先される。
2. Auto Memory(自動メモリ)
Claudeに「これを覚えて」と言うと自動的に保存されるメモリだ。ビルドコマンド、デバッグインサイト、アーキテクチャメモ、ワークフロー習慣などが自動的に蓄積される。
> このプロジェクトでテストは常にvitestを使うことを覚えて
✓ メモリに保存されました。
CLAUDE.md作成のベストプラクティス
効果的なCLAUDE.mdの例
# プロジェクト概要
Next.js 14 App Routerベースの技術ブログ。MDXベースのコンテンツ管理。
# 技術スタック
- Framework: Next.js 14 (App Router)
- Language: TypeScript 5.3
- Styling: Tailwind CSS v3
- DB: Prisma + PostgreSQL
- Test: Vitest + React Testing Library
# ビルドと実行コマンド
- `npm run dev` — 開発サーバー
- `npm run build` — プロダクションビルド
- `npm run test` — テスト実行
- `npm run lint` — ESLint実行
# コーディングコンベンション
- 関数コンポーネントのみ使用(classコンポーネント禁止)
- named export優先(default exportはページでのみ)
- エラー処理は必ずtry-catchで囲む
- 変数名はcamelCase、型名はPascalCase
- import順序:react → 外部ライブラリ → 内部モジュール → スタイル
# アーキテクチャ
- app/ — Next.js App Routerページ
- components/ — 再利用可能コンポーネント
- lib/ — ユーティリティとヘルパー
- prisma/ — DBスキーマとマイグレーション
# 注意事項
- API Routeでは認証ミドルウェアを必ず適用すること
- DBクエリ時にPrismaのselectを使用して必要なフィールドのみ取得すること
- 環境変数は.env.localにのみ保存(絶対にコミット禁止)
作成原則
Anthropic公式ガイドで推奨されるCLAUDE.md作成原則は以下の通りだ。
- 簡潔に保つ:150行以下を推奨する。フロンティアLLMは約150-200個の指示を一貫して従うことができる。
- 高シグナル情報のみ含める:Claudeがコードを読んで自ら推論できる内容は除外する。
- コードスニペットは避ける:コードはすぐに古くなる。代わりに
file:line形式の参照を使用する。 - リンターの役割はリンターに:コードスタイルルールはESLint、Prettierのようなツールに任せる。LLMでスタイルを強制するのは非効率的だ。
- 段階的開示:すべての内容をルートCLAUDE.mdに入れず、関連ディレクトリごとに分散配置する。
8. MCP(Model Context Protocol)サーバー連携
MCPとは?
Model Context Protocol(MCP)は、AIモデルが外部ツール、データベース、APIと相互作用するためのオープンソース標準プロトコルだ。Claude CodeはMCPクライアントとして多様なMCPサーバーに接続し機能を拡張できる。
MCPサーバーの追加方法
CLIコマンドで追加
# HTTPリモートサーバーの追加
claude mcp add circleback --transport http https://app.circleback.ai/api/mcp
# stdioローカルサーバーの追加
claude mcp add my-tool --type stdio --command node /path/to/tool.js
# 環境変数と共に追加
claude mcp add github-mcp \
--type stdio \
--command npx \
--args "-y @modelcontextprotocol/server-github" \
--env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxx
# サーバー一覧の確認
claude mcp list
# サーバーの削除
claude mcp remove my-tool
settings.jsonで直接設定
複雑な設定が必要な場合は設定ファイルを直接編集する方が便利だ。
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/docs"]
}
}
}
人気MCPサーバー
| MCPサーバー | 機能 | ユースケース |
|---|---|---|
server-github | GitHub API連携 | Issue、PR、リポジトリ管理 |
server-postgres | PostgreSQLアクセス | DBスキーマ分析、クエリ実行 |
server-filesystem | ファイルシステムアクセス | プロジェクト外部ファイルの読み取り |
server-puppeteer | ブラウザ制御 | Webスクレイピング、E2Eテスト |
server-slack | Slack連携 | メッセージ検索、チャンネル管理 |
server-notion | Notion連携 | ドキュメント検索、ノート管理 |
server-linear | Linear連携 | Issueトラッキング、プロジェクト管理 |
Claude CodeをMCPサーバーとして使用
興味深いことに、Claude Code自体をMCPサーバーとして公開できる。これによりClaude Desktop、Cursor、Windsurfなど他のMCPクライアントからClaude Codeのファイル編集やコマンド実行機能をリモートで呼び出せる。
# Claude CodeをMCPサーバーとして実行
claude mcp serve
MCP Tool Search
MCP Tool SearchはMCPサーバーのlazy loadingを可能にする機能だ。コンテキスト使用量を最大95%まで削減でき、多くのMCPサーバーを登録してもコンテキスト上限を気にせず使用できる。
# MCPデバッグモードで問題を診断
claude --mcp-debug
9. マルチエージェントアーキテクチャ
Task Tool:並列処理の核心
Claude CodeのマルチエージェントシステムはTask toolを基盤としている。Task toolは独立したコンテキストウィンドウを持つサブエージェントを生成し、並列で作業を遂行する。
Task Toolの特徴
- 独立コンテキスト:各Taskはメイン会話とは別のコンテキストウィンドウを持つ
- 並列実行:最大10個の同時Task実行が可能、超過時はキューイング
- コンテキスト汚染防止:Taskの作業結果のみがメイン会話に返されるため、不要な中間過程がメインコンテキストを汚染しない
- 追加コンテキストの確保:大規模コードベースで事実上コンテキストウィンドウを拡張する効果
使用例
> 以下の3つのモジュールのテストコードを並列で書いて:
1. src/auth/login.ts
2. src/api/users.ts
3. src/utils/validator.ts
Claudeはこのリクエストを受けると3つのTaskを同時に生成し、それぞれ独立してテストコードを作成する。
Subagents:特化型エージェント
Subagentは Task tool上に構築された永続的で特化型のエージェントだ。Markdownファイルで定義し、特定ドメインに最適化されたシステムプロンプト、ツールアクセス権限、独立した権限設定を持つ。
Subagent定義
## <!-- .claude/agents/security-reviewer.md -->
name: Security Reviewer
description: セキュリティ脆弱性を専門的にレビューするエージェント
tools:
- Read
- Grep
- Glob
- WebSearch
---
あなたはセキュリティ専門家です。コードをレビューする際は以下の観点で分析してください:
1. OWASP Top 10脆弱性
2. 認証/認可の欠陥
3. データ流出リスク
4. 安全でない依存関係
各発見に対して深刻度(Critical/High/Medium/Low)と修正提案を含めてください。
実行フロー
ユーザーリクエスト
↓
メインClaude(オーケストレーター)
↓
┌─────────────┬─────────────┬─────────────┐
│ Task 1 │ Task 2 │ Task 3 │
│ Security │ Performance │ Test │
│ Reviewer │ Analyzer │ Generator │
└─────────────┴─────────────┴─────────────┘
↓ ↓ ↓
結果の収集と統合
↓
最終レスポンス
並列 vs 順次パターン
並列パターン
独立した作業を同時に処理する場合に使用する。
適したシナリオ:
- 複数ファイルのテストコード生成
- 複数モジュールのコードレビュー
- 複数APIエンドポイントのドキュメント化
- 多言語翻訳
順次パターン
作業間に依存関係がある場合に使用する。前のSubagentの結果が次のSubagentの入力になる。
適したシナリオ:
- 分析 → 設計 → 実装 → テストパイプライン
- DBスキーマ変更 → マイグレーション → API修正 → テスト
バックグラウンドエージェント
Claude Codeは非同期エージェント実行もサポートしている。サブエージェントをバックグラウンドに送り、他の作業を続けられる。
# Worktreeを作成して隔離された環境で作業
claude --worktree feature-auth
10. IDE統合
VS Code統合
VS Code拡張はClaude Codeの最も完成度の高いIDE統合だ。ネイティブUIで編集とdiffを表示し、ターミナルを使わなくてもClaude Codeのすべての機能を活用できる。
主要機能
- ネイティブチャットパネル:IDE内に統合されたグラフィカルインターフェース
- チェックポイントベースのUndo:Claudeの変更をグループ単位で元に戻せる
- @メンションファイル参照:
@src/auth/login.ts:25-50のように特定ファイルの行範囲を参照 - 並列会話:複数のClaude会話を別タブで同時進行
- Diffビューアー:Claudeが提案するコード変更をIDEのネイティブdiffビューでレビュー
- 会話履歴:以前のセッションの会話を検索し再開
インストールと設定
1. VS Codeマーケットプレイスで"Claude Code"をインストール
2. ターミナルにClaude Code CLIがすでにインストールされている必要がある
3. インストール後、サイドバーにClaudeアイコンが表示される
4. クリックしてチャットパネルを開く
キーボードショートカット
Cmd+Shift+P (Mac) / Ctrl+Shift+P (Windows)
→ "Claude Code"と入力して利用可能なコマンドを確認
主なショートカット:
- Claude Codeパネルの開閉
- 選択範囲をClaudeに送信
- 現在のファイルコンテキストでClaude開始
JetBrains統合
JetBrains IDE(IntelliJ、WebStorm、PyCharmなど)でもClaude Codeプラグインを使用できる。
インストール
1. JetBrains Marketplaceで"Claude Code [Beta]"を検索
2. Installをクリック
3. IDEを再起動
特徴
- CLIをIDEの統合ターミナル内で実行
- コード変更をIDEのネイティブdiffビューアーで表示
~/.claude/settings.jsonの設定をVS Codeと共有
Cursorとの比較:差別化ポイントは?
Claude CodeとCursorはAIコーディングツールだが、アプローチが異なる。
| 項目 | Claude Code | Cursor |
|---|---|---|
| 形態 | CLI + IDE Extension | 独立IDE(VS Code fork) |
| 実行環境 | ターミナル、SSH、Docker、CI/CDどこでも | Cursor IDE内でのみ |
| モデル | Claude専用(Sonnet/Opus/Haiku) | マルチモデル(Claude、GPT-4o、o3など) |
| 課金 | 従量制(トークン当たり)またはPro/Maxサブスク | 月額($20/40) |
| 強み | ターミナル統合、自動化、CI/CD、MCP | コードベースインデキシング、インライン編集 |
| エージェント | Task tool、Subagent、並列10個 | Composer Agent Mode |
| カスタマイズ | CLAUDE.md、フック、MCP、カスタムコマンド | .cursorrules、カスタムモデル |
Claude Codeが有利なシナリオ:ターミナル中心ワークフロー、CI/CD自動化、リモートサーバー作業、大規模リファクタリング、MCPエコシステム活用
Cursorが有利なシナリオ:GUI中心開発、インラインコード補完、マルチモデル切り替え、Tab補完速度
11. カスタムフック
フックとは?
HooksはClaude Codeのライフサイクルの特定時点で実行されるユーザー定義シェルコマンドだ。LLMに依存せず決定論的(deterministic)に動作を制御する。
イベント種類
Claude Codeは以下のイベントでフックを実行できる。
| イベント | タイミング | ユースケース |
|---|---|---|
| PreToolUse | ツール実行前 | 危険な操作のブロック、入力検証 |
| PostToolUse | ツール実行後 | コードフォーマット、リント、テスト実行 |
| Notification | Claudeが通知を送る時 | Slack通知、サウンド再生 |
| Stop | レスポンス完了時 | ログ記録、クリーンアップ作業 |
フック設定方法
方法1:/hooksコマンド(対話型)
/hooks
→ イベント選択(例:PostToolUse)
→ マッチャーパターン(例:Edit|Write)
→ コマンド(例:npx prettier --write $FILE)
方法2:settings.jsonを直接編集
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx prettier --write $(echo $TOOL_INPUT | jq -r '.file_path')"
}
],
"PreToolUse": [
{
"matcher": "Bash",
"command": "echo $TOOL_INPUT | jq -r '.command' | grep -q 'rm -rf /' && exit 1 || exit 0"
}
]
}
}
フック通信プロトコル
フックはstdin、stdout、stderr、exit codeを通じてClaude Codeと通信する。
stdin: イベント別JSONデータ(ファイルパス、ツール入力など)
stdout: Claudeに伝えるメッセージ
stderr: ロギング(Claudeには伝わらない)
exit code: 0 = 成功/続行、1 = ブロック/中断、2 = エラー
実践フック例
自動コードフォーマット(PostToolUse)
Claudeがファイルを修正するたびに自動でPrettierを実行する。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "FILE=$(echo $TOOL_INPUT | jq -r '.file_path') && npx prettier --write \"$FILE\" 2>/dev/null || true"
}
]
}
}
危険なコマンドのブロック(PreToolUse)
rm -rf /、DROP TABLEのような危険なコマンドを事前にブロックする。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "CMD=$(echo $TOOL_INPUT | jq -r '.command') && echo \"$CMD\" | grep -qE '(rm -rf /|DROP TABLE|format c:)' && echo 'BLOCKED: Dangerous command detected' && exit 1 || exit 0"
}
]
}
}
自動リントチェック(PostToolUse)
ファイル修正後に自動でESLintを実行する。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "FILE=$(echo $TOOL_INPUT | jq -r '.file_path') && [[ \"$FILE\" =~ \\.(ts|tsx|js|jsx)$ ]] && npx eslint --fix \"$FILE\" 2>/dev/null || true"
}
]
}
}
12. Git統合
コミットワークフロー
Claude CodeのGit統合は単にgitコマンドを代行するだけでなく、変更内容を分析して意味のあるコミットメッセージを自動生成する。
基本コミット
> 現在の変更をコミットして
Claudeは以下の過程を経る。
git statusで変更ファイルを確認git diffで変更内容を分析git logで既存コミットメッセージのスタイルを把握- 変更内容を分析してコミットメッセージを作成
- 関連ファイルのみ選択的に
git add - コミット生成と結果確認
選択的ステージング
> auth/ディレクトリの変更のみコミットして
> テストファイルは除外してコミットして
> セキュリティ関連の変更だけ別コミットに分離して
コミットのベストプラクティス
Claude Codeは以下の原則に従う。
- 機密ファイル(
.env、credentialsなど)は自動的に除外 git add -Aの代わりに個別ファイルを明示的にステージング- pre-commit hookを尊重(
--no-verifyの使用禁止) - 既存コミットメッセージのスタイルを参考にして一貫性を維持
--amendの代わりに新規コミット作成をデフォルトとする
PR作成
> 現在の変更でPRを作成して
Claudeはgh pr createを使用して以下を実行する。
- ブランチのすべてのコミットを分析(最新コミットだけでなく全体)
- PRタイトル作成(70文字以内)
- サマリー、変更一覧、テストチェックリストを含むPR本文の作成
- リモートブランチにpush
- PR作成後にURLを返却
PR本文の形式
## Summary
- 認証モジュールにJWTリフレッシュトークンロジックを追加
- トークン期限切れ時の自動更新処理を実装
## Test plan
- [ ] リフレッシュトークン発行テスト
- [ ] 期限切れトークンの更新テスト
- [ ] 不正なリフレッシュトークンの拒否テスト
コードレビュー
> 現在の変更をレビューして
> このPRのセキュリティ観点レビューを実行して
Claudeはdiffを分析して以下をレビューする。
- 潜在的なバグとロジックエラー
- セキュリティ脆弱性
- パフォーマンス問題
- コーディングコンベンション遵守状況
- テストカバレッジ
各発見に対して信頼度スコア(0-100)を付与し、80以上は高い確率で実際の問題だ。
GitHub Actions統合
Claude Codeはclaude-code-actionを通じてGitHub Actionsで自動コードレビューを実行できる。
# .github/workflows/claude-review.yml
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
issue_comment:
types: [created]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
# PRコメントで@claudeメンション時に自動応答
trigger_phrase: '@claude'
インストール簡素化
# Claude Code内でGitHub Appを自動インストール
/install-github-app
このコマンドはGitHub Appの設定、シークレット登録、ワークフローファイル生成までガイドする。
13. 高度な活用パターン
13.1 大規模リファクタリング
大規模リファクタリングはClaude Codeが最も輝くユースケースの1つだ。
戦略:段階的アプローチ
Step 1: 分析
> このプロジェクトでclass componentを使用しているすべてのファイルを見つけて
Step 2: 計画
> これらのコンポーネントをfunction componentに変換する計画を立てて。
変換順序、依存関係、リスク要因を含めて。
Step 3: 実行(Auto-acceptモード推奨)
> 計画通りsrc/components/Header.tsxから変換を開始して
Step 4: 検証
> 変換されたファイルのテストを実行して結果を教えて
Subagent活用の並列リファクタリング
独立したモジュールを並列でリファクタリングすると作業時間を大幅に短縮できる。
> 以下の3つのモジュールを並列でリファクタリングして:
1. src/auth/ — class → function component
2. src/api/ — callback → async/await
3. src/utils/ — CommonJS → ES Module
それぞれのテストも一緒に修正して。
13.2 テストコード自動生成
基本テスト生成
> src/utils/validator.tsのすべての関数に対するunit testを書いて。
edge caseとエラーケースも含めて。
テスト戦略の指定
> src/api/users.tsの統合テストを書いて。
- Vitest + Supertest使用
- テストDBはSQLite in-memory
- 各テスト前後でDB初期化
- 認証/非認証の両方をテスト
- エラーレスポンス形式も検証
カバレッジ向上
> npm run test -- --coverageの結果を分析して、
カバレッジが80%未満のファイルのテストを補強して。
13.3 デバッグワークフロー
エラーログ分析
# エラーログを直接パイプ
npm run build 2>&1 | claude -p "このビルドエラーを分析して修正して"
# スタックトレース分析
cat crash.log | claude -p "このクラッシュの根本原因を見つけて"
対話型デバッグ
> TypeError: Cannot read properties of undefined (reading 'map')
このエラーがsrc/components/UserList.tsxで発生している。
原因を見つけて修正して。
Claudeは以下の過程を遂行する。
- 該当ファイルを読んでコードを分析
- 関連データフローの追跡(上位コンポーネント、API呼び出しなど)
- undefinedが発生する条件の特定
- 修正コードの提案と適用
- 同じパターンの他の潜在的バグの検索
パフォーマンスプロファイリング
> このAPIエンドポイントのレスポンス時間が3秒以上だ。
コードを分析してパフォーマンス改善策を提案して。
特にN+1クエリ、不要な反復、キャッシュ可能ポイントを中心に。
13.4 ドキュメント化の自動化
JSDoc / TSDoc生成
> src/lib/ディレクトリのすべてのpublic関数にJSDocを書いて。
パラメータ型、戻り値、例を含めて。
APIドキュメント化
> src/api/ディレクトリのすべてのRESTエンドポイントを
OpenAPI 3.0スペックでドキュメント化して。
変更ログ生成
> 直近10個のコミットを分析してCHANGELOGエントリを作成して。
Keep a Changelog形式を使って。
14. Claude Code vs 競合ツール比較
AIコーディングツール市場は2026年基準で約$34.58B規模であり、プロフェッショナル開発者の62%がAIコーディングツールを使用している。主要ツールを比較する。
詳細比較表
| 項目 | Claude Code | GitHub Copilot | Cursor | Windsurf | OpenAI Codex |
|---|---|---|---|---|---|
| 形態 | CLI + Extension | IDE Extension | 独立IDE | 独立IDE | Cloud Agent |
| モデル | Claude専用 | マルチモデル | マルチモデル | マルチモデル | GPT/Codex専用 |
| エージェント | Task/Subagent | Copilot Agent | Composer Agent | Cascade/Flows | Cloud Sandbox |
| 並列処理 | 最大10個 | マルチエージェント | シングルAgent | シングルAgent | 隔離コンテナ |
| 価格 | 100 Max | $10-39/月 | $20-40/月 | $15/月~ | APIベース |
| SWE-bench | 57.5%(最高) | - | - | - | 77.3%(Terminal) |
| 特長 | ターミナル統合、MCP | エコシステム、4.7Mユーザー | コードインデキシング、UI | Flowsコンテキスト維持 | 隔離サンドボックス |
| GitHub占有率 | 4% of commits | 最大 | - | - | - |
各ツールの理想的なユースシナリオ
Claude Codeを選ぶべき場合
- ターミナル中心ワークフローで作業する時
- CI/CDパイプラインにAIを統合する時
- MCPを通じた外部ツール連携が必要な時
- 大規模リファクタリングやマルチファイル作業が頻繁な時
- SSHリモートサーバーやDockerコンテナで作業する時
GitHub Copilotを選ぶべき場合
- GitHubエコシステム中心で作業する時
- チーム全体が同じツールを使用する必要がある時
- 無料または低コストで始めたい時
- VS Codeでインライン補完に集中する時
Cursorを選ぶべき場合
- GUIベース開発を好む時
- コードベースインデキシングとセマンティック検索が重要な時
- 複数のAIモデルを柔軟に切り替えたい時
- インライン編集とTab補完速度が重要な時
実践的な組み合わせ推奨
多くの開発者は複数のツールを状況に応じて組み合わせて使用している。
日常コーディング: Cursor(インライン補完)+ Claude Code(複雑な作業)
コードレビュー: Claude Code(GitHub Actions自動レビュー)
リファクタリング: Claude Code(ターミナルで大規模作業)
素早いプロトタイプ: Cursor(GUIで素早い反復)
CI/CD自動化: Claude Code(ヘッドレスモード)
15. コスト最適化のヒント
料金体系の理解
Claude Codeのコストは使用するプランによって異なる。
サブスクリプションプラン
| プラン | 月額 | Claude Code含む | 特徴 |
|---|---|---|---|
| Free | $0 | 含まない | Claude Code使用不可 |
| Pro | $20 | 含む(使用量制限) | 一般ユーザー向け |
| Max 5x | $100 | 含む(Proの5倍) | 中級ユーザー向け |
| Max 20x | $200 | 含む(Proの20倍) | 上級ユーザー向け |
API直接使用(Console)
| モデル | 入力(1Mトークン) | 出力(1Mトークン) | キャッシュ読み取り | キャッシュ書き込み |
|---|---|---|---|---|
| Opus | $15 | $75 | $1.50 | $18.75 |
| Sonnet | $3 | $15 | $0.30 | $3.75 |
| Haiku | $0.80 | $4 | $0.08 | $1.00 |
Anthropicによると、平均的に開発者1人あたり1日約12以下だ。
コスト節約戦略
1. 適切なモデル選択
単純な作業(ファイル検索、簡単な修正): Haiku → コスト75%節約
一般作業(コーディング、デバッグ): Sonnet → デフォルト
複雑な作業(アーキテクチャ、リファクタリング):Opus → 必要な時だけ
2. /compactの積極的活用
# セッションコスト確認
/cost
# 会話圧縮
/compact
# 圧縮後にコスト確認 — 通常40-60%のトークン節約
/cost
3. プロンプトキャッシュの活用
Claude Codeは自動的にプロンプトキャッシュを適用する。繰り返されるシステムプロンプトやCLAUDE.md内容はキャッシュされてコストが削減される。キャッシュ読み取りコストは入力コストの**10%**に過ぎない。
4. Auto-compactionの活用
コンテキスト上限に達すると自動的に会話を要約する。これを信頼しつつ、重要なコンテキストが失われないよう、大きなトピック転換時には/clearで新しいセッションを開始するのが効率的だ。
5. 具体的なプロンプト作成
曖昧なリクエストより具体的なリクエストの方が不要な探索を減らしトークンを節約する。
NG: "このコードを改善して"
OK: "src/api/users.tsのgetUserById関数でN+1クエリをPrisma includeで最適化して"
6. プラン選択ガイド
月50Mトークン未満: Pro ($20) またはAPI pay-as-you-go
月50-200Mトークン: Max 5x ($100) — 最も効率的
月200Mトークン以上: Max 20x ($200) またはEnterprise
16. トラブルシューティングガイド
一般的な問題と解決法
問題1:"command not found: claude"
インストール後最もよくある問題だ。
# PATH確認
which claude
# npmグローバルパス確認
npm list -g --depth=0
# 再インストール
npm install -g @anthropic-ai/claude-code
# ネイティブ再インストール
curl -fsSL https://claude.ai/install.sh | bash
# シェル再起動
exec zsh # またはexec bash
問題2:認証エラー
# ログアウト後に再認証
claude auth logout
claude auth login
# APIキー使用時の環境変数確認
echo $ANTHROPIC_API_KEY
# APIキーの有効性テスト
claude "Hello" --verbose
問題3:Node.jsバージョン互換性
# Node.jsバージョン確認
node --version
# v18未満ならアップデート
nvm install 18
nvm use 18
# またはネイティブインストールに切り替え(Node.js依存なし)
curl -fsSL https://claude.ai/install.sh | bash
問題4:MCPサーバー接続失敗
# MCPデバッグモードで診断
claude --mcp-debug
# MCPサーバー一覧確認
claude mcp list
# 特定サーバーのログ確認
claude mcp logs my-server
# サーバー再起動
claude mcp remove my-server
claude mcp add my-server --type stdio --command node /path/to/server.js
問題5:コンテキストウィンドウ超過
# 症状:レスポンス品質の低下、以前のコンテキスト忘却
# 解決1:会話圧縮
/compact
# 解決2:新しいセッション開始
/clear
# 解決3:Task toolで作業分割(各Taskは独立コンテキスト)
> この作業を3つのサブタスクに分割して処理して
問題6:レスポンス速度が遅い
# モデル変更(Opus → Sonnet → Haiku)
/model
# 不要なMCPサーバーの削除
claude mcp list
claude mcp remove unused-server
# キャッシュ初期化
claude cache clear
診断チェックリスト
問題が発生した際は以下の順序で診断する。
# 1. インストール状態確認
claude --version
# 2. 環境自動診断
claude doctor
# 3. 詳細ログ出力
claude --verbose "テスト"
# 4. MCPサーバー診断
claude --mcp-debug
# 5. 設定ファイル確認
cat ~/.claude/settings.json
# 6. ネットワーク確認
curl -I https://api.anthropic.com
17. Claude Agent SDK:プログラマティックな活用
Claude Codeの機能をプログラミング方式で使用するにはClaude Agent SDK(@anthropic-ai/claude-agent-sdk)を活用する。
インストールと基本的な使い方
npm install @anthropic-ai/claude-agent-sdk
import { query } from '@anthropic-ai/claude-agent-sdk'
// 基本クエリ
const response = await query({
prompt: 'src/authディレクトリのセキュリティ脆弱性を分析して',
model: 'claude-sonnet-4-6',
maxTokens: 4096,
})
for await (const message of response) {
console.log(message)
}
主要API
| API | 説明 |
|---|---|
query() | ストリーミング方式のプロンプト実行 |
tool() | カスタムツール定義(Zodスキーマベース) |
createSdkMcpServer() | インプロセスMCPサーバーの生成 |
CI/CDパイプライン例
import { query } from '@anthropic-ai/claude-agent-sdk'
async function reviewPR(diff: string): Promise<string> {
const response = await query({
prompt: `以下のPR diffをレビューして:\n${diff}`,
model: 'claude-sonnet-4-6',
systemPrompt:
'あなたはシニアソフトウェアエンジニアです。セキュリティ、パフォーマンス、コード品質の観点からレビューしてください。',
permissions: { allowRead: true, allowWrite: false, allowBash: false },
})
let result = ''
for await (const message of response) {
result += message.content
}
return result
}
18. 参考資料
公式ドキュメント
- Claude Code公式ドキュメント
- CLIリファレンス
- スラッシュコマンド
- 権限設定
- フックガイド
- MCP連携
- コスト管理
- トラブルシューティング
- Subagent作成
- メモリシステム
- ヘッドレスモード
- GitHub Actions
- VS Code統合
- 公式ワークフロー
GitHub
npm
APIと価格
コミュニティ
- Awesome Claude Code — コミュニティキュレーションリソース集
- MCPサーバー開発ガイド