Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Swap Accounts — Claude CodeNew to Visual Studio Code? Get it now.
Swap Accounts — Claude Code

Swap Accounts — Claude Code

Lucas Freitas

| (0) | Free
Troca rápida entre contas do Claude Code, com dashboard de cota (5h/semana + reset) em tarjas no rodapé. Uma tarja por conta; clique para trocar quando a cota encher.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Swap Accounts — Claude Code

Troca rápida entre várias contas do Claude Code direto do VSCode, com um dashboard de cota no rodapé. Uma tarja por conta (nome + % de uso das 5h/semana + horário de reset); quando a cota de uma enche, você clica na tarja de outra e continua — mantendo o mesmo contexto (histórico, projetos, settings do Claude Code).

Por que

Quem tem mais de uma conta Claude (Max/Pro/Teams) bate o limite de uso de uma e quer pular pra outra sem reconfigurar nada. O Claude Code guarda a credencial num único lugar (CLAUDE_CONFIG_DIR); esta extensão gira essa credencial entre contas que você capturou antes, e mostra a cota de cada uma pra você saber pra qual pular.

No rodapé, uma tarja por conta: ✓ Personal 12% (ativa, fundo colorido) · Work 45% · Studio ⊗ 09/08 (semana esgotada). Clique numa tarja pra trocar.

Como funciona (resumo técnico)

O Claude Code lê a conta de:

  • <configDir>/.credentials.json — token OAuth (claudeAiOauth.accessToken)
  • <configDir>/.claude.json — identidade exibida (oauthAccount)

onde configDir = CLAUDE_CONFIG_DIR (ou ~/.claude). A extensão guarda um snapshot por conta em ~/.claude-accounts/<id>/ e, ao trocar, copia o snapshot por cima do configDir e recarrega a janela — a extensão Claude Code relê o token no reload. A cota vem de GET https://api.anthropic.com/api/oauth/usage.

A troca é manual, por clique — sem rotação automática (evita o risco de rotacionar tokens no meio de uma sessão).

Instalar

Rápido (sem buildar)

  1. Baixe o swap-accounts-<versão>.vsix do último release.
  2. Instale (precisa do code no PATH):
code --install-extension swap-accounts-0.1.0.vsix
  1. Developer: Reload Window.

Buildar do código

git clone https://github.com/lucasftas/swap-accounts.git
cd swap-accounts
npm install
npm run compile
npx @vscode/vsce package --allow-missing-repository --no-yarn
code --install-extension swap-accounts-0.1.0.vsix

Requisito: Node.js + code CLI no PATH (VSCode → Command Palette → "Shell Command: Install 'code' command in PATH").

Configurar as contas

Nas settings (settings.json), declare as contas — uma tarja por item, na ordem da lista:

"swapAccounts.accounts": [
  { "id": "personal", "label": "Personal", "color": "#644389" },
  { "id": "work",     "label": "Work",     "color": "#D6515C" }
]
  • id — nome da pasta-snapshot (~/.claude-accounts/<id>/). Sem espaços.
  • label — texto exibido na tarja.
  • color — cor hex (fundo quando a conta está ativa, texto quando inativa).

Popular cada conta (uma vez por conta)

O snapshot de cada conta é criado a partir da conta logada no momento:

  1. Logue na conta A no Claude Code (claude auth login).
  2. Command Palette → "Swap Accounts: Capturar conta atual num slot" → escolha o slot (ou crie um id novo).
  3. Repita pra cada conta (logue na B, capture no slot B; etc).

Isso salva ~/.claude-accounts/<id>/.credentials.json + oauthAccount.json. Refaça a captura de uma conta sempre que quiser atualizar o snapshot dela (ex: token renovado).

Usar

  • Trocar: clique na tarja da conta desejada no rodapé (ou Command Palette → "Swap Accounts: Trocar de conta") → confirme Recarregar. A janela recarrega e o Claude Code volta na conta nova, mesmo contexto.
  • Conta esgotada/desconectada → login: se a conta estiver 429/cota estourada (5h ou semana ≥100%) ou desconectada (sem sessão salva), clicar na tarja abre o login dela em vez de trocar (trocar pra uma conta sem cota/sessão não adianta). A esgotada dá a opção "Trocar mesmo assim"; a desconectada vai direto pro login. Depois de logar, rode "Capturar conta atual num slot" pra salvar a sessão. (Também via Command Palette → "Swap Accounts: Fazer login numa conta".)
  • Dashboard: cada tarja mostra as duas cotas — $(clock) 5h% (janela de 5 horas / sessão) e $(calendar) semana%. ⊗ marca a cota que estourou. A conta ativa tem $(check) e fundo colorido; passe o mouse pra ver os % + horários de reset/volta detalhados.
    • Projeção da semana (no hover): o tooltip estima quando a cota semanal chega a 100% e diz direto, pelo dia da semana — ⚠️ nesse ritmo, a cota da semana estoura na Quinta às 10h24 ou 📈 nesse ritmo, a cota da semana aguenta até resetar (Quinta). O ritmo combina dinâmico (últimas ~4h, de amostras que a extensão guarda por conta em <accountsDir>/<id>/usage-samples.json) + fixo (média desde o início do ciclo): no começo pesa o fixo (estável), depois o dinâmico assume.
    • Só a conta ativa mostra cota ao vivo (token fresco). Inativas usam o snapshot, que expira ~1h após a captura → mostram ·? (estado expired, não conta como desconectada — a troca segue normal). Isso é esperado.

Settings

Setting Default O que é
swapAccounts.accounts [] Lista de contas (id, label, color).
swapAccounts.accountsDir ~/.claude-accounts Onde ficam os snapshots.
swapAccounts.configDir $CLAUDE_CONFIG_DIR ou ~/.claude Config dir do Claude Code (credencial ativa).
swapAccounts.reload reloadWindow Como aplicar: reloadWindow · command · none.
swapAccounts.reloadCommand "" Comando shell quando reload=command (${id} = conta destino).
swapAccounts.loginCommand "" Comando de login ao clicar numa conta 429/desconectada (${id}/${email}). Vazio = claude auth login.
swapAccounts.refreshSeconds 60 Intervalo pra reconsultar a cota.

code-server / servidor (modo command)

No VSCode desktop, reloadWindow basta. Em code-server (ou setups onde o Claude Code roda como serviço), reiniciar o serviço é mais confiável que recarregar a aba do browser. Use:

"swapAccounts.reload": "command",
"swapAccounts.reloadCommand": "sudo systemd-run --collect --unit=claude-switch-${id} --property=Type=oneshot /home/USER/scripts/claude-switch.sh ${id}"

Nesse modo a extensão não mexe nos arquivos — delega tudo ao comando (que sabe parar o serviço antes de trocar a credencial, evitando lock). Um script de referência (claude-switch.sh, faz copy da credencial + patch do oauthAccount + restart) está em scripts/.

Notas

  • Fundo colorido da tarja ativa: a API do VSCode só permite error/warning como background de status bar item. Pra dar cor por conta, a extensão sobrescreve statusBarItem.errorBackground no seu settings.json global ao trocar de conta. Outros itens de status que usem essa cor herdam o tom da conta ativa.
  • Segurança: os snapshots contêm tokens OAuth reais. ~/.claude-accounts/ fica fora de qualquer repositório; não versione essa pasta.
  • macOS: se o Claude Code guardar a credencial no Keychain (sem CLAUDE_CONFIG_DIR apontando pra arquivo), a troca por arquivo não se aplica — defina CLAUDE_CONFIG_DIR pra usar credencial em disco.

Releases

https://github.com/lucasftas/swap-accounts/releases

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft