Communitygithub.com

VS Code 技能

一款可移植的 AI Agent 技能,用于通过产品 CLI 和结构化 JSON 配置文件配置和操作 VS Code 系列 IDE(VS Code、VS Code Insiders、Cursor、VSCodium、Trae、Qoder、CodeBuddy)。

VS Code 技能 是什么?

这是一个专注于 VS Code 及其衍生 IDE(如 Cursor、VSCodium、Trae、Qoder、CodeBuddy 等)的 AI Agent 技能。它提供了一套统一的命令行接口,用于读取、修改和管理这些 IDE 的用户设置、项目设置、扩展、键盘快捷键、代码片段、配置文件、Python 解释器选择以及远程(SSH/WSL)开发连接。该技能通过 Python 网关脚本实现跨平台支持(Windows、macOS、Linux),在 Windows 上可调用 PowerShell 驱动。配置通过环境变量和 JSON 配置文件灵活管理,支持自动探测产品 CLI 路径,无需手动编辑即可在任何机器上运行。它严格遵守作用域纪律,区分只读检查、项目配置和用户全局配置,并在写入前进行确认,确保安全操作。此外,还内置了丰富的模板(任务、调试配置、扩展包)和参考文档,方便快速初始化项目。

兼容平台~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。
  • 任何配置的产品 slug,例如 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\\.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\\.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\\.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\\.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\\.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。如果库失败,脚本不会静默重试 Open VSX;会打印出明确的警告,由调用者决定。
  • 通过此技能写入的项目设置不应包含指向机器本地虚拟环境的 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 带注释风格;脚本的标准 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 个精选技术栈(前端-Web、后端-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 服务器已启动。

对于更深入的远程问题排查,请检查 Help → Toggle Developer Tools、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-cursor

--basic 测试如下:

步骤命令什么被测试
1infoCLI 可执行,产品版本非空
2ext listextensions.json(如果存在)可解析
3settings path路径存在,可写
4settings get返回 JSON 结果,核心设置存在
5settings smoke完整往返:set(带 --DryRun)→ get → 验证 → 回滚
6settings set 任意键任意键验证:`--ColorTheme

相关技能