Claude Code × VSCode - IDE統合の使い方リファレンス
Claude CodeのVSCode拡張は、AIアシスタントをエディタに直接統合し、インラインdiff・@メンション・会話履歴の永続化などの機能を提供する。ターミナルCLI版と併用することで、開発ワークフローを効率化できる。
インストール
前提条件
| 項目 | 要件 |
|---|---|
| エディタ | VS Code または Cursor |
| Node.js | v18以上 |
| OS | macOS / Windows / Linux(WSL含む) |
| アカウント | Anthropicアカウント(Claude Pro / Max / Team / Enterprise) |
インストール手順
- VSCodeの拡張機能ビュー(
Ctrl+Shift+X)を開く - 「Claude Code」で検索
- Install をクリック
拡張機能が表示されない場合は、VSCodeの再起動またはコマンドパレット(Ctrl+Shift+P)から「Developer: Reload Window」を実行する。
起動方法
コマンドパレットから起動
Ctrl+Shift+P(macOSはCmd+Shift+P)でコマンドパレットを開き、以下のコマンドを選択する。
| コマンド | 説明 |
|---|---|
Claude Code: Open in New Tab | 新しいタブでClaude Codeパネルを開く |
Claude Code: Open in Side Panel | サイドパネルで開く |
Claude Code: Focus | 既存のClaude Codeパネルにフォーカスを移動 |
Claude Code: New Conversation | 新しい会話を開始 |
サイドバーアイコン
インストール後、アクティビティバー(左側のアイコン列)にClaude Codeのアイコンが追加される。クリックするとサイドパネルが開く。
@メンションによるコンテキスト送信
チャット入力欄で @ を入力すると、ファイルやフォルダを参照としてClaude Codeに送信できる。ファジーマッチに対応しており、完全なパス入力は不要。
@auth → auth.js, AuthService.ts などにファジーマッチ
@src/components/ → フォルダ全体を参照(末尾スラッシュでフォルダ指定)
使用例
> @utils/date.ts この関数のバグを見つけて
> @src/components/ このディレクトリの構造を説明して
> @package.json 使われていない依存関係はある?
@メンションで指定したファイルの内容がコンテキストとしてClaude Codeに送信されるため、大きなファイルやディレクトリを指定する場合はトークン消費に注意する。
コード選択からの質問
エディタ上でコードを選択し、右クリックメニューまたはコマンドパレットからClaude Codeに送信できる。
手順
- エディタ上で対象のコードを選択
- 右クリック → 「Claude Code」関連のメニューを選択、またはコマンドパレットからコマンドを実行
- Claude Codeパネルに選択範囲がコンテキストとして送信される
この機能により、特定の関数やクラスについてピンポイントで質問・リファクタリング指示を出せる。
diffビューでの変更確認
Claude Codeがファイルを変更すると、VSCodeのdiffビューで変更前後の差分を確認できる。
動作の流れ
- Claude Codeがファイル編集を提案
- VSCode上にインラインdiffが表示される
- 変更を Accept(承認)または Reject(拒否)で操作
diffビューはVSCodeネイティブの差分表示機能を利用しているため、通常のGit diffと同じ操作感で変更を確認できる。変更の一部だけを承認することも可能。
ファイルリンクのクリック対応
Claude Codeの出力に含まれるファイルパスはクリック可能なリンクとして表示される。クリックすると該当ファイルがエディタで開く。
- 絶対パス・相対パスのいずれにも対応
- 行番号付きリンク(
file.ts:42形式)の場合、該当行にジャンプ
ターミナルCLI版ではCtrl+クリックが必要だが、VSCode拡張ではパネル内のリンクを直接クリックできる。
診断情報の共有
VSCodeの「問題」パネル(Ctrl+Shift+M)に表示されるエラーや警告を、Claude Codeが自動的に認識する。
- TypeScriptの型エラー
- ESLintの警告
- その他の言語サーバーからの診断情報
これにより「このエラーを直して」のような指示で、エラー内容をClaude Codeが自動的に把握し修正提案を行える。
設定オプション
VSCodeの設定(Ctrl+,)→ Extensions → Claude Code で設定を変更できる。
主要な設定項目
| 設定キー | 説明 | デフォルト |
|---|---|---|
claudeCode.selectedModel | 新しい会話で使用するモデル | (デフォルトモデル) |
claudeCode.useTerminal | ターミナルモードで起動 | false |
claudeCode.initialPermissionMode | 権限プロンプトの処理方法 | (都度確認) |
claudeCode.preferredLocation | パネルの表示位置 | (自動) |
claudeCode.autosave | ファイルの自動保存 | (設定依存) |
claudeCode.useCtrlEnterToSend | Ctrl+Enterで送信 | false |
claudeCode.enableNewConversationShortcut | 新規会話ショートカットの有効化 | true |
claudeCode.hideOnboarding | オンボーディングチェックリストを非表示 | false |
claudeCode.respectGitIgnore | .gitignoreのパターンをファイル検索で尊重 | true |
claudeCode.environmentVariables | Claude Codeプロセスに渡す環境変数 | {} |
claudeCode.disableLoginPrompt | ログインプロンプトを無効化 | false |
claudeCode.claudeProcessWrapper | カスタム実行パスの指定 | (なし) |
ターミナルモードの切り替え
GUIパネルではなくターミナルベースのUIを好む場合、ターミナルモードに切り替えられる。
設定 → Extensions → Claude Code → Use Terminal にチェック
または直接 vscode://settings/claudeCode.useTerminal にアクセスする。
キーボードショートカット
VSCode拡張のショートカット
| ショートカット | 動作 |
|---|---|
Ctrl+Shift+P → “Claude Code” | コマンドパレットからClaude Code操作 |
Enter | プロンプトを送信(デフォルト) |
Ctrl+Enter | プロンプトを送信(useCtrlEnterToSend 有効時) |
Claude Codeチャット内のキーバインド
Claude Codeのチャットパネル内ではカスタムキーバインドを設定できる。設定ファイルはJSON形式で、コンテキストごとにバインドを定義する。
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}
nullを指定するとデフォルトのショートカットを無効化できるcontextでショートカットが有効になるコンテキストを指定- Claude Code v2.1.18以降で利用可能
デフォルトショートカットの無効化例
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}
プラグイン管理
VSCode拡張にはプラグインのGUI管理機能が統合されている。
プラグインのインストール
- Claude Codeのプロンプト入力欄に
/pluginsと入力 - プラグイン管理ダイアログが表示される
- 「Plugins」タブで利用可能なプラグインを検索・インストール
インストールスコープ
| スコープ | 説明 |
|---|---|
| Install for you | ユーザースコープ。全プロジェクトで利用可能 |
| Install for this project | プロジェクトスコープ。共同作業者と共有される |
| Install locally | ローカルスコープ。自分のみ、現在のリポジトリのみ |
VSCode拡張 vs ターミナルCLI
機能比較
| 機能 | VSCode拡張 | ターミナルCLI |
|---|---|---|
| インラインdiff表示 | ○ | × |
| @メンションによるファイル参照 | ○ | × |
| ファイルリンクのクリック | ○(直接クリック) | △(Ctrl+クリック) |
| 診断情報の自動共有 | ○ | × |
| 会話履歴の永続化 | ○ | ○ |
| プラグインGUI管理 | ○ | △(CLIコマンド) |
| bashショートカット | × | ○ |
| タブ補完 | × | ○ |
| 全コマンドへのアクセス | △ | ○ |
| パイプ入力 | × | ○ |
非対話モード(--print) | × | ○ |
使い分けの指針
VSCode拡張が適しているケース:
- コードの変更をdiffビューで確認しながら作業したい
- エディタ上で選択したコードについて質問したい
- VSCodeの診断情報(型エラー等)を自動的にClaude Codeに伝えたい
- GUIで直感的に操作したい
ターミナルCLI版が適しているケース:
- パイプラインの一部としてClaude Codeを使いたい(
cat file | claude) - 非対話モード(
claude --print "質問")でスクリプトに組み込みたい - bashのショートカットやタブ補完を活用したい
- SSHリモート環境など、VSCodeが使えない環境
- CI/CDパイプラインでの自動化
併用のパターン
VSCode拡張とターミナルCLI版は同時に使える。VSCode拡張でGUIパネルを使いつつ、VSCodeの統合ターミナルで claude コマンドを実行する運用が可能。ターミナルで実行したCLI版もVSCodeのdiffビュー等のIDE機能を利用できる。
# VSCodeの統合ターミナルで実行
claude "このプロジェクトの構造を説明して"
CLAUDE.md との連携
VSCode拡張でもCLI版と同様に CLAUDE.md ファイルが読み込まれる。プロジェクトルートに配置した CLAUDE.md に記載したルールやコンテキストは、VSCode拡張の会話にも自動的に適用される。
| ファイル | スコープ |
|---|---|
~/.claude/CLAUDE.md | 全プロジェクト共通(グローバル) |
プロジェクトルート/CLAUDE.md | プロジェクト固有 |
サブディレクトリ/CLAUDE.md | ディレクトリ固有(該当ディレクトリの作業時に読み込み) |
トラブルシューティング
| 症状 | 対処法 |
|---|---|
| 拡張が表示されない | VSCodeを再起動、またはReload Windowを実行 |
| ログインできない | claude コマンドでCLI版にログインしてから拡張を再起動 |
| パネルが応答しない | コマンドパレットから「Claude Code: New Conversation」で新規会話を開始 |
| diffが表示されない | claudeCode.useTerminal が false であることを確認 |
| WSLで動作しない | VSCodeのRemote - WSL拡張がインストールされていることを確認 |