Si tienes una cuenta de Claude por el trabajo y una suscripción personal, ya conoces la parte incómoda: Claude Code guarda una sesión a la vez. Cambiar de cuenta significa cerrar sesión en una y entrar en la otra.
Y cerrar sesión cuesta más de lo que parece. Además de la credencial, /logout reinicia el estado de primer arranque, así que la siguiente vez que abras Claude Code vuelves a pasar por la configuración inicial. El historial, la memoria de proyecto y los permisos que aprobaste siguen en disco, pero dejas de trabajar con ellos en el momento en que la otra cuenta toma el control.
Hay una solución limpia que no necesita herramientas extra, y es la que la propia documentación de Anthropic sugiere. Al terminar esta guía vas a tener dos cuentas conviviendo en la misma máquina, cada una con su historial, su memoria y sus permisos, y vas a saber exactamente qué se separa, qué no, y qué hacer si tu sistema es macOS.
La versión de 30 segundos
Si solo quieres el resultado, son dos líneas en tu archivo de shell:
1# ~/.zshrc (o ~/.bashrc en bash)2alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'3alias claude-personal='CLAUDE_CONFIG_DIR=~/.claude-personal claude'
Recarga el shell con source ~/.zshrc, ejecuta cada alias una vez y haz /login con la cuenta que corresponda. Ya está.
El resto del artículo explica por qué funciona, cómo comprobar que de verdad quedaron separadas, el detalle de macOS que casi ninguna guía menciona, y qué hacer cuando ese detalle te afecta.
Qué guarda Claude Code por cuenta
Por defecto, Claude Code trabaja contra un solo directorio: ~/.claude (en Windows, %USERPROFILE%\.claude). Ese directorio no guarda únicamente tu sesión: guarda prácticamente todo tu contexto acumulado.

La variable de entorno CLAUDE_CONFIG_DIR cambia cuál es ese directorio. La documentación de variables de entorno lo describe así:
Sobrescribe el directorio de configuración (por defecto, ~/.claude). Todos los ajustes, el historial de sesiones y los plugins se guardan bajo esa ruta, igual que las credenciales en Linux y Windows; en macOS, las credenciales están en el llavero del sistema. Útil para usar varias cuentas en paralelo.Vale la pena leer la lista completa de lo que queda dentro, porque explica por qué el truco se siente tan limpio comparado con cerrar y abrir sesión:
settings.json— permisos, hooks, variables de entorno y el modelo por defecto.history.jsonl— cada prompt que has escrito, con su proyecto. Es lo que recupera la flecha arriba.projects/— las transcripciones completas de cada sesión y la memoria automática que Claude escribe para sí mismo entre sesiones.plugins/,skills/,agents/,commands/,rules/— todo lo que hayas instalado o escrito para extender Claude Code.file-history/— las copias previas de los archivos editados, que es lo que permite restaurar un checkpoint..credentials.json— la sesión iniciada, solo en Linux y Windows. Volvemos a esto en un momento.
Un solo binario de Claude Code, tantos estados independientes como directorios quieras. No instalas nada dos veces.
La instalación, paso a paso
Paso 1 — Añade los alias
En zsh (el shell por defecto en macOS) el archivo es ~/.zshrc. En bash, ~/.bashrc. Las dos líneas son idénticas:
1alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'2alias claude-personal='CLAUDE_CONFIG_DIR=~/.claude-personal claude'
No hace falta crear los directorios: Claude Code los crea la primera vez que arranca con esa variable. Recarga el shell:
1source ~/.zshrc
Paso 2 — Inicia sesión una vez con cada alias
Abre cada uno y ejecuta /login con la cuenta que le toca. Es la única vez que tienes que hacerlo.
1claude-work2# dentro de Claude Code: /login → cuenta de la empresa34claude-personal5# dentro de Claude Code: /login → tu suscripción personal
Paso 3 — Comprueba que de verdad quedaron separadas
Este paso es el que casi todas las guías omiten, y es el único que te dice si el truco funcionó en tu máquina. Dentro de cada alias, ejecuta /status: muestra el método de acceso, la organización y el correo de la sesión activa.

Abre los dos alias, ejecuta /status en cada uno y compara. Si ves dos cuentas distintas, terminaste. Si ves la misma cuenta en ambos, sigue leyendo: estás en el caso de macOS.
El detalle de macOS que casi ninguna guía menciona
Aquí es donde la versión popular de esta técnica se pone imprecisa. La mayoría de los artículos afirman que cada directorio de configuración se queda con su propia sesión, sin más. La documentación de Anthropic es más específica que eso.

La página de autenticación enumera dónde vive la credencial en cada plataforma: en macOS, en el llavero cifrado del sistema; en Linux, en ~/.claude/.credentials.json con permisos 0600; en Windows, dentro del perfil de usuario. Y añade una frase que conviene leer despacio:
Si has definido la variable de entornoCLAUDE_CONFIG_DIRen Linux o Windows, el archivo.credentials.jsonvive bajo ese directorio.
Linux y Windows. macOS no aparece en esa frase, y en la referencia de variables se dice explícitamente que en macOS las credenciales están en el llavero del sistema. Es decir: en macOS el directorio de configuración separa los ajustes, el historial, las transcripciones, la memoria y los plugins —todo lo de la lista anterior— pero la documentación no describe una separación de credenciales por directorio.
Qué hacer con esto, en la práctica: pruébalo antes de darlo por hecho. Haz el paso 3. Si /status te muestra dos cuentas distintas, no tienes nada más que resolver. Si te muestra la misma, la solución está abajo y es determinista.
Si las dos cuentas se pisan: la ruta del token
Claude Code puede autenticarse con un token OAuth de larga duración que, según la documentación, tiene prioridad sobre las credenciales guardadas en el llavero. Eso convierte la cuenta en algo que se define por alias, no por máquina.
Genera un token por cada cuenta. El comando abre el mismo flujo de navegador que /login e imprime el token al terminar:
1claude setup-token
Después, ata cada token a su alias:
1alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work CLAUDE_CODE_OAUTH_TOKEN=$(security find-generic-password -s claude-token-work -w) claude'2alias claude-personal='CLAUDE_CONFIG_DIR=~/.claude-personal CLAUDE_CODE_OAUTH_TOKEN=$(security find-generic-password -s claude-token-personal -w) claude'
El token tiene límites que conviene conocer antes de adoptarlo:
- Dura un año y requiere un plan Pro, Max, Team o Enterprise.
- Solo sirve para hacer peticiones al modelo: no establece sesiones de Remote Control ni recupera los conectores de claude.ai.
- Para renovarlo se genera uno nuevo y se reinicia la sesión.
- El modo
--bareno lo lee; ahí hay que usarANTHROPIC_API_KEYo unapiKeyHelper.
Para la mayoría de la gente en macOS, los alias simples bastan y esta sección sobra. Está aquí para el caso en que no basten.
Windows y PowerShell
La sintaxis de los alias es de zsh/bash, así que funciona tal cual en Git Bash o WSL. En PowerShell nativo se usan funciones, añadidas a tu perfil ($PROFILE):
1function claude-work { $env:CLAUDE_CONFIG_DIR = "$HOME\.claude-work"; claude @args }2function claude-personal { $env:CLAUDE_CONFIG_DIR = "$HOME\.claude-personal"; claude @args }
Recarga con . $PROFILE y ejecuta /login una vez por comando. En Windows, además, la credencial sí se mueve con el directorio, así que el aislamiento es completo desde el primer momento.
Cómo hacerlo automático
Dos alias resuelven el caso común, pero si trabajas todo el día saltando entre carpetas vas a escribir el alias equivocado tarde o temprano. Una función que decida según la ruta lo elimina:
1# ~/.zshrc — un solo comando que elige la cuenta según dónde estés2claude() {3 case "$PWD/" in4 "$HOME"/work/*) export CLAUDE_CONFIG_DIR="$HOME/.claude-work" ;;5 *) export CLAUDE_CONFIG_DIR="$HOME/.claude-personal" ;;6 esac7 command claude "$@"8}
A partir de ahí escribes claude siempre, y la carpeta decide. Ejecuta /status la primera vez en cada repositorio nuevo para confirmar que cayó donde esperabas.
Un extra: nombrar el directorio del proyecto
Si compartes rutas entre cuentas, CLAUDE_CODE_PROJECT_DIR_NAME (desde la versión 2.1.234) te deja elegir bajo qué nombre se guardan las transcripciones y la memoria de esa sesión, en lugar de derivarlo de la ruta de trabajo:
1CLAUDE_CONFIG_DIR=~/.claude-work CLAUDE_CODE_PROJECT_DIR_NAME=api-service claude
Se ignora si CLAUDE_CONFIG_DIR no está definida, y solo se lee del entorno con el que lanzas claude.
Mover una cuenta que ya tenías
Si llevas meses usando Claude Code con una sola cuenta, no empieces de cero: copia el directorio actual al nuevo nombre y deja ~/.claude para la segunda cuenta.
1cp -R ~/.claude ~/.claude-work2claude-work # /status para confirmar que el historial y la memoria siguen ahí
Copia, no muevas, hasta haber comprobado que todo está en su sitio. En Linux y Windows la credencial viaja con la carpeta; en macOS tendrás que hacer /login de nuevo en al menos uno de los dos alias.
Lo que este truco no separa

Tres límites que conviene tener claros desde el principio, porque explican casi todas las sorpresas de la segunda semana:
- Los archivos del repositorio. El
CLAUDE.mdy la carpeta.claude/de un proyecto viven en el repo. Las dos cuentas los leen igual, y así debe ser: son contexto del proyecto, no tuyo. - Los ajustes gestionados. Las políticas que despliega tu organización se aplican a nivel de máquina y tienen prioridad sobre cualquier cosa que pongas en cualquier directorio de configuración.
- Las transcripciones no están cifradas. Lo que pasa por una herramienta se escribe en texto plano en
projects/. Separar directorios evita que se mezclen, no que existan: si un cliente exige que no queden rastros, ajustacleanupPeriodDayso usaclaude project purge.
Si algo no funciona
- Los dos alias muestran la misma cuenta. Es el caso de macOS descrito arriba. Usa la ruta del token.
- El alias no existe tras reiniciar la terminal. La línea quedó en el archivo equivocado. En macOS con zsh es
~/.zshrc, no~/.bash_profile. - Empieza como si fuera la primera vez. Es lo esperado: un directorio nuevo no tiene estado. Pasa la configuración inicial una vez y ya queda.
- Perdiste el historial al cambiar. No se perdió; está en el otro directorio. Arranca el otro alias y la flecha arriba vuelve a funcionar.
- Un aviso de sesión por expirar. Claude Code avisa tres días antes. Ejecuta
/loginen el alias que corresponda; no bloquea nada hasta que expira de verdad.
Antes de hacerlo: una nota honesta
Esto separa contextos entre dos cuentas que ya son tuyas. No es una forma de multiplicar límites de uso ni de compartir una suscripción entre varias personas: los términos de servicio son de una cuenta por persona, y el asiento de tu empresa suele traer una política sobre en qué puedes usarlo. Revísala antes de apuntar el asiento del trabajo a un proyecto personal.
Si el problema que estás resolviendo es que varias personas del equipo comparten un acceso, la respuesta no son alias: es un plan Team o Enterprise con un asiento por persona, facturación central y políticas gestionadas.
Para seguir leyendo
- Variables de entorno de Claude Code — la definición de
CLAUDE_CONFIG_DIRy deCLAUDE_CODE_PROJECT_DIR_NAME. - Autenticación y gestión de credenciales — dónde vive la sesión en cada sistema y el orden de precedencia entre credenciales.
- El directorio ~/.claude — el inventario completo de lo que se guarda y durante cuánto tiempo.
Preguntas frecuentes
¿Se pueden usar dos cuentas de Claude Code en la misma computadora?
Sí. Claude Code guarda el estado de cada cuenta en un directorio de configuración, y la variable de entorno CLAUDE_CONFIG_DIR determina cuál usa. Con un alias por cuenta (por ejemplo claude-work y claude-personal), cada una mantiene sus ajustes, su historial, sus transcripciones, su memoria de proyecto y sus plugins por separado, con una sola instalación de Claude Code.
¿Qué hace exactamente CLAUDE_CONFIG_DIR?
Sobrescribe el directorio de configuración, que por defecto es ~/.claude. Bajo esa ruta se guardan los ajustes, el historial de sesiones y los plugins, además de las credenciales en Linux y Windows. En macOS las credenciales viven en el llavero del sistema. La variable debe estar en el entorno antes de lanzar claude: no funciona ponerla en el bloque env de un archivo settings.json.
¿Funciona igual en macOS que en Linux y Windows?
No del todo. En Linux y Windows la documentación indica que el archivo .credentials.json pasa a vivir dentro del directorio que definas, así que el aislamiento es completo. En macOS las credenciales están en el llavero del sistema y la documentación acota ese traslado a Linux y Windows. El resto —ajustes, historial, transcripciones, memoria y plugins— sí se separa en las tres plataformas. Comprueba tu caso ejecutando /status en cada alias.
¿Qué hago si en macOS las dos cuentas siguen mostrando la misma sesión?
Genera un token de larga duración por cuenta con claude setup-token y expórtalo como CLAUDE_CODE_OAUTH_TOKEN dentro de cada alias, ya que tiene prioridad sobre las credenciales del llavero. Guarda cada token en el llavero o en tu gestor de contraseñas y léelo desde ahí; no lo escribas en texto plano en ~/.zshrc. Ten en cuenta que el token dura un año y solo sirve para peticiones al modelo.
¿Se pierde el historial al cambiar de cuenta?
No. Cada directorio conserva su propio history.jsonl, sus transcripciones en projects/ y su memoria automática. Cuando vuelves al otro alias, la flecha arriba y la memoria de proyecto siguen exactamente donde las dejaste. Esa es justamente la ventaja frente a cerrar y abrir sesión, que además reinicia el estado de primer arranque.
¿Qué no se separa al usar directorios distintos?
Tres cosas. El CLAUDE.md y la carpeta .claude/ de un repositorio, porque viven en el proyecto y no en tu directorio de configuración. Los ajustes gestionados que despliega tu organización, que se aplican por máquina. Y el hecho de que las transcripciones se escriben en texto plano: separar directorios evita que se mezclen, no que existan.
¿Es válido según los términos de servicio?
Usar dos cuentas que ya son tuyas —la de tu empresa y tu suscripción personal— en la misma máquina no tiene problema; es el caso que la propia documentación de Anthropic menciona. Lo que no procede es compartir una suscripción entre varias personas o encadenar cuentas para ampliar límites de uso. Revisa además la política de tu empresa sobre en qué proyectos puedes usar el asiento del trabajo.
