OSS · Extensão do Chrome · Node.js
claude-shift
Uma máquina, várias contas do Claude Code.
Gerencia várias contas do Claude Code no mesmo computador. shift use troca a conta ativa sincronizando os dois arquivos que o Claude Code realmente lê (~/.claude/.credentials.json para os tokens, ~/.claude.json para o oauthAccount que aparece no /status). Um servidor local consulta api.anthropic.com/api/oauth/usage em intervalo configurável e grava a utilização de 5 horas e semanal em SQLite. O popup do Chrome mostra cada conta com um gráfico SVG cruzado e deixa você trocar a ativa direto do popup.
Comandos CLI
Um shell script sobre helpers em Node. Todos os comandos funcionam sozinhos; server e popup são opcionais.
| Comando | O que faz |
|---|---|
shift list | Lista todas as contas registradas com a ativa marcada. |
shift use <name> | Troca a ativa. Faz sync back do token refresh e atualiza o oauthAccount em ~/.claude.json. |
shift usage | Mostra 5 horas e semanal com horas de reset por conta. |
shift seed <name> | Faz uma requisição mínima para iniciar a janela de 5 horas agora. Útil antes de sessão longa. |
shift add <name> | Registra o credentials.json atual como <name>. Token duplicado gera aviso (-f para forçar). |
shift rm <name> | Remove o registro. Remover a ativa requer -f. |
shift server | Sobe o servidor local (127.0.0.1:19867). Faz polling de usage e grava em SQLite. |
Popup do Chrome
O popup conversa com um servidor local em 127.0.0.1:19867 que consulta a API de usage em intervalo configurável e grava snapshots em SQLite. Cada conta ganha uma barra de 5 horas e uma semanal; o modal de análise desenha um gráfico SVG cruzado em 6h / 24h / 7d. O card ativo carrega o badge 使用中; os demais mostram o botão 切替, que dispara a mesma pipeline do shift use por trás.
Instalação
Clone o repositório e registre as contas uma de cada vez. Cada conta é capturada logo depois do /login dentro do Claude Code.
# 1. Clone and install
git clone https://github.com/kenimo49/claude-shift
cd claude-shift
npm install
chmod +x shift.sh
# 2. Register accounts, one at a time
# Inside Claude Code, run /login for the account you want to register.
# Immediately after, register it:
./shift.sh add my-account-a
# Repeat /login + add for every account you want to manage.
# 3. Start the usage server (optional, needed for popup)
./shift.sh server --interval 5
# 4. Load the Chrome extension
# chrome://extensions → Developer mode → Load unpacked → extension/ Quatro coisas que valem saber
Cada uma custou um incidente real. Deixo documentado para quem for ler depois pular direto.
-
A exibição da conta fica em ~/.claude.json, não no arquivo de credenciais
Trocar só ~/.claude/.credentials.json faz o /status seguir mostrando a conta anterior enquanto o novo token autentica cada request. O desencontro é silencioso e confuso. shift use busca o profile em api.anthropic.com/api/oauth/profile com o novo token e escreve os dois arquivos de forma consistente.
-
Tokens refresh precisam ser sincronizados de volta antes da sobrescrita
O arquivo de token no disco é atualizado pelo Claude Code durante a sessão. Sobrescrever com a conta destino sem sincronizar o arquivo atual de volta para o slot da própria conta descarta esse refresh e pode exigir novo login. shift use grava as credenciais atuais no slot da conta anteriormente ativa antes de substituir.
-
A janela de 5 horas começa no primeiro uso, não no relógio
Duas contas Max/Team iniciadas às 10:00 e às 15:00 dão duas janelas de 5 horas independentes que podem ser encadeadas. shift seed faz uma requisição mínima para iniciar a janela sob demanda, útil para posicionar uma janela nova bem antes de uma sessão longa.
-
O intervalo de polling do popup é configurável e persiste
O servidor aceita --interval N (minutos) na inicialização e um POST /config vindo do popup. O valor é gravado em ~/.claude-shift/config.json e recarregado no próximo tick. Padrão 10 minutos; o ícone de engrenagem no popup altera o valor sem reiniciar o servidor.
Ferramentas relacionadas para devs
- opencut-mcp Servidor MCP que controla o OpenCut classic a partir de qualquer cliente MCP. Playwright mantém a sessão do editor; doze ferramentas expõem timeline, assets e pipeline de export. Roda contra um fork do OpenCut classic.
- mcp-scorecard Pre-flight checks for MCP servers: passive token footprint, use-case scoping, security, and name safety. LLM-facing quality scorecard.
- 404 Games Ten single-file canvas mini games for your 404 page, inspired by famous error pages. Vanilla JS, zero dependencies, theme-aware. Live on this site's 404.
- historymap Turn a YAML file into a corporate-style product-history timeline. Ten layouts, switchable right on the page. Static, self-contained, iframe-embeddable.