Scripts para sincronizar configuraciones y extensiones de WindSurf entre múltiples computadoras. Soporta Windows (PowerShell) y Linux (Bash).
- ✅ Exporta/importa todas las extensiones instaladas
- ✅ Sincroniza settings.json (configuraciones del editor)
- ✅ Sincroniza keybindings.json (atajos de teclado personalizados)
- ✅ Sincroniza snippets personalizados
- ✅ Crea backups automáticos antes de importar
- ✅ Modo dry-run para previsualizar cambios
- ✅ Soporte multiplataforma (Windows + Linux)
- Windows: PowerShell 5.1 o superior
- Linux: Bash 4.0 o superior
- WindSurf instalado y en el PATH del sistema
- Git (para sincronización con repo privado)
La configuración personal (settings, extensiones, etc.) se almacena en un repositorio privado separado e independiente. La carpeta windsurf-config/ está en .gitignore, así que el repo público no contiene ninguna referencia a tus datos personales.
-
Crea un repo privado vacío en GitHub (ej:
windsurf-config-private) -
Exporta tu configuración:
# Windows .\export-windsurf-config.ps1
# Linux ./export-windsurf-config.sh -
Vincula y sube al repo privado:
# Windows .\scripts\setup-private-config.ps1 -RepoUrl "git@github.com:tu-usuario/windsurf-config-private.git" -Push
# Linux ./scripts/setup-private-config.sh "git@github.com:tu-usuario/windsurf-config-private.git" --push
git clone https://github.com/tu-usuario/Mirror-script.git
cd Mirror-scriptUn solo comando para configurar todo:
# Windows
.\setup-windsurf.ps1 -RepoUrl "https://github.com/tu-usuario/windsurf-config-private.git"# Linux
./setup-windsurf.sh "https://github.com/tu-usuario/windsurf-config-private.git"Esto clona el repo privado e importa la config automáticamente.
Windows (PowerShell):
.\export-windsurf-config.ps1Linux (Bash):
./export-windsurf-config.shEsto crea la carpeta windsurf-config con toda tu configuración.
Windows (PowerShell):
# Ver qué cambiaría sin aplicar (recomendado primero)
.\import-windsurf-config.ps1 -DryRun
# Aplicar cambios
.\import-windsurf-config.ps1Linux (Bash):
# Ver qué cambiaría sin aplicar (recomendado primero)
./import-windsurf-config.sh --dry-run
# Aplicar cambios
./import-windsurf-config.shIMPORTANTE: Reinicia WindSurf después de importar para aplicar todos los cambios.
| PowerShell | Bash | Descripción | Por Defecto |
|---|---|---|---|
-OutputPath <ruta> |
<ruta> (argumento posicional) |
Carpeta de salida | .\windsurf-config |
# Windows
.\export-windsurf-config.ps1 -OutputPath "D:\Backups\WindSurf"# Linux
./export-windsurf-config.sh ~/backups/windsurf| PowerShell | Bash | Descripción | Por Defecto |
|---|---|---|---|
-ConfigPath <ruta> |
<ruta> (argumento posicional) |
Carpeta con la configuración a importar | .\windsurf-config |
-DryRun |
--dry-run |
Mostrar cambios sin aplicarlos | false |
-Force |
--force |
Desinstalar extensiones que no están en la config | false |
-NoBackup |
--no-backup |
No crear backup antes de importar | false |
# Windows - ejemplos
.\import-windsurf-config.ps1 -ConfigPath "D:\Backups\windsurf-config"
.\import-windsurf-config.ps1 -DryRun
.\import-windsurf-config.ps1 -Force
.\import-windsurf-config.ps1 -NoBackup# Linux - ejemplos
./import-windsurf-config.sh ~/backups/windsurf-config
./import-windsurf-config.sh --dry-run
./import-windsurf-config.sh --force
./import-windsurf-config.sh --no-backupMirror-script/
├── export-windsurf-config.ps1 # Exportar (Windows)
├── export-windsurf-config.sh # Exportar (Linux)
├── import-windsurf-config.ps1 # Importar (Windows)
├── import-windsurf-config.sh # Importar (Linux)
├── setup-windsurf.ps1 # Setup completo en un paso (Windows)
├── setup-windsurf.sh # Setup completo en un paso (Linux)
├── scripts/
│ ├── setup-private-config.ps1 # Helper: vincula repo privado (Windows)
│ └── setup-private-config.sh # Helper: vincula repo privado (Linux)
├── .gitignore
├── README.md
└── windsurf-config/ # Repo privado (gitignored)
├── extensions.txt # Lista de extensiones instaladas
├── settings.json # Configuración del editor
├── keybindings.json # Atajos de teclado (si existen)
├── snippets/ # Snippets personalizados (si existen)
└── export-info.json # Metadata de la exportación
El script de importación crea automáticamente un backup antes de hacer cambios:
windsurf-config-backup-20260121-143022/
├── extensions.txt
├── settings.json
├── keybindings.json
└── snippets/
Para restaurar un backup:
# Windows
.\import-windsurf-config.ps1 -ConfigPath ".\windsurf-config-backup-20260121-143022"# Linux
./import-windsurf-config.sh ./windsurf-config-backup-20260121-143022-
En Computadora A (después de configurar WindSurf):
# Windows .\export-windsurf-config.ps1 cd windsurf-config git add . && git commit -m "Actualizar config" && git push cd ..
# Linux ./export-windsurf-config.sh cd windsurf-config git add . && git commit -m "Actualizar config" && git push cd ..
-
En Computadora B (para sincronizar):
# Windows cd windsurf-config git pull cd .. .\import-windsurf-config.ps1 # Reiniciar WindSurf
# Linux cd windsurf-config git pull cd .. ./import-windsurf-config.sh # Reiniciar WindSurf
Verifica que WindSurf está en el PATH:
windsurf --versionSi no funciona, agrega WindSurf al PATH o reinicia la terminal.
Algunas extensiones requieren reiniciar WindSurf. Cierra y vuelve a abrir después de importar.
Usa dry-run primero para ver qué cambios se aplicarán:
# Windows
.\import-windsurf-config.ps1 -DryRun# Linux
./import-windsurf-config.sh --dry-run- ✅ Extensiones instaladas
- ✅ Configuraciones del editor (settings.json)
- ✅ Atajos de teclado personalizados (keybindings.json)
- ✅ Snippets personalizados
- ❌ Historial de archivos recientes
- ❌ Workspaces abiertos
- ❌ Cache del editor
- ❌ Configuraciones específicas de workspace
| Plataforma | Ruta |
|---|---|
| Windows | %APPDATA%\Windsurf\User |
| Linux | ~/.config/Windsurf/User |