← Claude Code Hub
✦ Tip #194 Sep 11, 2026

Migrar Claude Code a otro ordenador: qué copiar de ~/.claude y qué dejar atrás

Tu ~/.claude pesa gigas y lo tuyo cabe en un mega. Copiarlo entero arrastra tres trampas: el login, las rutas y la identidad de máquina.

Migrar Claude Code a otro ordenador: las tres capas de ~/.claude

Mi ~/.claude pesa 2,8 GB. Lo que he escrito yo dentro de esa carpeta (instrucciones, settings, skills) no llega a un megabyte. El resto lo ha escrito Claude Code por mí, o lo ha escrito la máquina sobre sí misma. Copiar la carpeta entera al ordenador nuevo parece lo más rápido y es lo que más problemas da: en macOS el login ni siquiera viaja (vive en el Keychain), en Linux viaja un token que preferirías no transportar, los transcripts quedan colgados de rutas que ya no existen y el identificador de máquina es de otra máquina.

Resultado real, medido antes de escribir esto:

$ du -sh ~/.claude ~/.claude/projects ~/.claude/plugins ~/.claude/file-history
2.8G    /Users/juan.nunez/.claude
1.1G    /Users/juan.nunez/.claude/projects
691M    /Users/juan.nunez/.claude/plugins
 70M    /Users/juan.nunez/.claude/file-history

$ ls -la ~/.claude/CLAUDE.md ~/.claude/settings.json
-rw-r--r--  1 juan.nunez  staff  2386 Sep  3 11:18 /Users/juan.nunez/.claude/CLAUDE.md
-rw-------  1 juan.nunez  staff  2515 Sep 11 21:40 /Users/juan.nunez/.claude/settings.json

Las tres capas de ~/.claude

Todo lo que hay en esa carpeta cae en una de tres capas, y cada capa se migra de una forma distinta.

Lo que escribiste tú. CLAUDE.md, settings.json, skills/, commands/, agents/, workflows/, keybindings.json, themes/, output-styles/, y los scripts a los que apunta settings.json (un statusLine, un hook), en mi caso statusline.sh. Es texto plano, no depende de la máquina y se copia tal cual. Aquí también entra un bloque que no vive en ~/.claude sino en ~/.claude.json: tus servidores MCP de usuario, los que añadiste con claude mcp add --scope user. Si dudas de qué archivo guarda qué, este tip lo desglosa.

Lo que Claude escribió para ti. projects/ guarda cada transcript y la memoria automática de cada proyecto, history.jsonl guarda cada prompt que has tecleado, file-history/ guarda las copias que usa /rewind. Se puede mover, pero con una condición: projects/ está indexado por la ruta absoluta del repo, codificada en el nombre del directorio.

$ ls ~/.claude/projects | grep -- -code- | head -3
-Users-juan-nunez-code-ai-infra
-Users-juan-nunez-code-ai-plugins
-Users-juan-nunez-code-craft

Si en el ordenador nuevo tu usuario se llama distinto, o los repos cuelgan de otra ruta, esas sesiones no aparecen en el selector de /resume ni en --continue desde el repo, y la memoria automática de ese repo no se carga. claude --resume <id> sí las abre desde cualquier directorio (desde la v2.1.223), pero tienes que conocer el id.

Lo que escribió la máquina sobre sí misma. El login, que en macOS no es un archivo sino una entrada del Keychain. ~/.claude.json, que además de tus MCP guarda machineID, anonymousId, el trust de cada carpeta que has aprobado (51 en mi caso) y caches de features. Y plugins/, cuyo installed_plugins.json apunta a rutas absolutas de tu disco actual. Nada de esto se copia. Se regenera en un minuto.

Cómo montarlo

1. Empaqueta la capa que es tuya

cd ~ && tar czf claude-config.tgz \
  .claude/CLAUDE.md .claude/settings.json .claude/statusline.sh \
  .claude/skills .claude/commands .claude/agents .claude/workflows \
  .claude/keybindings.json .claude/themes .claude/output-styles

tar avisa de los archivos que no existen y sigue. En mi caso el paquete pesa 9 KB. Si tus skills son enlaces simbólicos a un repo, como los míos, tar guarda el enlace, no el contenido: en el ordenador nuevo clonas el repo y los enlaces vuelven a resolver.

Antes de cerrar la lista, comprueba qué archivos de ~/.claude referencia tu settings.json y añádelos:

grep -o '~/.claude/[^"]*' ~/.claude/settings.json

Descomprime en el destino con tar xzf claude-config.tgz -C ~.

2. Haz login, no copies el login

En macOS el token vive en el Keychain bajo Claude Code-credentials, no en un archivo. En Linux y Windows vive en ~/.claude/.credentials.json. En los tres casos la respuesta es la misma: en el ordenador nuevo, claude y /login. Un minuto de navegador contra el riesgo de transportar un token en un disco externo.

3. Lleva solo tus MCP de usuario

~/.claude.json no se copia entero. Se extrae el bloque mcpServers y se fusiona en el archivo que Claude Code cree en la máquina nueva:

# origen
jq '{mcpServers}' ~/.claude.json > mcp-servers.json

# destino, con Claude Code cerrado, después del paso 2
jq -s '.[0] * .[1]' ~/.claude.json mcp-servers.json > /tmp/c.json && mv /tmp/c.json ~/.claude.json

Lo probé con un CLAUDE_CONFIG_DIR limpio y solo ese bloque copiado:

$ claude mcp list
context7: https://mcp.context7.com/mcp (HTTP) - ✔ Connected
wmedia: https://wmedia.es/mcp/wmedia (HTTP) - ✔ Connected
frontendleap-changelog: https://frontendleap.com/mcp/changelog (HTTP) - ✔ Connected

Ese bloque incluye las cabeceras con tus claves de API. Trátalo como un secreto durante el traslado.

4. Reinstala los plugins desde tu settings.json

Tu settings.json ya lleva la lista completa: extraKnownMarketplaces dice de dónde viene cada marketplace y enabledPlugins qué plugins tienes activos. Dos líneas de jq la imprimen:

jq -r '.extraKnownMarketplaces | to_entries[] | .value.source.repo' ~/.claude/settings.json
jq -r '.enabledPlugins | keys[]' ~/.claude/settings.json

Y por cada línea, en el ordenador nuevo:

$ claude plugin marketplace add juanwmedia/craft
✔ Successfully added marketplace: craft (declared in user settings)

$ claude plugin install craft@craft
✔ Successfully installed plugin: craft@craft (scope: user)

Los 691 MB de plugins/ se quedan en el disco viejo. Lo que vuelve a bajar son solo las versiones que usas.

5. Opcional: llévate las sesiones

Solo tiene sentido si la ruta absoluta de cada repo es idéntica en las dos máquinas. Si lo es, copia el directorio del proyecto que te importe, no projects/ entero:

scp -r ~/.claude/projects/-Users-juan-nunez-code-ai-infra nuevo:~/.claude/projects/

Con eso el selector de /resume y la memoria automática de ese repo aparecen en el ordenador nuevo. Si la ruta no coincide, el transcript sigue siendo utilizable por id: desde ~/code/ai-infra lancé claude -p --resume <id> contra una sesión guardada bajo otra ruta y respondió. Lo que no cruza rutas es el selector y la memoria. history.jsonl se puede copiar con la misma condición: cada línea lleva la ruta del proyecto.

Qué copiar y qué no

Ruta Copiar Por qué
CLAUDE.md, settings.json, skills/, agents/, commands/ Tu configuración, texto plano
~/.claude.json Solo el bloque mcpServers El resto es identidad de máquina y trust por carpeta
Login No, /login Keychain en macOS, .credentials.json en Linux y Windows
plugins/ No, reinstala installed_plugins.json apunta a rutas absolutas del disco viejo
projects/<ruta>/ Si la ruta coincide Transcripts y memoria automática indexados por ruta absoluta
history.jsonl Si las rutas coinciden Cada prompt queda asociado a su proyecto
file-history/, paste-cache/, debug/, session-env/ No Checkpoints y caches de sesiones que ya no vas a reanudar

Un detalle que lleva unos minutos la primera vez: si alguna vez lanzaste Claude Code con CLAUDE_CONFIG_DIR=~/.claude para probar perfiles separados, tienes un segundo ~/.claude/.claude.json dentro de la carpeta. Claude Code compone la ruta como $CLAUDE_CONFIG_DIR/.claude.json, así que ese archivo es de aquel perfil, no del tuyo. El que importa es ~/.claude.json, en tu home.

Si lo que quieres no es mover archivos sino dejar por escrito cómo está montado tu entorno, /team-onboarding genera esa guía a partir de tus propias sesiones.

Documentación oficial: The .claude directory y Authentication: credential management

Requisitos

  • jq para los dos extractos; sin él, el bloque mcpServers se copia a mano desde ~/.claude.json
  • Claude Code cerrado en la máquina nueva mientras editas ~/.claude.json
Guía gratuita

Los 51 esenciales, en una guía.

Una página por tip. Cinco capítulos. Lo que de verdad uso a diario en producción. Sin teoría, sin humo.

  • I. Empieza bien 10 tips
  • II. Conciencia 3 tips
  • III. Maestría 22 tips
  • IV. Autonomía 10 tips
  • V. Comparativa 6 tips
¿Eres desarrollador/a Web profesional?

Recibirás la guía por email · Te unes a la newsletter Gravitas · Cancela cuando quieras

de 51
#

Wmedia · 51 Tips
Guía gratuita · 51 tips · 5 capítulos

Los 51 esenciales, en una guía.

¿Eres desarrollador/a Web profesional? · Cancela cuando quieras
Workshop para equipos

Multiplica el output de tu equipo sin sacrificar calidad: workshop AI First de 6 a 8 horas, online, sobre la plataforma Claude.

Ver el workshop

¿Quieres los 51 esenciales de Claude Code en una guía?