Claude Code VS Code拡張の設定ガイド — 全20項目の意味と使い方
Claude CodeのVS Code拡張の設定項目を、既定値と用途つきで一覧化します。開始時の許可モードの決まり方、書けない場所、環境変数の渡し方まで扱います。
設定は2か所にあり、書く場所で効く範囲が変わる
Claude CodeのVS Code拡張には、性質の異なる2種類の設定があります。どちらに書くかで、CLIにも効くのか、拡張機能のパネルだけに効くのかが決まります。
拡張機能の設定と共有設定
Extension settings
VS Codeの設定画面にある claudeCode. で始まる項目です。パネルの開く場所、送信キー、許可モードの開始値など、拡張機能の挙動を変えます。
~/.claude/settings.json
許可ルール、hooks、環境変数、MCPサーバーを持ちます。全項目はClaude Code settings.json完全ガイドにまとめています。
この記事が扱うのは左側です。開き方は Cmd+,(Mac)または Ctrl+,(Windows/Linux)でVS Code設定を開き、Extensions → Claude Codeを選びます。プロンプトボックスに / と入力して「General config」を選ぶ方法もあります。設定検索欄に claudeCode と打てば、接頭辞で絞り込めます。
設定項目の一覧 — 既定値と役割
公式ドキュメントの表は20項目で、この記事の表もその20項目です。拡張機能v2.1.285の公開マニフェスト(package.json)には、claudeCode. の設定がもう1つ、showMessageTimestamps があります。showMessageTimestamps は各メッセージの送信時刻を表示し、日付が変わる位置に日付の行を挟みます。既定値は false です。
| 設定 | 既定値 | 役割 |
|---|---|---|
| useTerminal | 既定値false | 役割GUIパネルの代わりにターミナルモードで起動する |
| initialPermissionMode | 既定値未設定 | 役割新規会話の許可モード(default / manual / plan / acceptEdits / bypassPermissions) |
| preferredLocation | 既定値panel | 役割Claudeの開く位置(sidebar / panel) |
| lockEditorGroups | 既定値true | 役割Claudeのタブが作るエディターグループをロックする |
| autosave | 既定値true | 役割Claudeが読み書きする前にファイルを自動保存する |
| attachOpenFile | 既定値true | 役割開いているファイルをメッセージに添付する |
| useCtrlEnterToSend | 既定値false | 役割送信をEnterからCtrl/Cmd+Enterに変える |
| scrollToBottomOnSend | 既定値true | 役割送信時に会話を最下部までスクロールする |
| enableNewConversationShortcut | 既定値false | 役割Cmd/Ctrl+Nで新しい会話を開始する |
| enableReopenClosedSessionShortcut | 既定値true | 役割Cmd/Ctrl+Shift+Tで直近に閉じたセッションタブを開き直す |
| archiveInactiveSessions | 既定値14 | 役割無操作のセッションを自動アーカイブする日数(0でオフ) |
| continueAfterReload | 既定値true | 役割ウィンドウ再読み込み後に、中断されたステップを続ける |
| hideOnboarding | 既定値false | 役割オンボーディングのチェックリスト(帽子アイコン)を隠す |
| focusView | 既定値false | 役割ツール呼び出しと結果、thinkingを折りたたむ |
| respectGitIgnore | 既定値true | 役割ファイル検索から.gitignoreのパターンを除外する |
| usePythonEnvironment | 既定値true | 役割Claude実行時にワークスペースのPython環境を有効化する |
| environmentVariables | 既定値[] | 役割Claudeプロセス用の環境変数を設定する |
| disableLoginPrompt | 既定値false | 役割認証プロンプトを出さない(サードパーティプロバイダー向け) |
| allowDangerouslySkipPermissions | 既定値false(マニフェスト上はnull) | 役割モード選択にBypass permissionsを追加する |
| claudeProcessWrapper | 既定値未設定 | 役割Claudeプロセスを起動する実行ファイルを指定する |
新しい項目には最低バージョンがあります。focusView はClaude Code v2.1.221以降、archiveInactiveSessions はv2.1.265以降、attachOpenFile はv2.1.271以降、lockEditorGroups と continueAfterReload はv2.1.274以降、scrollToBottomOnSend はv2.1.275以降です。
書いたのに効かない — スコープという見えにくい制約
マニフェストは、設定ごとに書ける場所(スコープ)を宣言しています。VS Codeの定義では、machine はユーザー設定かリモート設定にだけ書ける項目、application はユーザー設定にだけ書ける項目です。この定義からすると、ワークスペースの .vscode/settings.json に書いた値は使われないはずです。
machine:initialPermissionMode/environmentVariables/allowDangerouslySkipPermissions/claudeProcessWrapperapplication:focusView/attachOpenFile/continueAfterReload/scrollToBottomOnSend/showMessageTimestamps/archiveInactiveSessions
チームの設定ファイルを共有して全員の挙動をそろえたいときは、この点が効きます。残りの11項目はスコープの宣言がなく、ワークスペースにも書けます。公式の「initialPermissionMode はユーザー設定だけを読む」という記述は、この宣言と整合します。v2.1.225より前はワークスペースの値も適用されていたため、更新でこの挙動が変わった環境があります。
状況から選ぶ — 変える価値がある設定
| 状況 | 変える設定 | 効き方 |
|---|---|---|
| ネット遮断のサンドボックスで確認なしに動かしたい | 変える設定allowDangerouslySkipPermissions | 効き方Bypass permissionsが選べるようになる。ネットアクセスのある環境は想定外 |
| BedrockやVertex経由でサインインする | 変える設定disableLoginPrompt | 効き方拡張機能側の認証プロンプトを出さない |
| ツール呼び出しの表示で会話が埋もれる | 変える設定focusView | 効き方プロンプトと応答が残り、詳細は展開可能な行に入る |
| CLI風の画面で使いたい | 変える設定useTerminal | 効き方GUIパネルの代わりにターミナルモードで起動する |
| 長文を書きながら改行を使いたい | 変える設定useCtrlEnterToSend | 効き方Enterが改行になり、送信はCtrl/Cmd+Enterになる |
| 開いているファイルを毎回添付されたくない | 変える設定attachOpenFile | 効き方オフにすると、選択したテキストだけが追加される |
| 「Unsupported platform」で起動しない | 変える設定claudeProcessWrapper | 効き方同梱バイナリが使えない環境で、別途入れた claude を指定する |
会話はどの許可モードで始まるか
initialPermissionMode は単なる切り替えに見えて、決まり方が層になっています。VS Code拡張が新しい会話を始めるときは、次の順に最初に該当したものを採ります。
新しい会話の開始モードが決まる順序
- 1
claudeCode.initialPermissionMode
VS Codeのユーザー設定に値があれば、これが最優先です。
- 2
モード指示器で最後に選んだモード
Manual、Edit automatically、Autoが対象です。PlanとBypass permissionsは、その会話だけに適用されます。
- 3
permissions.defaultMode
管理設定または
~/.claude/settings.jsonの値です。v2.1.283より前は、Pro・Max・Teamプランでフィーチャーフラグを取得するセッションだけが対象でした。 - 4
組み込みの既定値
v2.1.283以降は
autoです。以前は、Pro・Max・Teamのフィーチャーフラグ取得セッションがauto、それ以外はdefaultでした。
この順序には、ドキュメントを読まないと気づかない罠が3つあります。
1つ目は、設定に auto を書けないことです。initialPermissionMode の値は default / manual / acceptEdits / plan / bypassPermissions のいずれかで、Autoから始めたいなら設定は未設定のままにして、モード指示器でAutoを一度選びます。
2つ目は、bypassPermissions を書いても allowDangerouslySkipPermissions がオフなら効かないことです。この場合、会話はManualで始まります。Autoが使えない状況でも、同じくManualに落ちます。
3つ目は、プロジェクトの .claude/settings.json や .claude/settings.local.json を、拡張機能が開始モードのために読まないことです。ターミナルのセッションは、プロジェクトの permissions.defaultMode に(auto と bypassPermissions を除いて)従いますが、拡張機能は読みません。
CLI側の受け付ける値も実機で見ると違いが分かります。v2.1.285の claude --help は、--permission-mode の選択肢を次のように表示しました。
claude --help --permission-mode <mode> Permission mode to use for the session
(choices: "acceptEdits", "auto",
"bypassPermissions", "manual",
"dontAsk", "plan")CLIのフラグは auto と dontAsk を受け付けますが、拡張機能の設定は受け付けません。また --allow-dangerously-skip-permissions のヘルプには、拡張機能の設定と同じ「インターネットアクセスのないサンドボックス向け」という但し書きが付いています。許可モードの全体像はClaude Codeの許可モードにあります。acceptEdits系で拡張機能がどこまで確認なしに進むかは、IDE拡張の自動編集の境界の記事が扱っています。
claudeProcessWrapperを使う環境では初期モードが変わる
claudeProcessWrapper は、拡張機能に同梱されたバイナリが使えない環境向けの設定です。対応プラットフォーム用のバイナリが同梱されていないと、起動時に「Unsupported platform」エラーが出ます。別途インストールした claude バイナリのパスを指定すると、それを経由して起動できます。
ラップ構成では、先ほどの順序のうち3番目と4番目が適用されません。会話は、initialPermissionMode か「最後に選んだモード」がない限りManualで始まります。ラップ構成にした途端に開始モードがManualになったときは、この違いが理由です。同梱バイナリ自体でつまずく場合は、Claude Codeでよくあるエラーの対処ガイドを先に見てください。
環境変数を渡す先は2つある
environmentVariables に書いた値は、VS Code拡張が起動するClaudeプロセス用の値です。マニフェストの説明は「環境変数はClaudeのsettings.jsonに書くほうがよい」という趣旨で、公式の表も共有したい設定はClaude Codeの設定に書くよう案内しています。統合ターミナルのCLIまで届く設定とは書かれていません。前述のとおりスコープは machine なので、ユーザー設定側に書きます。
プロジェクトやCLIと共有したい値は、~/.claude/settings.json の env ブロックに書きます。設定ファイルを直接編集するなら、先頭に次の1行を足すと、VS Code上で入力補完とインライン検証が効きます。
{
"$schema": "https://json.schemastore.org/claude-code-settings.json"
}画面と操作を絞る設定
hideOnboarding はオンボーディングのチェックリスト(卒業帽アイコン)を隠します。focusView はツール呼び出し・結果・thinkingを展開可能な行の後ろに隠し、プロンプトと応答を残します。Claudeの最新のやることリストは表示されたままで、コマンドメニューからも切り替えられます。この項目はClaude Code v2.1.221以降で使え、やることリストが表示されたままになるのはv2.1.225以降です。
両方をオンにすると、パネルには会話のやり取りが中心に並びます。Claudeが何を読んでいるかを追いたい場面では、既定のままのほうが動きが見えます。showMessageTimestamps は逆方向の設定で、時刻を足して長い会話の時間関係を追えるようにします。
scrollToBottomOnSend をオフにすると、送信しても会話が元の位置に留まります。長い会話で上を読み返しながら追加の指示を打つときに、スクロールが飛ばなくなります。
disableLoginPrompt はBedrockやVertex AI経由でサインインするときの設定で、手順はVS Code拡張でサードパーティプロバイダーを使う設定にあります。
ショートカットとファイル周りの設定
useCtrlEnterToSend、enableNewConversationShortcut、enableReopenClosedSessionShortcut の3つは、キー操作を変える設定です。enableNewConversationShortcut は既定でオフで、Cmd/Ctrl+Nの新規会話ショートカットを有効にします。enableReopenClosedSessionShortcut は既定でオンです。最後に閉じたタブがClaude Codeのセッションでなければ、VS Code標準の「閉じたエディターを再度開く」に処理が回ります。
ファイルの扱いに関わる設定は4つあります。
autosave:Claudeがファイルを読み書きする前に自動保存します。オフにすると、この自動保存が行われません。attachOpenFile:エディターで開いているファイルを、プロンプトボックスに表示しつつメッセージに加えます。オフなら、選択したテキストだけが追加されます。respectGitIgnore:ファイル検索と選択コンテキストから、.gitignoreに列挙されたパスを除外します。オフにすると、それらも検索結果に出ます。マニフェストの説明によれば、オフでも.ignoreの除外パターンは効きます。usePythonEnvironment:Python拡張機能が有効なワークスペースで、Claudeの実行時に仮想環境を有効にします。Python拡張機能が入っていなければ効果はありません。
セッションの持ちを決める設定もあります。archiveInactiveSessions は既定で14日間無操作のセッションをアーカイブします。選べる値は1・2・7・14日で、0でオフです。開いている・実行中・入力待ち・未読のセッションは自動ではアーカイブされません。公式ドキュメントはグループに入っているセッションも除外対象に挙げています。continueAfterReload は、ウィンドウの再読み込みの後に中断されたステップを続けます。lockEditorGroups がオンの間、Claudeタブの作るエディターグループはロックされ、Claudeタブにフォーカスがあるときに開いたファイルは別のグループに開きます。
preferredLocation は、マニフェストの説明によれば、Claudeを新しい場所で開くと自動的に書き換わります。sidebarを既定にしたつもりでも、あとでpanelで開くと既定値がpanelに変わります。
インストール・更新直後の最初のセッションは開始モードが違うことがある
順序表どおりに設定しても、インストールや更新の直後の最初のセッションだけは、フィーチャーフラグが届く前に開始モードが選ばれます。そのため、表の既定値とは違う組み込みのモードで始まることがあります。公式のpermission-modesは、この例外を組み込み既定値の表についての注記として書いています。
2回目のセッションからは、表どおりに決まります。更新した直後にManualやAutoの開始位置が想定と違って見えても、設定を疑う前にセッションを開き直して確認できます。
まとめ
チームで挙動をそろえたい設定は、スコープの宣言がない11項目だけがワークスペースで共有できます。許可モードと環境変数は、各自のユーザー設定に入れる前提で運用します。VS Code拡張の基本操作はClaude Code VS Code拡張機能の使い方にあります。