OSS · Extensión de Chrome · Node.js
claude-shift
Una máquina, varias cuentas de Claude Code.
Gestiona varias cuentas de Claude Code en la misma máquina. shift use cambia la cuenta activa sincronizando los dos archivos que Claude Code realmente lee (~/.claude/.credentials.json para los tokens, ~/.claude.json para el oauthAccount que muestra /status). Un servidor local consulta api.anthropic.com/api/oauth/usage en intervalo configurable y guarda la utilización de 5 horas y semanal en SQLite. El popup del Chrome muestra cada cuenta con un gráfico SVG cruzado y permite cambiar la activa desde el popup.
Ver en GitHub Internals de la autenticación en dos archivos →
Comandos CLI
Un shell script sobre helpers en Node. Todos los comandos funcionan solos; server y popup son opcionales.
| Comando | Qué hace |
|---|---|
shift list | Lista todas las cuentas registradas con la activa marcada. |
shift use <name> | Cambia la activa. Hace sync back del token refresh y actualiza el oauthAccount en ~/.claude.json. |
shift usage | Muestra 5 horas y semanal con horas de reset por cuenta. |
shift seed <name> | Hace una petición mínima para iniciar la ventana de 5 horas ahora. Útil antes de una sesión larga. |
shift add <name> | Registra el credentials.json actual como <name>. Token duplicado emite aviso (-f para forzar). |
shift rm <name> | Elimina el registro. Eliminar la activa requiere -f. |
shift server | Levanta el servidor local (127.0.0.1:19867). Hace polling de usage y guarda en SQLite. |
Popup del Chrome
El popup habla con un servidor local en 127.0.0.1:19867 que consulta la API de usage en intervalo configurable y graba snapshots en SQLite. Cada cuenta recibe una barra de 5 horas y una semanal; el modal de análisis dibuja un gráfico SVG cruzado en 6h / 24h / 7d. La card activa lleva el badge 使用中; las demás muestran el botón 切替 que dispara la misma pipeline de shift use por detrás.
Instalación
Cloná el repo y registrá las cuentas una por una. Cada cuenta se captura justo después del /login dentro de 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/ Cuatro cosas que vale conocer
Cada una costó un incidente real. Las dejo documentadas para que el próximo lector las salte directo.
-
La vista de la cuenta vive en ~/.claude.json, no en el archivo de credenciales
Cambiar solo ~/.claude/.credentials.json hace que /status siga mostrando la cuenta anterior mientras el nuevo token autentica cada request. El desajuste es silencioso y confuso. shift use trae el profile de api.anthropic.com/api/oauth/profile con el nuevo token y escribe ambos archivos de forma consistente.
-
Los tokens refresh deben sincronizarse antes de sobrescribir
El archivo de token en disco es actualizado por Claude Code durante la sesión. Sobrescribir con la cuenta destino sin sincronizar el archivo actual de vuelta al slot de la cuenta original descarta ese refresh y puede requerir un nuevo login. shift use graba las credenciales actuales en el slot de la cuenta anteriormente activa antes de reemplazar.
-
La ventana de 5 horas empieza en el primer uso, no en el reloj
Dos cuentas Max/Team iniciadas a las 10:00 y a las 15:00 dan dos ventanas de 5 horas independientes que se pueden encadenar. shift seed hace una petición mínima para iniciar la ventana bajo demanda, útil para posicionar una ventana nueva justo antes de una sesión larga.
-
El intervalo de polling del popup es configurable y persiste
El servidor acepta --interval N (minutos) al arrancar y un POST /config desde el popup. El valor se guarda en ~/.claude-shift/config.json y se recarga en el siguiente tick. Por defecto 10 minutos; el ícono de engranaje del popup lo cambia sin reiniciar el servidor.
Herramientas relacionadas para devs
- opencut-mcp Servidor MCP que maneja OpenCut classic desde cualquier cliente MCP. Playwright mantiene la sesión del editor; doce herramientas exponen la línea de tiempo, assets y pipeline de export. Corre contra un fork de 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.