Communitygithub.com

Duanzhoutao/vscode-skill

Ein portables Agenten-Skill zum Konfigurieren und Bedienen von VS Code-basierten IDEs (VS Code, VS Code Insiders, Cursor, VSCodium, Trae, Qoder, CodeBuddy) über Produkt-CLIs und strukturierte JSON-Konfigurationsdateien.

Was ist vscode-skill?

Dieses Skill ermöglicht es AI-Agenten, VS Code-kompatible Editoren plattformübergreifend zu konfigurieren und zu steuern – von VS Code und Insiders über Cursor, VSCodium, Trae, Qoder bis CodeBuddy. Es nutzt ein Python-Gateway für grundlegende Operationen auf macOS und Linux und einen PowerShell-Treiber für Windows, sodass die gleichen Befehle überall funktionieren. Das Skill stellt sicher, dass alle Einstellungen, Erweiterungen, Aufgaben- und Debug-Konfigurationen sowie Python-Interpreter-Auswahl konsistent gelesen und geschrieben werden – ohne proprietäre AI-Chats, Konten oder interne Datenbanken zu beeinflussen. Entwickler sparen Zeit und vermeiden Fehler, da sie sich nicht manuell durch verschiedene Setup-Prozesse klicken müssen; stattdessen übernimmt der Agent die gesamte IDE-Konfiguration auf Basis von Umgebungsvariablen, einer Konfigurationsdatei und integrierten Standardwerten.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add Duanzhoutao/vscode-skill

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

VS Code

Ein portables Skill zum Konfigurieren und Bedienen von VS Code-basierten IDEs (VS Code, VS Code Insiders, Cursor, VSCodium, Trae, Qoder, CodeBuddy) über die Produkt-CLI und strukturierte JSON-Konfigurationsdateien. Standardmäßig werden nur die üblichen Pfade verwendet; explizite Pfade werden aus Umgebungsvariablen und einer Konfigurationsdatei bezogen, sodass das Skill auf jeder Maschine ohne Bearbeitung läuft.

Plattformhinweis: Plattformübergreifend über das Python-Gateway scripts/vscode_skill.py. Unter Windows leitet es an den PowerShell-Treiber vscode-cli.ps1 weiter (die ursprüngliche Implementierung, 11/11 Tests erfolgreich). Unter macOS und Linux implementiert es info, ext list, settings path/get/set/smoke und python set-interpreter nativ in Python; alles andere wird an die lokale code-Binary delegiert.

Schnellstart

Plattformübergreifend (empfohlen)

# Erkanntes Produkt, CLI-Pfad und wichtige Speicherorte anzeigen
python scripts/vscode_skill.py info

# Installierte Erweiterungen auflisten
python scripts/vscode_skill.py ext list

# Benutzer-settings.json-Pfad und aktuelle Kern-Einstellungen anzeigen
python scripts/vscode_skill.py settings path
python scripts/vscode_skill.py settings get

# Schriftgröße in den Benutzereinstellungen ändern (schreibt nur mit --Apply)
python scripts/vscode_skill.py settings set \
    --FontSize 16 --FontFamily "JetBrains Mono, Consolas, monospace" --Apply

# Projektbezogene Einstellungen
python scripts/vscode_skill.py settings set \
    --Scope project --ProjectPath /pfad/zum/projekt \
    --FormatOnSave true --Apply

# Python-Interpreter für ein Projekt
python scripts/vscode_skill.py python set-interpreter \
    --ProjectPath /pfad/zum/projekt --VenvName .venv

Nur Windows (PowerShell)

Die gleichen Befehle funktionieren direkt über vscode-cli.ps1, falls PowerShell bevorzugt wird:

pwsh -File $PSScriptRoot\scripts\vscode-cli.ps1 info
pwsh -File $PSScriptRoot\scripts\vscode-cli.ps1 ssh open `
    --HostName devbox --LinuxPath /home/user/project

--Product-Werte:

  • auto (Standard): zuerst VS Code, dann VS Code Insiders prüfen.
  • vscode: code / code.cmd verwenden.
  • vscode-insiders: code-insiders / code-insiders.cmd verwenden.
  • Jeder konfigurierte Produkt-Slug wie cursor, vscodium, trae-cn, qoder oder codebuddy-cn: products.<slug>.cliPath, userDataPath und extensionsPath aus der Konfigurationsdatei verwenden.

Das Standardprodukt kann explizit mit VSCODE_SKILL_PRODUCT oder über die Konfigurationsdatei gesetzt werden (siehe Konfiguration).

VS Code-kompatible Produkte

Die integrierte automatische Erkennung ist am stärksten für VS Code und VS Code Insiders. Cursor, VSCodium, Trae, Qoder und CodeBuddy werden über den generischen Produktkonfigurationspfad behandelt, es sei denn, ihre CLI ist bereits über einen umgebungsspezifischen Wrapper auffindbar.

Dieses Skill beansprucht nur die VS Code-kompatible Konfigurationsoberfläche für abgeleitete Produkte:

  • Benutzer- und Projekteinstellungen, einschließlich .vscode/settings.json.
  • Projekt .vscode/tasks.json, .vscode/launch.json und .vscode/extensions.json.
  • Tastenkürzel, Snippets, Profile, Erweiterungen, Vorlagen, Python-Interpreter-Auswahl und Remote-ähnliche Öffnungsabläufe, sofern die lokale Produkt-CLI diese unterstützt.

Verwenden Sie dieses Skill nicht als Support für proprietäre AI-Chats, Konten, Modelleinstellungen, Agenten-Stores, produktspezifische Marktplätze, versteckte SQLite-Zustände, Token oder interne Laufzeitdateien. Für Qoder und CodeBuddy beschränken Sie die Unterstützung auf die VS Code-kompatible Editor-/Konfigurationsebene, es sei denn, der Benutzer stellt offizielle produktspezifische Dokumentation zur Verfügung und fordert einen separaten Adapter an.

Konfiguration

Pfade und maschinenspezifische Einstellungen werden in dieser Reihenfolge aufgelöst:

  1. Umgebungsvariable (höchste Priorität).
  2. Konfigurationsdatei unter $VSCODE_SKILL_CONFIG, falls gesetzt, sonst der plattformspezifische Standard:
    • Windows: %APPDATA%\vscode-skill\config.json
    • macOS / Linux: $XDG_CONFIG_HOME/vscode-skill/config.json oder ~/.config/vscode-skill/config.json
  3. Eingebaute Standardwerte (niedrigste Priorität).

Umgebungsvariablen

VariableZweckStandardwert
VSCODE_SKILL_HOMEInstallationsort des SkillsÜbergeordneter Pfad des ausgeführten Skripts
VSCODE_SKILL_CONFIGÜberschreibt den Pfad der Konfigurationsdateiplattformspezifischer Standard oben
VSCODE_SKILL_TEMPÜberschreibt das temporäre Verzeichnis für Tests$TEMP/vscode-skill
VSCODE_SKILL_PRODUCTStandard---Product-Wertauto
VSCODE_CODE_CLIExpliziter Pfad zur VS Code CLIautomatisch erkannt
VSCODE_INSIDERS_CLIExpliziter Pfad zur VS Code Insiders CLIautomatisch erkannt
VSCODE_EXTENSIONS_DIRÜberschreibt das Erweiterungsinstallationsverzeichnis für jedes ProduktProduktstandard oder Konfiguration
VSCODE_USER_DATAÜberschreibt das Benutzerdatenverzeichnis (selten)plattformspezifischer Standard

Schema der Konfigurationsdatei

Kopieren Sie config.example.json aus dem Skill-Stammverzeichnis an Ihren Konfigurationsort und bearbeiten Sie es. Alle Schlüssel sind optional.

{
  "product": "auto",
  "tempDir": null,
  "products": {
    "vscode": {
      "cliPath": "C:\\Users\\benutzer\\scoop\\apps\\vscode\\current\\bin\\code.cmd"
    },
    "vscode-insiders": {
      "cliPath": "C:\\Users\\benutzer\\scoop\\apps\\vscode-insiders\\current\\bin\\code-insiders.cmd"
    },
    "cursor": {
      "cliPath": "C:\\Users\\benutzer\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin\\cursor.cmd",
      "userDataPath": "C:\\Users\\benutzer\\AppData\\Roaming\\Cursor\\User",
      "extensionsPath": "C:\\Users\\benutzer\\.cursor\\extensions"
    },
    "vscodium": {
      "cliPath": "C:\\Users\\benutzer\\scoop\\apps\\vscodium\\current\\bin\\codium.cmd",
      "userDataPath": "C:\\Users\\benutzer\\AppData\\Roaming\\VSCodium\\User",
      "extensionsPath": "C:\\Users\\benutzer\\.vscode-oss\\extensions"
    },
    "trae-cn": {
      "cliPath": "C:\\Users\\benutzer\\AppData\\Local\\Programs\\Trae CN\\bin\\trae-cn.cmd",
      "userDataPath": "C:\\Users\\benutzer\\AppData\\Roaming\\Trae CN\\User",
      "extensionsPath": "C:\\Users\\benutzer\\.trae-cn\\extensions"
    },
    "qoder": {
      "cliPath": "C:\\Users\\benutzer\\AppData\\Local\\Programs\\Qoder\\bin\\qoder.cmd",
      "userDataPath": "C:\\Users\\benutzer\\AppData\\Roaming\\Qoder\\User",
      "extensionsPath": "C:\\Users\\benutzer\\.qoder\\extensions"
    },
    "codebuddy-cn": {
      "cliPath": "C:\\Users\\benutzer\\AppData\\Local\\Programs\\CodeBuddy CN\\bin\\codebuddy.cmd",
      "userDataPath": "C:\\Users\\benutzer\\AppData\\Roaming\\CodeBuddy CN\\User",
      "extensionsPath": "C:\\Users\\benutzer\\.codebuddycn\\extensions"
    }
  },
  "ssh": {
    "defaultHost": "localhost",
    "defaultUser": "benutzer"
  },
  "wsl": {
    "defaultDistro": "Ubuntu-24.04"
  }
}

Führen Sie pwsh -File scripts/init-config.ps1 aus, um eine Startkonfigurationsdatei am Standardspeicherort zu schreiben.

Bereichsdisziplin

Bevor Sie einen IDE-Zustand schreiben, klassifizieren Sie ihn in einen von drei Bereichen und bestätigen Sie mit dem Benutzer, falls er mehrdeutig ist:

  • Nur-Lese-Inspektion: info, ext list/locate, settings get/path. Immer sicher.
  • Projektkonfiguration: .vscode\settings.json, tasks.json, launch.json, extensions.json, Projektsnippets. Commit-würdig; keine persönlichen Designs, Schriftarten, Kontoinformationen oder maschinenlokalen absoluten Pfade enthalten.
  • Benutzer-/Globale Konfiguration: Benutzer settings.json, keybindings.json, Benutzersnippets, Profileinstellungen, installierte Erweiterungen. Vor dem Anwenden immer Zielprodukt, Datei, Schlüssel, alten Wert (wenn lesbar), neuen Wert und Rollback-Pfad nennen.

Regeln:

  • settings set erfordert explizites --Apply; ohne diesen Schalter validiert der Befehl nur die Eingaben.
  • ext install ruft die --install-extension der Produkt-CLI auf. Falls der Katalog fehlschlägt, wiederholt das Skript nicht still mit Open VSX; eine klare Warnung wird ausgegeben und der Aufrufer entscheidet.
  • Projekteinstellungen, die über dieses Skill geschrieben werden, sollten niemals python.defaultInterpreterPath auf eine maschinenlokale venv verweisen lassen, es sei denn, das Projekt ist dafür gedacht, auf dieser spezifischen Maschine reproduzierbar zu sein.

Einstellungsreferenz

Häufige Benutzereinstellungs-Pfade:

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

Häufige Schlüssel (alle über settings set setzbar):

SchlüsselFlagTyp
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(wird über python set-interpreter gesetzt)string

Für beliebige Schlüssel übergeben Sie --SettingKey <key> --SettingValue <value>. Werte werden umgewandelt: true/false → bool, Integer/Float → number, {...} / [...] → JSON, sonst string.

JSON-Dateien können den VS Code-Stil mit Kommentaren (JSON with Comments) verwenden; der standardmäßige JSON-Parser des Skripts verarbeitet nur reines JSON. Dateien mit Kommentaren sollten über den Editor oder ein JSONC-bewusstes Tool bearbeitet werden.

Befehle

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-Auflösungsreihenfolge: explizite Env (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-Standard). Generische Produkte schlagen klar fehl, wenn products.<product>.cliPath fehlt; sie werden niemals still an VS Code weitergeleitet.

Vorlagen und gebündelte Inhalte

Das Skill enthält kuratierte Inhalte unter references/:

  • settings-index.md — 80 am häufigsten verwendete Einstellungen mit Typ, Standardwert, Bereich.
  • settings-precedence.md — 11-Ebenen-Modell der Rangfolge + Verhalten bei Multi-Root-Workspaces.
  • tasks-templates.md + templates/tasks/*.json — 10 vorgefertigte tasks.json für Node, TypeScript, Python, Go, Rust, Docker, Make.
  • launch-templates.md + templates/launch/*.json — 9 vorgefertigte launch.json für die gleichen Sprachen plus Chrome.
  • extension-packs.md — 8 kuratierte Stapel (frontend-web, backend-python, backend-node, data-science, systems, devops, polyglot-baseline, ai-coding).
  • keybindings-cheatsheet.md — 50 am häufigsten neu belegte Tastenkürzel.
# Verfügbare Aufgaben-Vorlagen auflisten
python scripts/vscode_skill.py tasks list

# .vscode/tasks.json aus einer Vorlage generieren (verweigert Überschreiben ohne --Force)
python scripts/vscode_skill.py tasks init --Template python-pytest --ProjectPath /pfad/zum/projekt --Apply

# Gleiches Format für Launch-Vorlagen
python scripts/vscode_skill.py launch init --Template python-current-file --ProjectPath /pfad/zum/projekt --Apply

# Kuratierte Erweiterungs-Stapel
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 /pfad/zum/projekt

Profile, Settings Sync, Multi-Root-Workspaces

# Profile anzeigen (nur lesend)
python scripts/vscode_skill.py profile list
python scripts/vscode_skill.py profile show --Profile <name>

# Prüfen, ob der Settings-Sync-Speicher lokal existiert (liest keine Nutzdaten)
python scripts/vscode_skill.py settings-sync status

# Multi-Root-Workspace-Helfer
python scripts/vscode_skill.py workspace info --ProjectPath /pfad/zum/projekt
python scripts/vscode_skill.py workspace folder-settings-get --ProjectPath /pfad --Folder frontend
python scripts/vscode_skill.py workspace folder-settings-set --ProjectPath /pfad --Folder frontend --SettingKey editor.defaultFormatter --SettingValue dbaeumer.vscode-eslint --Apply

Settings Sync wird niemals programmatisch aktiviert oder deaktiviert – das Skill meldet nur, ob der Sync-Speicherordner existiert. Aktivieren/Deaktivieren über die VS Code-Konten-Oberfläche, um versehentliche Datenlecks zu vermeiden.

Remote-Entwicklung

  • ssh open erstellt einen vscode-remote://ssh-remote+<host><path>-URI und startet die aufgelöste CLI mit --folder-uri.
  • wsl open erstellt einen vscode-remote://wsl+<distro><path>-URI auf ähnliche Weise.
  • ssh smoke führt ssh -V, ssh -G <host> und Test-NetConnection aus, um die untere Ebene zu bestätigen; es garantiert nicht, dass die Remote-SSH-Erweiterung installiert ist oder dass der VS Code-Server gestartet wurde.

Für tiefergehende Remote-Fehlerbehebung überprüfen Sie Hilfe → Entwicklertools umschalten, den Remote-SSH-Erweiterungsausgabekanal oder den workspaceStorage-Eintrag des entsprechenden Produkts.

Tests

Das gebündelte run_vscode_skill_tests.py führt standardmäßig sichere Nur-Lese-Prüfungen durch:

python -X utf8 scripts/run_vscode_skill_tests.py --basic

Optionale Gruppen (erfordern die entsprechende Umgebung):

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-product-tests
python -X utf8 scripts/run_vscode_skill_tests.py --all  # alles außer WSL
python -X utf8 scripts/run_vscode_skill_tests.py --all --no-python-venv

Tests werden auf allen Plattformen ausgeführt; WSL-Tests werden auf Nicht-Windows-Maschinen übersprungen. Erwartete Fehler (z. B. fehlende Produkte) werden als übersprungen markiert, nicht als bestanden.

Verwandte Skills