Communitygithub.com

Duanzhoutao/vscode-skill

Compétence portable pour configurer et utiliser les IDE de la famille VS Code (VS Code, VS Code Insiders, Cursor, VSCodium, Trae, Qoder, CodeBuddy) via les CLI produits et des fichiers de configuration JSON structurés.

Qu'est-ce que vscode-skill ?

Ce skill est conçu pour les agents AI qui doivent configurer et opérer les IDE de la famille VS Code, y compris les dérivés populaires comme Cursor, VSCodium, Trae, Qoder et CodeBuddy. En utilisant un script Python multiplateforme comme passerelle, il offre une interface unifiée pour des opérations essentielles telles que lister les extensions, modifier les paramètres utilisateur ou projet, gérer les interpréteurs Python, et travailler avec des modèles de tâches et de lancement. Le skill résout intelligemment les chemins et les préférences machine via des variables d'environnement, un fichier de configuration structuré (JSON) et des valeurs par défaut intégrées, garantissant une exécution sur n'importe quelle machine sans modification manuelle. Il supporte également le développement distant via SSH et WSL, et inclut un ensemble complet de commandes pour l'inspection en lecture seule avant toute écriture réelle. L'agent peut ainsi assister les développeurs dans la configuration et l'automatisation de leur environnement de développement avec une grande fiabilité et un minimum de friction.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add Duanzhoutao/vscode-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

VS Code

Compétence portable pour configurer et utiliser les IDE de la famille VS Code (VS Code, VS Code Insiders, Cursor, VSCodium, Trae, Qoder, CodeBuddy) via la CLI produit et des fichiers de configuration JSON structurés. Les paramètres par défaut utilisent uniquement les emplacements standard ; les chemins explicites sont pris à partir des variables d'environnement et d'un fichier de configuration, permettant à la compétence de s'exécuter sur n'importe quelle machine sans édition.

Note sur les plateformes : Multiplateforme via la passerelle Python scripts/vscode_skill.py. Sous Windows, elle redirige vers le pilote PowerShell vscode-cli.ps1 (l'implémentation d'origine, 11/11 tests réussis). Sous macOS et Linux, elle implémente nativement en Python les commandes info, ext list, settings path/get/set/smoke et python set-interpreter ; tout le reste est délégué à votre binaire code local.

Démarrage rapide

Multiplateforme (recommandé)

# Affiche le produit détecté, le chemin CLI et les emplacements clés
python scripts/vscode_skill.py info

# Liste les extensions installées
python scripts/vscode_skill.py ext list

# Affiche le chemin du fichier user settings.json et les paramètres principaux actuels
python scripts/vscode_skill.py settings path
python scripts/vscode_skill.py settings get

# Modifie la taille de la police dans les paramètres utilisateur (écrit seulement avec --Apply)
python scripts/vscode_skill.py settings set \
    --FontSize 16 --FontFamily "JetBrains Mono, Consolas, monospace" --Apply

# Paramètres au niveau du projet
python scripts/vscode_skill.py settings set \
    --Scope project --ProjectPath /chemin/vers/projet \
    --FormatOnSave true --Apply

# Interpréteur Python pour un projet
python scripts/vscode_skill.py python set-interpreter \
    --ProjectPath /chemin/vers/projet --VenvName .venv

Windows uniquement (PowerShell)

Les mêmes commandes fonctionnent directement via vscode-cli.ps1 si vous préférez PowerShell :

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

Valeurs --Product :

  • auto (par défaut) : probe VS Code, puis VS Code Insiders.
  • vscode : utilise code / code.cmd.
  • vscode-insiders : utilise code-insiders / code-insiders.cmd.
  • Tout slug de produit configuré tel que cursor, vscodium, trae-cn, qoder ou codebuddy-cn : utilise products.<slug>.cliPath, userDataPath et extensionsPath du fichier de configuration.

Définissez le produit par défaut explicitement avec VSCODE_SKILL_PRODUCT ou via le fichier de configuration (voir Configuration).

Produits compatibles VS Code

La détection automatique intégrée est la plus robuste pour VS Code et VS Code Insiders. Cursor, VSCodium, Trae, Qoder et CodeBuddy sont gérés via le chemin de configuration générique du produit, sauf si leur CLI est déjà détectable via un wrapper spécifique à l'environnement.

Cette compétence ne revendique que la surface de configuration compatible VS Code pour les produits dérivés :

  • Paramètres utilisateur et projet, y compris .vscode/settings.json.
  • .vscode/tasks.json, .vscode/launch.json et .vscode/extensions.json du projet.
  • Raccourcis clavier, snippets, profils, extensions, modèles, sélection de l'interpréteur Python et flux d'ouverture de type Remote lorsque la CLI du produit local les prend en charge.

N'utilisez pas cette compétence pour prendre en charge les chats AI propriétaires, les comptes, les paramètres de modèle, les magasins d'agents, les marketplaces spécifiques aux produits, les états SQLite cachés, les jetons ou les fichiers runtime internes. Pour Qoder et CodeBuddy en particulier, limitez-vous au niveau de l'éditeur/configuration compatible VS Code, sauf si l'utilisateur fournit une documentation officielle spécifique au produit et demande un adaptateur séparé.

Configuration

Les chemins et les préférences par machine sont résolus dans cet ordre :

  1. Variable d'environnement (priorité la plus élevée).
  2. Fichier de configuration à $VSCODE_SKILL_CONFIG s'il est défini, sinon le défaut de la plateforme :
    • Windows : %APPDATA%\vscode-skill\config.json
    • macOS / Linux : $XDG_CONFIG_HOME/vscode-skill/config.json ou ~/.config/vscode-skill/config.json
  3. Valeurs par défaut intégrées (priorité la plus basse).

Variables d'environnement

VariableObjectifDéfaut
VSCODE_SKILL_HOMEEmplacement d'installation de la compétenceparent du script en cours d'exécution
VSCODE_SKILL_CONFIGSurcharge du chemin du fichier de configurationdéfaut de la plateforme ci-dessus
VSCODE_SKILL_TEMPSurcharge du réperoire temporaire pour les tests$TEMP/vscode-skill
VSCODE_SKILL_PRODUCTValeur --Product par défautauto
VSCODE_CODE_CLIChemin explicite vers la CLI VS Codedétection automatique
VSCODE_INSIDERS_CLIChemin explicite vers la CLI VS Code Insidersdétection automatique
VSCODE_EXTENSIONS_DIRSurcharge du répertoire d'installation des extensions pour tout produitdéfaut du produit ou configuration
VSCODE_USER_DATASurcharge du répertoire de données utilisateur (rare)défaut de la plateforme

Schéma du fichier de configuration

Copiez config.example.json depuis la racine de la compétence vers votre emplacement de configuration et éditez-le. Toutes les clés sont optionnelles.

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

Exécutez pwsh -File scripts/init-config.ps1 pour écrire un fichier de configuration de démarrage à l'emplacement par défaut.

Discipline des portées

Avant d'écrire un état IDE, classez-le dans l'une des trois portées et confirmez avec l'utilisateur en cas d'ambiguïté :

  • Inspection en lecture seule : info, ext list/locate, settings get/path. Toujours sûr.
  • Configuration du projet : .vscode\settings.json, tasks.json, launch.json, extensions.json, snippets du projet. Digne d'être commité ; n'incluez pas de thèmes personnels, polices, informations de compte ou chemins absolus locaux à la machine.
  • Configuration utilisateur / globale : settings.json utilisateur, keybindings.json, snippets utilisateur, paramètres de profil, extensions installées. Indiquez toujours le produit cible, le fichier, la clé, l'ancienne valeur (lorsqu'elle est lisible), la nouvelle valeur et le chemin de restauration avant d'appliquer.

Règles :

  • settings set nécessite --Apply explicite ; sans cela, la commande valide uniquement les entrées.
  • ext install appelle --install-extension de la CLI produit. Si la galerie échoue, le script ne réessaye pas silencieusement avec Open VSX ; un avertissement clair est affiché et l'appelant décide.
  • Les paramètres de projet écrits via cette compétence ne doivent jamais inclure python.defaultInterpreterPath pointant vers un venv local à la machine, sauf si le projet est destiné à être reproductible sur cette machine spécifique.

Référence des paramètres

Chemins courants des paramètres utilisateur :

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

Clés courantes (toutes définissables via settings set) :

CléDrapeauType
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(défini via python set-interpreter)string

Pour les clés arbitraires, passez --SettingKey <clé> --SettingValue <valeur>. Les valeurs sont converties : true/false → bool, entier/flottant → number, {...} / [...] → JSON, sinon string.

Les fichiers JSON peuvent utiliser le style JSON-avec-Commentaires de VS Code ; l'analyseur JSON standard du script ne gère que le JSON pur. Les fichiers contenant des commentaires doivent être édités via l'éditeur ou un outil compatible JSONC.

Commandes

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

Ordre de résolution CLI : env explicite (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 (défaut Windows). Les produits génériques échouent clairement lorsque products.<product>.cliPath est absent ; ils ne sont jamais mappés silencieusement à VS Code.

Modèles et contenu groupé

La compétence est livrée avec du contenu organisé sous references/ :

  • settings-index.md — 80 paramètres les plus utilisés avec type, défaut, portée.
  • settings-precedence.md — Modèle de précédence à 11 couches + comportement des espaces de travail multi-racines.
  • tasks-templates.md + templates/tasks/*.json — 10 tasks.json prêts à l'emploi pour Node, TypeScript, Python, Go, Rust, Docker, Make.
  • launch-templates.md + templates/launch/*.json — 9 launch.json prêts à l'emploi pour les mêmes langages plus Chrome.
  • extension-packs.md — 8 piles organisées (frontend-web, backend-python, backend-node, data-science, systems, devops, polyglot-baseline, ai-coding).
  • keybindings-cheatsheet.md — 50 raccourcis les plus remappés.
# Liste les modèles de tâches disponibles
python scripts/vscode_skill.py tasks list

# Génère .vscode/tasks.json à partir d'un modèle (refuse d'écraser sans --Force)
python scripts/vscode_skill.py tasks init --Template python-pytest --ProjectPath /chemin/vers/projet --Apply

# Même structure pour les modèles de lancement
python scripts/vscode_skill.py launch init --Template python-current-file --ProjectPath /chemin/vers/projet --Apply

# Piles d'extensions organisées
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 /chemin/vers/projet

Profils, synchronisation des paramètres, espaces de travail multi-racines

# Inspecte les profils (lecture seule)
python scripts/vscode_skill.py profile list
python scripts/vscode_skill.py profile show --Profile <nom>

# Vérifie si le stockage de la synchronisation des paramètres existe localement (ne lit pas les charges utiles)
python scripts/vscode_skill.py settings-sync status

# Aide pour les espaces de travail multi-racines
python scripts/vscode_skill.py workspace info --ProjectPath /chemin/vers/projet
python scripts/vscode_skill.py workspace folder-settings-get --ProjectPath /chemin --Dossier frontend
python scripts/vscode_skill.py workspace folder-settings-set --ProjectPath /chemin --Dossier frontend --SettingKey editor.defaultFormatter --SettingValue dbaeumer.vscode-eslint --Apply

La synchronisation des paramètres n'est jamais activée ou désactivée programmatiquement — la compétence signale uniquement si le dossier de stockage de synchronisation existe. Activez/désactivez-la via l'interface utilisateur des comptes VS Code pour éviter les fuites de données accidentelles.

Développement distant

  • ssh open construit une URI vscode-remote://ssh-remote+<hôte><chemin> et lance la CLI résolue avec --folder-uri.
  • wsl open construit une URI vscode-remote://wsl+<distro><chemin> de la même manière.
  • ssh smoke exécute ssh -V, ssh -G <hôte> et Test-NetConnection pour confirmer la couche inférieure ; il ne garantit pas que l'extension Remote-SSH soit installée ou que le serveur VS Code ait démarré.

Pour un dépannage distant plus approfondi, consultez Aide → Développeur → Outils de développement, le canal de sortie de l'extension Remote-SSH, ou l'entrée workspaceStorage du produit concerné.

Tests

Le run_vscode_skill_tests.py inclus exécute des vérifications sécurisées sans écriture par défaut :

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

Groupes optionnels (nécessitent l'environnement correspondant) :

python -X utf8 scripts/run_vscode_skill_tests.py --include-python-venv
python -X utf8 scripts/run_vscode_skil

…

[ tronqué pour la traduction ]

Skills associés