VS Code
VS CodeファミリーのIDE(VS Code、VS Code Insiders、Cursor、VSCodium、Trae、Qoder、CodeBuddy)を製品のCLIと構造化されたJSON設定ファイルを通じて設定・操作するためのポータブルスキルです。デフォルトでは標準的なロケーションのみを使用します。明示的なパスは環境変数と設定ファイルから取得されるため、スキルは編集なしでどのマシンでも実行できます。
プラットフォーム注記:クロスプラットフォーム対応はPythonゲートウェイ
scripts/vscode_skill.pyを介して行われます。WindowsではPowerShellドライバーvscode-cli.ps1(元の実装、11/11テスト合格)にフォワーディングします。macOSとLinuxでは、info、ext list、settings path/get/set/smoke、python set-interpreterをPythonでネイティブに実装し、それ以外はローカルのcodeバイナリに処理を委譲します。
クイックスタート
クロスプラットフォーム(推奨)
# 検出された製品、CLIパス、主要なロケーションを表示
python scripts/vscode_skill.py info
# インストール済み拡張機能を一覧表示
python scripts/vscode_skill.py ext list
# ユーザー設定のsettings.jsonのパスと現在のコア設定を表示
python scripts/vscode_skill.py settings path
python scripts/vscode_skill.py settings get
# ユーザー設定のフォントサイズを変更(--Applyでのみ書き込み)
python scripts/vscode_skill.py settings set \
--FontSize 16 --FontFamily "JetBrains Mono, Consolas, monospace" --Apply
# プロジェクトスコープの設定
python scripts/vscode_skill.py settings set \
--Scope project --ProjectPath /path/to/project \
--FormatOnSave true --Apply
# プロジェクトのPythonインタプリタ
python scripts/vscode_skill.py python set-interpreter \
--ProjectPath /path/to/project --VenvName .venv
Windowsのみ(PowerShell)
PowerShellを好む場合は、同じコマンドを vscode-cli.ps1 から直接使用できます:
pwsh -File $PSScriptRoot\scripts\vscode-cli.ps1 info
pwsh -File $PSScriptRoot\scripts\vscode-cli.ps1 ssh open `
--HostName devbox --LinuxPath /home/user/project
--Product の値:
auto(デフォルト):VS Codeをプローブし、次にVS Code Insidersをプローブします。vscode:code/code.cmdを使用。vscode-insiders:code-insiders/code-insiders.cmdを使用。- 設定された任意の製品スラッグ(
cursor、vscodium、trae-cn、qoder、codebuddy-cnなど):設定ファイルのproducts.<slug>.cliPath、userDataPath、extensionsPathを使用します。
デフォルトの製品は、VSCODE_SKILL_PRODUCT 環境変数または設定ファイルで明示的に設定します(設定 を参照)。
VS Code互換製品
VS CodeとVS Code Insidersに対しては、内蔵の自動検出が最も強力です。Cursor、VSCodium、Trae、Qoder、CodeBuddyは、環境固有のラッパーでCLIが既に検出可能でない限り、汎用製品設定パスを通じて処理されます。
このスキルは、派生製品に対してVS Code互換の設定面のみを扱います:
- ユーザー設定とプロジェクト設定(
.vscode/settings.jsonを含む)。 - プロジェクトの
.vscode/tasks.json、.vscode/launch.json、.vscode/extensions.json。 - キーバインディング、スニペット、プロファイル、拡張機能、テンプレート、Pythonインタプリタ選択、およびローカルの製品CLIがサポートするリモートスタイルの開くフロー。
このスキルを、プロプライエタリなAIチャット、アカウント、モデル設定、エージェントストア、製品固有のマーケットプレイス、隠れたSQLite状態、トークン、内部ランタイムファイルのサポートとして使用しないでください。特にQoderとCodeBuddyについては、ユーザーが公式の製品固有ドキュメントを提供し、別のアダプターを要求しない限り、サポート範囲をVS Code互換のエディター/設定レイヤーに限定してください。
設定
パスとマシンごとの設定は次の順序で解決されます:
- 環境変数(最優先)。
- 設定ファイル(
$VSCODE_SKILL_CONFIGが設定されている場合はそのパス、そうでなければプラットフォームデフォルト):- Windows:
%APPDATA%\vscode-skill\config.json - macOS / Linux:
$XDG_CONFIG_HOME/vscode-skill/config.jsonまたは~/.config/vscode-skill/config.json
- Windows:
- 内蔵デフォルト(最低優先度)。
環境変数
| 変数 | 目的 | デフォルト |
|---|---|---|
VSCODE_SKILL_HOME | スキルインストール場所 | 実行中のスクリプトの親ディレクトリ |
VSCODE_SKILL_CONFIG | 設定ファイルのパスを上書き | 上記のプラットフォームデフォルト |
VSCODE_SKILL_TEMP | テスト用の一時ディレクトリを上書き | $TEMP/vscode-skill |
VSCODE_SKILL_PRODUCT | デフォルトの --Product 値 | auto |
VSCODE_CODE_CLI | VS Code CLIの明示的なパス | 自動検出 |
VSCODE_INSIDERS_CLI | VS Code Insiders CLIの明示的なパス | 自動検出 |
VSCODE_EXTENSIONS_DIR | 任意の製品の拡張機能インストールディレクトリを上書き | 製品デフォルトまたは設定 |
VSCODE_USER_DATA | ユーザーデータディレクトリを上書き(稀) | プラットフォームデフォルト |
設定ファイルスキーマ
スキルルートから config.example.json を設定場所にコピーして編集してください。すべてのキーはオプションです。
{
"product": "auto",
"tempDir": null,
"products": {
"vscode": {
"cliPath": "C:\\Users\\you\\scoop\\apps\\vscode\\current\\bin\\code.cmd"
},
"vscode-insiders": {
"cliPath": "C:\\Users\\you\\scoop\\apps\\vscode-insiders\\current\\bin\\code-insiders.cmd"
},
"cursor": {
"cliPath": "C:\\Users\\you\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin\\cursor.cmd",
"userDataPath": "C:\\Users\\you\\AppData\\Roaming\\Cursor\\User",
"extensionsPath": "C:\\Users\\you\\.cursor\\extensions"
},
"vscodium": {
"cliPath": "C:\\Users\\you\\scoop\\apps\\vscodium\\current\\bin\\codium.cmd",
"userDataPath": "C:\\Users\\you\\AppData\\Roaming\\VSCodium\\User",
"extensionsPath": "C:\\Users\\you\\.vscode-oss\\extensions"
},
"trae-cn": {
"cliPath": "C:\\Users\\you\\AppData\\Local\\Programs\\Trae CN\\bin\\trae-cn.cmd",
"userDataPath": "C:\\Users\\you\\AppData\\Roaming\\Trae CN\\User",
"extensionsPath": "C:\\Users\\you\\.trae-cn\\extensions"
},
"qoder": {
"cliPath": "C:\\Users\\you\\AppData\\Local\\Programs\\Qoder\\bin\\qoder.cmd",
"userDataPath": "C:\\Users\\you\\AppData\\Roaming\\Qoder\\User",
"extensionsPath": "C:\\Users\\you\\.qoder\\extensions"
},
"codebuddy-cn": {
"cliPath": "C:\\Users\\you\\AppData\\Local\\Programs\\CodeBuddy CN\\bin\\codebuddy.cmd",
"userDataPath": "C:\\Users\\you\\AppData\\Roaming\\CodeBuddy CN\\User",
"extensionsPath": "C:\\Users\\you\\.codebuddycn\\extensions"
}
},
"ssh": {
"defaultHost": "localhost",
"defaultUser": "you"
},
"wsl": {
"defaultDistro": "Ubuntu-24.04"
}
}
pwsh -File scripts/init-config.ps1 を実行すると、デフォルトの場所にスターター設定ファイルが書き込まれます。
スコープの規律
IDEの状態を書き込む前に、それを3つのスコープのいずれかに分類し、曖昧な場合はユーザーに確認してください:
- 読み取り専用の検査:
info、ext list/locate、settings get/path。常に安全です。 - プロジェクト設定:
.vscode\settings.json、tasks.json、launch.json、extensions.json、プロジェクトスニペット。コミットに値します。個人のテーマ、フォント、アカウント情報、マシンローカルの絶対パスを含めないでください。 - ユーザー / グローバル設定:ユーザー
settings.json、keybindings.json、ユーザースニペット、プロファイル設定、インストール済み拡張機能。適用前に、ターゲット製品、ファイル、キー、古い値(読み取り可能な場合)、新しい値、ロールバックパスを常に明示してください。
ルール:
settings setには明示的な--Applyが必要です。これがない場合、コマンドは入力を検証するだけです。ext installは製品のCLIの--install-extensionを呼び出します。ギャラリーが失敗した場合、スクリプトはOpen VSXで自動的にリトライしません。明確な警告が表示され、呼び出し側が判断します。- このスキルを介して書き込まれるプロジェクト設定には、
python.defaultInterpreterPathがマシンローカルのvenvを指すように設定すべきではありません。ただし、プロジェクトが特定のマシン上で再現可能であることが意図されている場合は除きます。
設定リファレンス
一般的なユーザー設定パス:
- VS Code:
%APPDATA%\Code\User\settings.json - VS Code Insiders:
%APPDATA%\Code - Insiders\User\settings.json
一般的なキー(すべて settings set で設定可能):
| キー | フラグ | 型 |
|---|---|---|
editor.fontFamily | --FontFamily | string |
editor.fontSize | --FontSize | int |
editor.lineHeight | --LineHeight | number |
workbench.colorTheme | --ColorTheme | string |
workbench.iconTheme | --IconTheme | string |
workbench.productIconTheme | --ProductIconTheme | string |
editor.wordWrap | --WordWrap | string |
editor.tabSize | --TabSize | int |
editor.formatOnSave | --FormatOnSave | bool |
files.autoSave | --AutoSave | string |
editor.minimap.enabled | --Minimap | bool |
python.defaultInterpreterPath | (python set-interpreter で設定) | string |
任意のキーについては、--SettingKey <key> --SettingValue <value> を渡します。値は強制変換されます:true/false → bool、整数/浮動小数点数 → number、{...} / [...] → JSON、それ以外は文字列。
JSONファイルはVS Codeのコメント付きJSONスタイルを使用する場合がありますが、スクリプトの標準JSONパーサーは純粋なJSONのみを解析します。コメントを含むファイルは、エディターまたはJSONC対応ツールを介して編集する必要があります。
コマンド
pwsh -File scripts/vscode-cli.ps1 info
pwsh -File scripts/vscode-cli.ps1 ext list
pwsh -File scripts/vscode-cli.ps1 ext locate --Id ms-python.python
pwsh -File scripts/vscode-cli.ps1 ext install --Id ms-python.python
pwsh -File scripts/vscode-cli.ps1 ext install --Path D:\downloads\some-extension.vsix
pwsh -File scripts/vscode-cli.ps1 settings path
pwsh -File scripts/vscode-cli.ps1 settings get
pwsh -File scripts/vscode-cli.ps1 settings set --FontSize 16 --Apply
pwsh -File scripts/vscode-cli.ps1 settings set --Scope project --ProjectPath D:\projects\demo --FormatOnSave true --Apply
pwsh -File scripts/vscode-cli.ps1 settings smoke
pwsh -File scripts/vscode-cli.ps1 python make-venvs --ProjectPath D:\projects\demo
pwsh -File scripts/vscode-cli.ps1 python set-interpreter --ProjectPath D:\projects\demo --VenvName .venv
pwsh -File scripts/vscode-cli.ps1 python verify --ProjectPath D:\projects\demo --ExpectedVenvName .venv
pwsh -File scripts/vscode-cli.ps1 ssh smoke --HostName localhost
pwsh -File scripts/vscode-cli.ps1 ssh open --HostName devbox --LinuxPath /home/user/project
pwsh -File scripts/vscode-cli.ps1 wsl list
pwsh -File scripts/vscode-cli.ps1 wsl open --Distro Ubuntu-24.04 --LinuxPath /home/user/project
CLI解決順序:明示的な環境変数(VSCODE_CODE_CLI / VSCODE_INSIDERS_CLI)→ config.products.<product>.cliPath → Get-Command code.cmd(PATH)→ Get-Command code(PATH)→ %LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.cmd(Windowsデフォルト)。汎用製品は products.<product>.cliPath が存在しない場合に明確に失敗します。VS Codeにサイレントマッピングされることはありません。
テンプレートとバンドルコンテンツ
このスキルには、references/ の下に厳選されたコンテンツが含まれています:
settings-index.md— よく使われる80の設定(型、デフォルト、スコープ付き)。settings-precedence.md— 11層の優先順位モデル + マルチルートワークスペースの動作。tasks-templates.md+templates/tasks/*.json— Node、TypeScript、Python、Go、Rust、Docker、Make用の10の即席tasks.json。launch-templates.md+templates/launch/*.json— 同じ言語とChrome用の9の即席launch.json。extension-packs.md— 8の厳選スタック(frontend-web、backend-python、backend-node、data-science、systems、devops、polyglot-baseline、ai-coding)。keybindings-cheatsheet.md— 最も再マッピングされた50のショートカット。
# 利用可能なタスクテンプレートを一覧表示
python scripts/vscode_skill.py tasks list
# テンプレートから .vscode/tasks.json を生成(--Force なしでは上書きを拒否)
python scripts/vscode_skill.py tasks init --Template python-pytest --ProjectPath /path/to/project --Apply
# 起動テンプレートも同様
python scripts/vscode_skill.py launch init --Template python-current-file --ProjectPath /path/to/project --Apply
# 厳選拡張機能スタック
python scripts/vscode_skill.py extensions stacks
python scripts/vscode_skill.py extensions recommend --Stack frontend-web
python scripts/vscode_skill.py extensions install --Stack backend-python
python scripts/vscode_skill.py extensions pin --Stack polyglot-baseline --ProjectPath /path/to/project
プロファイル、設定同期、マルチルートワークスペース
# プロファイルを検査(読み取り専用)
python scripts/vscode_skill.py profile list
python scripts/vscode_skill.py profile show --Profile <name>
# 設定同期ストレージがローカルに存在するか確認(ペイロードは読み取らない)
python scripts/vscode_skill.py settings-sync status
# マルチルートワークスペースヘルパー
python scripts/vscode_skill.py workspace info --ProjectPath /path/to/project
python scripts/vscode_skill.py workspace folder-settings-get --ProjectPath /path --Folder frontend
python scripts/vscode_skill.py workspace folder-settings-set --ProjectPath /path --Folder frontend --SettingKey editor.defaultFormatter --SettingValue dbaeumer.vscode-eslint --Apply
設定同期はプログラム的に有効化または無効化されることはありません。スキルは同期ストレージフォルダが存在するかどうかのみを報告します。誤ったデータ漏洩を避けるため、VS CodeのアカウントUIを使用して有効/無効を切り替えてください。
リモート開発
ssh openはvscode-remote://ssh-remote+<host><path>URIを構築し、解決されたCLIを--folder-uriで起動します。wsl openは同様にvscode-remote://wsl+<distro><path>URIを構築します。ssh smokeはssh -V、ssh -G <host>、Test-NetConnectionを実行して下位レイヤーを確認しますが、Remote-SSH拡張機能がインストールされていることやVS Codeサーバーが起動したことを保証するものではありません。
より深いリモートトラブルシューティングについては、Help → Toggle Developer Tools、Remote-SSH拡張機能の出力チャンネル、または関連製品のworkspaceStorageエントリを確認してください。
テスト
バンドルされている run_vscode_skill_tests.py はデフォルトで安全な書き込みなしチェックを実行します:
python -X utf8 scripts/run_vscode_skill_tests.py --basic
オプションのグループ(対応する環境が必要です):
python -X utf8 scripts/run_vscode_skill_tests.py --include-python-venv
python -X utf8 scripts/run_vscode_skill_tests.py --include-templates
python -X utf8 scripts/run_vscode_skill_tests.py --include-ssh
python -X utf8 scripts/run_vscode_skill_tests.py --include-wsl
このスキルは、scripts/ 内のスクリプトを使用します。スキルルートから実行してください。