Pérdida de datos de la sesión de Claude Code: Script de respaldo para Windows y Mac

Múltiples usuarios en r/ClaudeAI reportan que Claude Code pierde silenciosamente datos de sesión: el título de la sesión permanece en la barra lateral, pero al hacer clic aparece una transcripción vacía. Sin advertencia, error ni recuperación. Esto parece ocurrir durante la compresión de contexto, salidas inesperadas o problemas en la capa de almacenamiento.
La solución de respaldo
Un script creado por la comunidad respalda todos los datos de Claude Code (sessions, projects, plans, drafts, memory) desde ~/.claude a una carpeta separada, se ejecuta a diario mediante el Programador de tareas (Windows) o launchd (Mac) y conserva 7 días de copias rotativas.
Windows (PowerShell + Programador de tareas)
Cree la carpeta de respaldo:
mkdir C:\Users\%USERNAME%\ClaudeBackupsGuarde lo siguiente como backup-claude-sessions.ps1 en esa carpeta:
$ErrorActionPreference = "Stop"
$source = "$env:USERPROFILE\.claude"
$backupRoot = "$env:USERPROFILE\ClaudeBackups"
$logFile = Join-Path $backupRoot "backup.log"
$keepDays = 7
$timestamp = Get-Date -Format "yyyy-MM-dd_HHmmss"
$backupDir = Join-Path $backupRoot $timestamp
$dirs = @("sessions", "projects", "plans", "drafts", "memory")
function Write-Log($msg) {
$line = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - $msg"
Add-Content -Path $logFile -Value $line -Encoding utf8
}
try {
Write-Log "=== Backup iniciado ==="
New-Item -ItemType Directory -Path $backupDir -Force | Out-Null
foreach ($d in $dirs) {
$src = Join-Path $source $d
if (Test-Path $src) {
$dst = Join-Path $backupDir $d
Copy-Item -Path $src -Destination $dst -Recurse -Force
$count = (Get-ChildItem $dst -Recurse -File -ErrorAction SilentlyContinue | Measure-Object).Count
Write-Log " Copiado $d ($count archivos)"
} else {
Write-Log " Omitido $d (no encontrado)"
}
}
$size = (Get-ChildItem $backupDir -Recurse -File | Measure-Object -Property Length -Sum).Sum
Write-Log " Tamaño total del respaldo: $([math]::Round($size/1MB, 2)) MB"
$cutoff = (Get-Date).AddDays(-$keepDays)
Get-ChildItem $backupRoot -Directory | Where-Object { $.Name -match '^\d{4}-\d{2}-\d{2}\d{6}$' -and $.CreationTime -lt $cutoff } | ForEach-Object {
Remove-Item $.FullName -Recurse -Force -Confirm:$false
Write-Log " Respaldo antiguo rotado: $($.Name)"
}
Write-Log "=== Respaldo completado exitosamente ==="
} catch {
Write-Log "!!! RESPALDO FALLIDO: $"
exit 1
}
Cree install-schedule.ps1 y ejecútelo como Administrador una vez:
$action = New-ScheduledTaskAction -Execute "powershell.exe"
-Argument "-ExecutionPolicy Bypass -WindowStyle Hidden -File "$env:USERPROFILE\ClaudeBackups\backup-claude-sessions.ps1""
$trigger = New-ScheduledTaskTrigger -Daily -At 8:00AM
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries
-DontStopIfGoingOnBatteries -StartWhenAvailable Register-ScheduledTask
-TaskName "ClaudeSessionsBackup" -Action $action
-Trigger $trigger -Settings $settings
-Description "Respaldo diario de sesiones de Claude Code" `
-RunLevel Limited
Write-Host "¡Listo! Se ejecuta diariamente a las 8:00 AM." -ForegroundColor GreenEjecute el instalador:
powershell -ExecutionPolicy Bypass -File "C:\Users%USERNAME%\ClaudeBackups\install-schedule.ps1"Mac (launchd + script de shell)
Cree la carpeta de respaldo:
mkdir -p /ClaudeBackupsGuarde como /ClaudeBackups/backup-claude-sessions.sh:
#!/bin/bash
set -euo pipefail
SOURCE="$HOME/.claude"
BACKUP_ROOT="$HOME/ClaudeBackups"
LOG_FILE="$BACKUP_ROOT/backup.log"
KEEP_DAYS=7
TIMESTAMP=$(date +"%Y-%m-%d_%H%M%S")
BACKUP_DIR="$BACKUP_ROOT/$TIMESTAMP"
DIRS=("sessions" "projects" "plans" "drafts" "memory")
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE"; }
log "=== Backup iniciado ==="
mkdir -p "$BACKUP_DIR"
for d in "${DIRS[@]}"; do
src="$SOURCE/$d"
if [ -d "$src" ]; then
cp -R "$src" "$BACKUP_DIR/$d"
count=$(find "$BACKUP_DIR/$d" -type f | wc -l | tr -d ' ')
log " Copiado $d ($count archivos)"
else
log " Omitido $d (no encontrado)"
fi
done
size=$(du -sb "$BACKUP_DIR" | cut -f1)
log " Tamaño total del respaldo: $(echo "scale=2; $size/1048576" | bc) MB"
find "$BACKUP_ROOT" -maxdepth 1 -type d -name "????-??-??_??????" -mtime +$KEEP_DAYS -exec rm -rf {} + -exec log " Respaldo antiguo rotado: {}" ;
log "=== Respaldo completado exitosamente ==="Hágalo ejecutable y programe mediante launchd (consulte la publicación original para la configuración del plist).
El script funciona de forma completamente independiente de Claude Code, por lo que incluso si Claude falla o pierde datos, los respaldos se conservan. Registra cada ejecución en backup.log para verificación.
📖 Lea la fuente completa: r/ClaudeAI
👀 Ver también

Anthropic lanza Claude para pequeñas empresas con flujos de trabajo predefinidos para QuickBooks, HubSpot, Canva
Claude para Pequeñas Empresas es un paquete de instalación opcional dentro de Claude Cowork que se conecta a QuickBooks, PayPal, HubSpot, Canva, Docusign, Google Workspace y Microsoft 365, con 15 flujos de trabajo listos para usar para nóminas, cierre de mes, facturación, gestión de campañas y más.

Bibliotecario MCP: Servidor de IA Local para Contexto Persistente con Documentos
Librarian MCP es un servidor de Protocolo de Contexto de Modelo de código abierto que se ejecuta localmente y se conecta a Jan, LM Studio o Claude Desktop, permitiendo que los modelos de IA busquen y analicen colecciones de documentos mientras mantienen el contexto completo de la conversación y la privacidad de los datos.

Desarrollador crea barra de estado en terminal para monitorear límites de sesión de Claude Code tras corte inesperado.
Un desarrollador creó una línea de estado en terminal de Python que muestra el uso de sesión de Claude Code en vivo después de ser interrumpido a mitad de una refactorización sin previo aviso. La herramienta utiliza sesiones existentes sin requerir una clave API.

Colony: Una Capa de Coordinación Local-Primero que Reduce los Tokens de Transferencia Multi-Agente de 30K a 400
Colony es un sustrato de coordinación local-first que reduce los costos de transferencia entre agentes de ~30,000 tokens a ~400 al reemplazar la reproducción de contexto con observaciones compactas almacenadas en SQLite.