Extension VS Code pour switcher le compte utilisé par l'extension Claude Code (profils CLAUDE_CONFIG_DIR), depuis la barre de statut.
Inclut aussi le wrapper terminal claude-accounts.zsh (fonction claude qui mappe dossier → compte, à sourcer dans ~/.zshrc). Même pattern que l'extension claude-code-switch-local (modèles locaux). Remplace l'ancien projet claude-code-limits (dashboard web).
Fonctionnement
Découverte automatique des profils : tous les dossiers ~/.claude* contenant un login (email lu dans le .claude.json du profil).
Barre de statut : $(account) <profil> · <5h%> affiche le compte actif et son % d'utilisation de la fenêtre 5 h (fond orange à partir de 90 %). Le survol affiche le détail de tous les comptes (5 h, 7 jours, Opus, heures de reset). Clic → sélecteur.
Usage autonome : tokens lus dans le Keychain (entrée Claude Code-credentials[-sha256(configDir)[0:8]]), endpoint api.anthropic.com/api/oauth/usage, cache 10 min, backoff sur 429, refresh OAuth automatique avec réécriture des tokens rotatés dans le Keychain. Aucun serveur externe requis.
Portée globale uniquement : le switch écrit claudeCode.environmentVariables (avec CLAUDE_CONFIG_DIR) dans les settings utilisateur de VS Code. L'extension Claude Code ne lit pas la valeur de portée dossier/workspace : un réglage local est ignoré, donc le switch le supprime s'il en trouve un.
Choisir le profil par défaut (~/.claude) retire l'override.
Un rechargement de fenêtre est proposé après chaque changement (l'env ne s'applique qu'au lancement du process Claude).
Build et installation
cd "$HOME/Documents/Noah LANFRIT/Projets/claude-code-account-switch" && npm install && npm run package && code --install-extension ./claude-code-account-switch-0.3.0.vsix
Réglages
claudeAccountSwitch.extraProfileDirs — dossiers de config supplémentaires à proposer, en plus des ~/.claude* auto-détectés.
Limites
Pas d'attribution dossier → compte dans l'IDE (l'extension Claude Code ignore les settings de workspace). Pour le terminal, le mapping par dossier reste possible via claude-accounts.zsh.
Ne modifie que l'extension VS Code. Pour le terminal, c'est le wrapper claude-accounts.zsh (projet claude-code-limits) qui gère le mapping dossier → compte.
Les profils doivent déjà être connectés (un /login initial par profil, une seule fois).