Communitygithub.com

AutoDL Sync

Skripte zur Projekt-Synchronisation mit AutoDL. Vermeidet manuelle scp/rsync-Befehle.

Was ist AutoDL Sync?

Dieses Skill bietet eine Reihe von Skripten zur Synchronisation von Projektcode und -ergebnissen mit einer AutoDL-Instanz. Es erkennt automatisch das Projektverzeichnis (Git-Repository oder `.autodl-sync`-Datei) und ermöglicht eine konfigurierbare Upload- und Download-Synchronisation mit SSH-Schlüssel-Authentifizierung. Das Skill ist speziell für Entwickler konzipiert, die ihre lokalen Änderungen sicher und effizient auf eine AutoDL-Umgebung übertragen möchten. Es unterstützt sowohl das Pushen von Code als auch das Ziehen von Trainingsergebnissen, Checkpoints und Logs, mit flexiblen Ausschlussregeln und integrierter Sicherheitsüberprüfung, um unbefugten Zugriff oder Datenverlust zu verhindern.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht AutoDL Sync?

Nutzen Sie die in diesem Skill enthaltenen Skripte zur Projektsynchronisation.

Konstruieren Sie keine manuellen scp- oder rsync-Befehle, wenn diese Skripte die angeforderte Operation ausführen können.

Projektfindung

Die Synchronisationsskripte ermitteln das Projektverzeichnis dynamisch.

Sie bevorzugen das Git-Repository-Stammverzeichnis. Falls das aktuelle Verzeichnis nicht in einem Git-Repository liegt, suchen sie aufwärts nach .autodl-sync.

Hardcodieren Sie keine lokalen Projektpfade.

Projektkonfiguration

Projektspezifische Synchronisationseinstellungen werden gespeichert in:

<projekt-stamm>/.autodl-sync

Die Konfiguration kann definieren:

  • Remote-SSH-Host
  • Remote-Basisverzeichnis
  • Remote-Projektname
  • explizites Remote-Verzeichnis
  • Git-bewusste oder explizite Upload-Ausschlüsse
  • zusätzliche Upload-Ausschlüsse
  • ausgewählte oder vollständige Projektergebnis-Downloads
  • Pull-Ausschlüsse, maximale Dateigröße, Lösch- und Überschreibverhalten
  • rsync-Verhalten

Lesen Sie die Synchronisationseinstellungen über die bereitgestellten Skripte, anstatt die Konfigurationslogik zu duplizieren.

Code hochladen

Wenn der Benutzer bittet um:

  • Code synchronisieren
  • Code hochladen
  • aktuellen Quellcode bereitstellen
  • die AutoDL-Kopie aktualisieren

führen Sie aus:

scripts/push-code.sh <projekt-stamm>

Wenn der Projektstamm bereits das aktuelle Arbeitsverzeichnis ist, kann das Argument weggelassen werden.

Der Upload-Filter wendet immer obligatorische Sicherheitsausschlüsse an. Im Modus auto verwendet er die von Git verfolgte und nicht ignorierte Dateiliste, wenn das Repository-Stammverzeichnis eine .gitignore-Datei enthält; andernfalls verwendet er konfigurierte Ausschlüsse. Projekt-EXCLUDES_APPEND-Einträge werden in jedem Modus angewendet.

SYNC_DELETE=true wird nur unterstützt, wenn der aufgelöste Upload-Modus excludes ist; der Git-Dateilisten-Modus kann nicht sicher alle veralteten Remote-Dateien identifizieren und muss fehlschlagen, anstatt eine vollständige Löschspiegelung zu implizieren.

Ergebnisse herunterladen

Wenn der Benutzer bittet um:

  • Trainingsergebnisse ziehen
  • Checkpoints herunterladen
  • Logs abrufen
  • Vorhersagen abrufen
  • Experimentausgaben synchronisieren

führen Sie aus:

scripts/pull-results.sh <projekt-stamm>

PULL_DIRS-Einträge sind relativ zu REMOTE_DIR. Ein leeres Array zieht nichts. PULL_ALL=true zieht explizit das gesamte Remote-Projekt und darf nicht mit nicht-leeren PULL_DIRS kombiniert werden. Pull-Ausschlüsse, maximale Dateigröße, lokale Löschung und Überschreibschutz sind unabhängig von der Upload-Filterung.

Codierungsworkflow

Wenn Projektanweisungen explizit eine Synchronisation nach Codeänderungen erfordern:

  1. Führen Sie die angeforderten Quellcode-Änderungen durch.
  2. Führen Sie geeignete lokale Validierungen oder Tests aus.
  3. Wenn die Validierung erfolgreich ist, führen Sie push-code.sh aus.
  4. Melden Sie, ob die Synchronisation erfolgreich war.

Starten Sie nicht automatisch ein Remote-Training, es sei denn, der Benutzer fordert explizit eine Remote-Ausführung an.

SSH-Authentifizierung

Die AutoDL-Authentifizierung verwendet den dedizierten lokalen SSH-Schlüssel, der durch die .autodl-sync-Konfiguration des Projekts festgelegt wird.

Der private Schlüssel muss auf dem lokalen Rechner verbleiben.

Wenn die Public-Key-Authentifizierung für eine neue AutoDL-Instanz noch nicht konfiguriert wurde, führen Sie aus:

scripts/setup-key.sh <projekt-stamm>

Dieser Vorgang kann interaktiv das AutoDL-Konto-Passwort einmal anfordern, um den öffentlichen Schlüssel zu installieren.

Nach erfolgreicher Einrichtung müssen Push- und Pull-Operationen die Public-Key-Authentifizierung verwenden.

Geben Sie niemals den SSH-Private-Key aus, lesen Sie ihn nicht hoch, kopieren Sie ihn nicht und setzen Sie ihn nicht offen.

Sicherheit

Überprüfen, ausgeben, kopieren oder ändern Sie niemals SSH-Private-Keys.

SSH-Verbindungseinstellungen werden aus der .autodl-sync-Konfiguration des Projekts gelesen und explizit an ssh und rsync übergeben. Die Skripte benötigen keinen Eintrag in ~/.ssh/config.

Laden Sie keine Anmeldeinformationen oder Geheimnisse hoch.

Respektieren Sie die durch die .autodl-sync-Konfiguration des Projekts definierten Ausschlüsse und das Synchronisationsverhalten.

Aktivieren Sie keine Upload- oder Pull-Löschung, es sei denn, die Projektkonfiguration fordert dies explizit an. Melden Sie nach jeder Synchronisation die Dateioperationen-Zusammenfassung des Skripts an den Benutzer.

Verwandte Skills