Communitygithub.com

Duanzhoutao/vscode-skill

VS CodeファミリーのIDE(VS Code、VS Code Insiders、Cursor、VSCodium、Trae、Qoder、CodeBuddy)を設定・操作するためのポータブルなエージェントスキルです。製品のCLIと構造化されたJSON設定ファイルを使用します。

vscode-skill とは?

このスキルは、VS Code、VS Code Insiders、Cursor、VSCodium、Trae、Qoder、CodeBuddyといったVS CodeファミリーのIDEを、コマンドラインインターフェース(CLI)とJSON設定ファイルを使って一元管理できるようにするエージェントスキルです。標準的な設定パスをデフォルトとして使用し、環境変数や設定ファイルで明示的なパスを指定することで、マシン間で設定を変更することなく再利用できます。クロスプラットフォームに対応しており、Pythonゲートウェイ `scripts/vscode_skill.py` を介してWindows、macOS、Linux上で動作します。主な機能として、拡張機能の一覧表示・インストール、ユーザー設定・プロジェクト設定の読み取り・書き込み、Pythonインタプリタの選択、リモート開発(SSH/WSL)の開始、テンプレートを用いた`tasks.json`や`launch.json`の生成、プロファイルの参照などが含まれます。設定の適用には明示的な `--Apply` フラグが必要であり、意図しない変更を防ぎます。スキルはVS Code互換の設定面に限定されており、製品固有のAIチャットやアカウント設定などには対応しません。

対応~Claude Code~Codex CLI✓Cursor
npx skills add Duanzhoutao/vscode-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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互換のエディター/設定レイヤーに限定してください。

設定

パスとマシンごとの設定は次の順序で解決されます:

  1. 環境変数(最優先)。
  2. 設定ファイル($VSCODE_SKILL_CONFIG が設定されている場合はそのパス、そうでなければプラットフォームデフォルト):
    • Windows:%APPDATA%\vscode-skill\config.json
    • macOS / Linux:$XDG_CONFIG_HOME/vscode-skill/config.json または ~/.config/vscode-skill/config.json
  3. 内蔵デフォルト(最低優先度)。

環境変数

変数目的デフォルト
VSCODE_SKILL_HOMEスキルインストール場所実行中のスクリプトの親ディレクトリ
VSCODE_SKILL_CONFIG設定ファイルのパスを上書き上記のプラットフォームデフォルト
VSCODE_SKILL_TEMPテスト用の一時ディレクトリを上書き$TEMP/vscode-skill
VSCODE_SKILL_PRODUCTデフォルトの --Product 値auto
VSCODE_CODE_CLIVS Code CLIの明示的なパス自動検出
VSCODE_INSIDERS_CLIVS 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--FontFamilystring
editor.fontSize--FontSizeint
editor.lineHeight--LineHeightnumber
workbench.colorTheme--ColorThemestring
workbench.iconTheme--IconThemestring
workbench.productIconTheme--ProductIconThemestring
editor.wordWrap--WordWrapstring
editor.tabSize--TabSizeint
editor.formatOnSave--FormatOnSavebool
files.autoSave--AutoSavestring
editor.minimap.enabled--Minimapbool
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/ 内のスクリプトを使用します。スキルルートから実行してください。

関連スキル