Communitygithub.com

Duanzhoutao/vscode-skill

一個可攜式的 AI 代理技能,用於透過產品 CLI 和結構化 JSON 設定檔來設定和操作 VS Code 系列 IDE(VS Code、VS Code Insiders、Cursor、VSCodium、Trae、Qoder、CodeBuddy)。

vscode-skill 是什麼?

此技能為 AI 代理提供了一個可攜式、跨平台的解決方案,用於管理所有 VS Code 系列 IDE 的設定與操作。它透過統一的 Python 閘道 (scripts/vscode_skill.py) 在 Windows、macOS 和 Linux 上運作,並能自動偵測或通過設定檔明確指定目標產品(如 VS Code、Cursor、VSCodium 等),確保在不修改腳本的情況下即可在不同機器上運行。技能涵蓋了廣泛的功能,包括讀取和寫入使用者與專案設定、管理擴充功能、操作啟動與工作設定檔、選取 Python 解譯器、配置 SSH 與 WSL 遠端開發,以及套用預先打包的範本與擴充功能組合。其核心設計原則強調「範圍紀律」:嚴格區分唯讀檢查、專案設定和使用者全域設定,在進行任何寫入操作前都必須明確向使用者確認,並要求使用 `--Apply` 標誌才能實際生效,以確保安全。此外,它還提供了啟動設定檔、任務設定檔和常用按鍵綁定的參考指南,協助開發者快速上手。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add Duanzhoutao/vscode-skill

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

VS Code

一個可攜式的技能,用於透過產品 CLI 和結構化 JSON 設定檔來設定和操作 VS Code 系列 IDE(VS Code、VS Code Insiders、Cursor、VSCodium、Trae、Qoder、CodeBuddy)。預設僅使用標準位置;明確的路徑則從環境變數和設定檔中取得,讓此技能無需修改即可在任何機器上執行。

平台提醒:透過 Python 閘道 scripts/vscode_skill.py 實現跨平台支援。在 Windows 上,它會轉發至 PowerShell 驅動程式 vscode-cli.ps1(原始實作,11/11 測試通過)。在 macOS 和 Linux 上,它以 Python 原生實作 info、ext list、settings path/get/set/smoke 和 python set-interpreter;其他所有功能則轉交給你本機的 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 支援下的 Remote 風格的開啟流程。

請勿使用此技能來支援專有的 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 狀態之前,將其歸類為以下三個範圍之一,並在不明確時與使用者確認:

  • 唯讀檢查: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。如果 marketplace 失敗,腳本不會默默地用 Open VSX 重試;會列印一個明確的警告,由呼叫者決定。
  • 透過此技能寫入的專案設定,絕不應包含指向本機 venv 的 python.defaultInterpreterPath,除非該專案旨在該特定機器上可重現。

設定參考

常見的使用者設定路徑:

  • VS Code:%APPDATA%\Code\User\settings.json
  • VS Code Insiders:%APPDATA%\Code - Insiders\User\settings.json

常見的鍵(全部可透過 settings set 設定):

鍵旗標類型
editor.fontFamily--FontFamily字串
editor.fontSize--FontSize整數
editor.lineHeight--LineHeight數字
workbench.colorTheme--ColorTheme字串
workbench.iconTheme--IconTheme字串
workbench.productIconTheme--ProductIconTheme字串
editor.wordWrap--WordWrap字串
editor.tabSize--TabSize整數
editor.formatOnSave--FormatOnSave布林值
files.autoSave--AutoSave字串
editor.minimap.enabled--Minimap布林值
python.defaultInterpreterPath(透過 python set-interpreter 設定)字串

對於任意鍵,請傳遞 --SettingKey <key> --SettingValue <value>。值會進行強制轉換:true/false → 布林值,整數/浮點數 → 數字,{...} / [...] → JSON,否則為字串。

JSON 檔案可能使用 VS Code 的 JSON-with-Comments 風格;腳本的標準 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 — 10 個現成的 tasks.json,適用於 Node、TypeScript、Python、Go、Rust、Docker、Make。
  • launch-templates.md + templates/launch/*.json — 9 個現成的 launch.json,適用於相同語言外加 Chrome。
  • extension-packs.md — 8 個精選組合(前端網頁、後端-Python、後端-Node、資料科學、系統、DevOps、多語言基礎、AI 編碼)。
  • 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,並使用 --folder-uri 啟動解析後的 CLI。
  • wsl open 會類似地建立一個 vscode-remote://wsl+<distro><path> URI。
  • ssh smoke 會執行 ssh -V、ssh -G <host> 和 Test-NetConnection 以確認底層;它不保證已安裝 Remote-SSH 擴充功能,或 VS Code 伺服器已啟動。

對於更深入的遠端問題排除,請檢查 說明 → 切換開發人員工具、Remote-SSH 擴充功能輸出通道,或相關產品的工作區儲存条目。

測試

隨附的 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-ssh
python -X utf8 scripts/run_vscode_skill_tests.py --include-wsl
python -X utf8 scripts/run_vscode_skill_tests.py --include-smoke  # 完整整合測試

相關技能