Communitygithub.com

AutoDL Sync

Scripts para sincronizar proyectos entre el equipo local y una instancia de AutoDL.

¿Qué es AutoDL Sync?

AutoDL Sync es un conjunto de scripts que automatizan la sincronización de proyectos de Machine Learning entre un equipo local y una instancia remota de AutoDL. Detecta automáticamente la raíz del proyecto mediante Git o un archivo `.autodl-sync` y permite cargar código, descargar resultados de entrenamiento y gestionar la configuración de sincronización de forma segura. Compatible con plataformas que ejecuten scripts bash (Linux, macOS, WSL), ofrece modos de exclusión basados en Git o archivos de configuración, autenticación por clave SSH dedicada y protección contra operaciones inseguras. Su principal ventaja es simplificar el flujo de trabajo de desarrollo remoto sin exponer credenciales ni requerir interacción manual con `scp` o `rsync`.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add 1zqqx/skill-autodl-auto-sync

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Sincronización AutoDL

Usa los scripts incluidos en esta habilidad para la sincronización de proyectos.

No construyas comandos scp o rsync manualmente cuando estos scripts puedan realizar la operación solicitada.

Descubrimiento de proyectos

Los scripts de sincronización determinan dinámicamente la raíz del proyecto.

Prefieren la raíz del repositorio Git. Si el directorio actual no está dentro de un repositorio Git, buscan hacia arriba por .autodl-sync.

No codifiques rutas locales de proyectos.

Configuración del proyecto

La configuración específica de sincronización del proyecto se almacena en:

<raíz-del-proyecto>/.autodl-sync

La configuración puede definir:

  • host SSH remoto
  • directorio base remoto
  • nombre del proyecto remoto
  • directorio remoto explícito
  • exclusiones de carga conscientes de Git o explícitas
  • exclusiones de carga adicionales
  • descargas de resultados seleccionados o del proyecto completo
  • exclusiones de extracción, tamaño máximo de archivo, comportamiento de eliminación y sobrescritura
  • comportamiento de rsync

Lee la configuración de sincronización a través de los scripts proporcionados en lugar de duplicar la lógica de configuración.

Carga de código

Cuando el usuario pida:

  • sincronizar código
  • cargar código
  • desplegar el código fuente actual
  • actualizar la copia en AutoDL

ejecuta:

scripts/push-code.sh <raíz-del-proyecto>

Si la raíz del proyecto ya es el directorio de trabajo actual, el argumento puede omitirse.

El filtro de carga siempre aplica exclusiones de seguridad obligatorias. En modo auto utiliza la lista de archivos rastreados y no ignorados por Git cuando la raíz del repositorio tiene un .gitignore; de lo contrario, utiliza las exclusiones configuradas. Las entradas EXCLUDES_APPEND del proyecto aplican en todos los modos.

SYNC_DELETE=true solo se admite cuando el modo de carga resuelto es excludes; el modo de lista de archivos de Git no puede identificar de forma segura cada archivo desactualizado remoto y debe fallar en lugar de implicar un espejo de eliminación completo.

Descarga de resultados

Cuando el usuario pida:

  • extraer resultados de entrenamiento
  • descargar puntos de control
  • recuperar registros
  • recuperar predicciones
  • sincronizar salidas de experimentos

ejecuta:

scripts/pull-results.sh <raíz-del-proyecto>

Las entradas PULL_DIRS son relativas a REMOTE_DIR. Un arreglo vacío no extrae nada. PULL_ALL=true extrae explícitamente todo el proyecto remoto y no debe combinarse con PULL_DIRS no vacío. Las exclusiones de extracción, el tamaño máximo de archivo, la eliminación local y la protección contra sobrescritura son independientes del filtrado de carga.

Flujo de trabajo de codificación

Cuando las instrucciones del proyecto requieran explícitamente sincronización después de cambios en el código:

  1. Completa las modificaciones solicitadas al código fuente.
  2. Ejecuta las pruebas o validaciones locales apropiadas.
  3. Si la validación es exitosa, ejecuta push-code.sh.
  4. Informa si la sincronización fue exitosa.

No inicies entrenamiento remoto automáticamente a menos que el usuario lo solicite explícitamente.

Autenticación SSH

La autenticación de AutoDL utiliza la clave SSH local dedicada configurada por el .autodl-sync del proyecto.

La clave privada debe permanecer en la máquina local.

Si la autenticación con clave pública aún no se ha configurado para una nueva instancia de AutoDL, ejecuta:

scripts/setup-key.sh <raíz-del-proyecto>

Esta operación puede solicitar interactivamente la contraseña de la cuenta de AutoDL una vez para instalar la clave pública.

Después de que la configuración se complete correctamente, las operaciones de carga y extracción deben usar autenticación con clave pública.

Nunca imprimas, leas, cargues, copies ni expongas la clave privada SSH.

Seguridad

Nunca inspecciones, imprimas, copies ni modifiques claves privadas SSH.

La configuración de conexión SSH se lee del .autodl-sync del proyecto y se pasa explícitamente a ssh y rsync. Los scripts no requieren una entrada en ~/.ssh/config.

No cargues credenciales ni secretos.

Respeta las exclusiones y el comportamiento de sincronización definido por el .autodl-sync del proyecto.

No habilites la eliminación de carga o extracción a menos que la configuración del proyecto lo solicite explícitamente. Después de cada sincronización, informa al usuario el resumen de las operaciones de archivos del script.

Skills relacionados