1. Schmerz-Zerlegung: Repo kopieren ≠ Laufzeit kopieren
(1) Zustandsverzeichnis vs. Workspace: Teams lagern Skills, Prompts und eingechecktes openclaw.json im Repository, während Sitzungen, Kanalbindungen und Gateway-Caches unter dem Benutzerprofil liegen. Wer nur Git migriert, erhält zwar CLI-Befehle, aber Geister-Sitzungen oder leeren Kanalzustand auf dem Ziel. (2) Secrets und OAuth-Refresh-Token verteilen sich: Slack, Discord und Enterprise-IM können Token sowohl im Klartext als auch in verschlüsselten Laufzeit-Speichern halten. Sichert man nur eine Schicht, folgt Re-Autorisierung; stoppt man das alte Gateway nicht, konkurrieren zwei Endpunkte um dieselbe Bot-Sitzung. (3) launchd vs. interaktive Shell: launchd erbt keine Exporte aus .zshrc; API-Schlüssel nur im Terminalprofil, die Plist bleibt leer — klassisches „Vordergrund manuell ok, geplanter Daemon ohne Variablen“. (4) Remote-Mac-Grenzen: Der Account für Screen Sharing oder SSH muss mit dem Gateway-Account übereinstimmen; root mit Login-User zu mischen spaltet Besitz und Keychain-Zugriff.
Operationalisieren Sie diese vier Achsen in einer einseitigen internen Tabelle: OpenClaw-Version neben Archiv-Checksum, Ticket-ID und Stopp-Reihenfolge. Wenn Unterverzeichnisse von ~/.openclaw zwischen Releases umbenannt werden, notieren Sie den Upstream-Pfad zum Zeitpunkt des Snapshots. Bei Umzug vom Laptop in ein Colocation-Rechenzentrum prüfen Sie DHCP, VPN-Split-Tunnel und DNS-Suchdomains erneut — APIs, die gestern noch „stabil“ wirkten, ändern Auflösung und Webhooks fallen ins Leere.
Halten Sie Installationsnachweise bereit: Paketmanager-Version, Node-Laufzeit, aktive Compose-Datei auf dem Quell-Host — sonst ist der Ziel-Host „neuer“ als Ihr State-Snapshot und CLI driftet subtil. Verknüpfen Sie im Ticket direkt Installationsmatrix und Onboarding, damit Reviewer dieselben Leitfäden sehen.
2. Matrix: Was gehört in das kalte Migrationsbündel (2026)
| Objekt | Typischer Pfad / Bedeutung | Ins Bündel? |
|---|---|---|
| Benutzer-State-Baum | ~/.openclaw (Unterpfade können je Release variieren — Upstream-Doku) | Ja: Kanalbindungen, Caches, lokales Secret-Material |
| Workspace / Projekt | Skills, Skripte, versioniertes openclaw.json | Ja: muss den gleichen Snapshot-Zeitstempel wie der State haben, sonst Schema-Drift |
| launchd-Job | ~/Library/LaunchAgents/-Plist für das Gateway | Ja: Laufzeitbenutzer, Arbeitsverzeichnis, Namen der Umgebungsvariablen |
| Docker-Volumes | Benannte Volumes oder Bind-Mounts in Compose | Bedingt: nur wenn es zu Ihrem Docker-Produktions-Layout passt |
| macOS-Keychain-Einträge | Manche Kanäle legen Refresh-Tokens in der Keychain ab | Vorsicht: Vendor-Re-Auth bevorzugen, nicht beliebige Dumps, die Compliance brechen |
3. Fünf Schritte: Einfrieren → Packen → Prüfen → Kaltstart → Neu koppeln
Schritt 1 — Schreiber einfrieren: Stoppen Sie Gateway und zugehörige launchd-Jobs (oder den Compose-Stack) auf dem alten Rechner, damit keine Hintergrund-Sitzung SQLite-Dateien oder Locks mutiert. Packen bei laufenden Schreibern erzeugt nach Restore zufällige Korruption. Dokumentieren Sie die exakte Stopp-Reihenfolge; manche Teams pausieren auch Cron-Hooks oder CI-Webhooks, die Agent-Läufe auslösen, weil diese Sekunden später wieder State öffnen. Bei mehreren Compose-Projekten stoppen Sie entlang der Abhängigkeiten und speichern docker ps als Beweis eines sauberen Bodens.
Schritt 2 — Snapshots paaren: Erfassen Sie ~/.openclaw und den Workspace im selben Moment, inklusive Lockfiles; bei Docker exportieren Sie Volume oder Image-Digest parallel, damit alle drei Zeitstempel passen. Bei case-sensitiven Volumes oder Symlink-Farmen lösen Sie echte Pfade vor dem Archivieren, sonst entstehen auf dem Ziel zwei Bäume, die sich nur in der Großschreibung unterscheiden. Entscheiden Sie explizit, ob pnpm- oder npm-Caches Teil des Bündels sind oder neu gebaut werden — beides ist legitim, aber gemischter „alter State + frisch installierte Deps“ ohne Dokumentation erzeugt Heisenbugs in Kanal-Smoke-Tests.
Schritt 3 — Prüfen und bereinigen: Prüfen Sie die Checksumme des Archivs vor dem Entpacken; durchsuchen Sie Konfigurationen nach alten Hostnamen, absoluten Pfaden und nur im LAN erreichbaren URLs, die vom neuen oder Remote-Mac aus erreichbar sein müssen. Ersetzen Sie Verweise auf USB-Serien, lokale Modellgewichte oder Samba-Mounts durch neue Äquivalente und führen Sie ein schnelles Grep nach IP-Literalen aus — häuslicher DHCP-Wechsel ist ein häufiger Grund, warum Webhooks still ins Nichts zeigen.
Schritt 4 — Gateway-Kaltstart: Booten Sie mit minimaler Oberfläche (Loopback-Admin-Port zuerst), führen Sie openclaw doctor oder die Projekt-Leiter aus und bestätigen Sie Log-Verzeichnisse, Rechte und Listener gemäß Plist-Vertrag. Lassen Sie den ersten Kanal deaktiviert, bis doctor grün ist; vorzeitige OAuth-Redirects bei halbem Env-Block erzeugen verwirrenden Teilstaat in Vendor-Konsolen. Erfassen Sie CPU- und Speicher-Baseline nach dem Kaltstart zum Vergleich mit dem alten Host und prüfen Sie, ob Debug-Flags vergessen wurden.
Schritt 5 — Kanal neu koppeln: Folgen Sie OAuth oder Webhook-Registrierung je Vendor — die meisten Plattformen verbieten zwei aktive Bots mit denselben Credentials; fahren Sie die alte Instanz vollständig herunter, bevor die neue live geht, um doppelte Zustellungen und Signaturkonflikte zu vermeiden. Rotieren Sie App-Secrets bei Migration wenn möglich: klare Audit-Spur, keine vergessenen Staging-Tokens gegen Produktions-URLs. Nach dem Neu-Pairing führen Sie skriptierte Send/Empfangs-Probes pro Kanal aus statt Ad-hoc-Klicks, damit On-Call dieselben Schritte nach dem nächsten Upgrade wiederholen kann.
Optional: erfassen Sie in derselben Checkliste die externe DNS-TTL und Tunnel-Provider-Wechsel, damit nach einem IP- oder Hostnamenwechsel niemand „zufällig“ noch den alten Endpunkt cached.
ZAHLEN / SCHWELLEN (ZITIERBAR)
① Snapshot-Trio: ~/.openclaw + Workspace + Plist (oder Compose-Datei + Volume-Manifest). Fehlt eins, ist die Migration unvollständig.
② Umgebung: launchd-EnvironmentVariables müssen explizit dem entsprechen, worauf Sie in Shells vertrauen — mindestens API-Keys, Proxy, zeitzonenrelevante Variablen.
③ Kanal-Cutover: lassen Sie ein Kühlfenster zwischen altem und neuem Bot; wenn Vendor „still“ bleiben, rechnen Sie mit minutenlanger Grau-Release.
④ Remote-Mac: SSH-Benutzer = Gateway-Benutzer; keine UID-Mischung zwischen interaktivem Screen Sharing und unbeaufsichtigtem launchd.
⑤ Rollback: read-only-Archiv des alten Hosts mindestens einen Release-Zyklus vor löschbaren Kopien aufbewahren.
4. Parameter: Warum „Prozess läuft“ trotzdem stille Kanäle bedeutet
Der irreführendeste Modus nach Migration: gesunde Prozesse und bestehende Healthchecks, aber eingehende Nachrichten kommen nie an. Bind-Adressen: Wechsel von 127.0.0.1 auf eine LAN-IP ohne Reverse-Proxy/Firewall-Update — das Gateway spricht mit sich, die öffentliche URL zeigt noch auf die alte IP. Webhook-URLs: Konsolen müssen Tunnel-Hostnamen oder statisches Egress referenzieren; vergessene Slack- oder Feishu-Callbacks sind klassische stille Drops. Uhrzeit und TLS: große NTP-Abweichung auf einem colokierten Mac bricht signierte Requests; TLS-Inspection mit ersetzten Zertifikaten scheitert oft leise. tools.profile: Whitelists mit absoluten Binärpfaden vom alten Host brechen auf neuem PATH — gehen Sie das sessions_spawn-Runbook durch und erweitern Sie Allowlists bewusst.
Wenn weiterhin unklar, sammeln Sie vier Artefakte vor dem Vendor-Ticket: redigierte Plist, exakte öffentliche URL, tcpdump/Proxy-Trace zum TLS-Handshake und Log-Slice mit einer vollständigen Inbound-Event-ID. Damit trennen Sie „HTTP kam nie an“ von „kam an, Signatur verworfen“ — Token neu ausstellen oder Netz reparieren. Pflegen Sie ein kurzes Glossar von Dashboard-Feldnamen zu Config-Keys; Onboarding-Dokumente lieben Synonyme, Migration verstärkt die Verwirrung.
Reife zeigt sich in Übungen: vierteljährlich letztes Quartals-Tarball auf einen Scratch-Mac auspacken, doctor laufen lassen, Webhook-Proben spielen. Teams mit gepaarten Snapshots und dokumentierter Stopp-Reihenfolge erholen sich in Stunden; „nur Repo kopiert“ diffiert tagelang unsichtbaren State. Betrachten Sie Kanal-Stille primär als Netzwerk- und Identitätsproblem, nicht als Modellproblem.
5. Entscheidungstabelle: Laptop vs. dedizierter Remote-Mac-Gateway
Die Tabelle fasst typische Kompromisse; in der Praxis entscheidet oft wer On-Call-Verantwortung trägt und ob Ihre Organisation Remote-Zugriff mit Zwei-Faktor- und Session-Recording abdeckt. Ein dedizierter Mac lohnt sich, sobald Webhooks geschäftskritisch werden und Ausfallminuten dokumentiert werden müssen.
| Achse | Lokaler Laptop | Remote-Mac |
|---|---|---|
| Verfügbarkeit | Deckel, Schlaf, Reise | klarere 24/7-Grenze für Kanal-Last |
| Berechtigungen | einfaches GUI-Debugging | Headless-Disziplin — keine blockierenden Prompts |
| Netzwerk | wechselnde Residential-IP | stabiles Egress oder Tunnel-Domain hilft Webhooks |
| Kosten | versteckte Abschreibung | transparente Miete passt zu SLA-orientierten Teams |
6. FAQ: Fünf Fragen zu jeder Migration
F: Nur den Workspace synchronisieren? Für reine CLI-Experimente ok, stark abzuraten, sobald Kanäle oder Sitzungskontinuität zählen — Sie verbrennen mehr Stunden als das Tarball-Format spart. F: Docker zu Bare Metal? Als Stack-Wechsel plus Migration behandeln; eine Ziel-Form dokumentieren oder die Risikofläche verdoppelt sich. F: Klartext-API-Keys in der Plist? Funktioniert, verletzt Hygiene; gesicherte Env-Dateien oder Secret-Backend bevorzugen. F: Brauche ich Screen Sharing auf Remote? Routine per SSH; VNC nur für erstes OAuth oder GUI-only-Tools, mit Ticket. F: Alten Laptop sofort wipen? Parallelbeobachtung mindestens einen Geschäftszyklus.
Zusätzlich: F: Wie teste ich Kanäle ohne Produktionslast? Nutzen Sie dedizierte Staging-Apps oder eingeschränkte Workspaces, spiegeln Sie aber Webhook-Pfade realistisch — ein reiner Unit-Test ersetzt keine TLS- und DNS-Wahrheit. F: Was tun bei gemischten Apple-IDs auf demselben Host? Trennen Sie klar, welcher Benutzer launchd besitzt; wechselnde GUI-Logins verwischen Ownership und erzeugen sporadische EACCES-Fehler in Logs, die wie Netzwerkprobleme aussehen. F: Soll ich Compose-Overrides mitwandern lassen? Ja, versionieren Sie sie neben dem Archiv und referenzieren Sie die Datei im Ticket; sonst reproduziert niemand den exakten Stack, der den Snapshot erzeugt hat.
F: OpenClaw im selben Fenster upgraden? Zuerst gleiche Version migrieren, Kanäle validieren, Upgrade als zweites Ticket mit eigenem Rollback — Migration plus Major-Upgrade macht jeden Vorfall zweidimensional. F: MDM-gesperrte Macs? Mit Gerätemanagement abstimmen, damit Plists, Helfer und Netzwerk-Erweiterungen signiert und erlaubt bleiben. F: Multi-Region? Dokumentieren, welche Rechtsumgebung Tokens und Logs besitzt; State über Regionen kopieren kann Datenresidenz erwarten, auch wenn technisch trivial.
7. Deep Dive: Migration bewegt State und Identität gemeinsam
OpenClaw-Agenten 2026 sind weniger „installiert es sich“ als welche Prozesse State lesen/schreiben und wie externe Identitäten internen Sitzungen zugeordnet werden. Nur Code ohne State zu verschieben gleicht einem Umzug ohne Tresor — Türen gehen auf, Arbeitsabläufe nicht. Repository-openclaw.json codiert Absicht und Tool-Politik; das Profilverzeichnis hält bereits verhandelte Drittanbieter-Credentials — beides muss in derselben logischen Transaktion wandern oder es entsteht doctor-grün, Kanal-stumm-Schizophrenie.
Die Spaltung zwischen launchd und interaktiven Shells bleibt die zweite Falle: Keys in .zshrc, leere Plist-EnvironmentVariables — der daemonisierte Gateway sieht nichts und loggt vage 401er. Das Gegenteil — Dutzende Variablen in der Plist ohne Ownership auf Log-Pfaden — lässt den Prozess starten, blockiert aber Rotation bis die Platte voll läuft. Halten Sie eine Kreuzcheck-Tabelle für jede sensible Variable über Plist, Shell-Profil und CI.
Neu-Koppeln ist keine Bürokratie: Es erzwingt Ein-Endpoint-Annahmen. Dual-active Bots duplizieren Zustellungen und verärgern Vendor-Abuse-Systeme. Seriöse Runbooks listen Altersinstanz-Stilllegung vor Neuinstanz-Promotion mit Grau-Fenster. Enterprise-WeChat, Feishu, Slack und Discord haben unterschiedliche Cooldowns und IP-Allowlists — eine Vorlage passt selten allen Mandanten.
Auf gemieteten Remote-Macs trennen Sie interaktive GUI-Sitzungen von unbeaufsichtigten Diensten: Erstere für OAuth-Popups, Letztere restartbar, auditierbar, im Einklang mit Apple-Silicon-Headless-Best-Practice. MACGPU-Knoten halten Gateway-Last auf vorhersagbarer Topologie, während Laptops wieder kreative Arbeit leisten statt thermisch gedrosselte Server mit Deckel zu spielen — dieselbe Lektion wie npm vs. Docker: Wahrheit zuerst definieren, dann Kanäle und SLAs verkabeln.
Operational Excellence zeigt sich in Failure-Rehearsals: vierteljährlich letztes Archiv auf Scratch-Mac, doctor, Webhook-Proben — nicht weil Katastrophen wöchentlich drohen, sondern weil Runbooks schneller verrotten als Anwendungscode. Bei Vorfällen gewinnen Teams mit gepaarten Snapshots Stunden; „nur Repo kopiert“ diffiert unsichtbaren State tagelang. Behandeln Sie Stille nach Migration zuerst als Netz- und Identitätsproblem: falsch konfiguriertes Egress tarnt sich oft als „KI denkt nach“, öfter als Vendor zugibt.
Ergänzend lohnt ein kurzer Abnahme-Backlog pro Kanal: erwartete Latenz, erlaubte Fehlerraten, Eskalationspfad wenn Webhooks länger als definierte Minuten ausbleiben. Dokumentieren Sie, welche internen Tickets automatisch erzeugt werden, sobald Healthchecks grün sind, aber keine echten Nutzlasten ankommen — das verhindert, dass On-Call nur CPU-Graphen starrt. Für Remote-Mac-Deployments sollten Sie außerdem einen Wartungsfenster-Kalender mit Apple-Software-Updates abstimmen: ein unangekündigter Neustart ohne vorgefasste Plist- und Volume-Reihenfolge kann genauso Kanal-Stille erzeugen wie ein falscher Token. Teams, die diese Artefakte pflegen, merken schnell, dass Migration kein Einmalprojekt ist, sondern ein wiederkehrendes Betriebsritual mit messbarer Qualität.
Alignieren Sie Observability früh: strukturierte Logs vom Mac weg (oder rotieren und Archive versenden), hänge OpenClaw-Version und Git-SHA des Skills-Repos an jede Alert und tagge Vorfälle mit „post-migration“, bis ein kalenderbasierter Burn-in vorbei ist. Diese Gewohnheiten kosten in ruhigen Wochen fast nichts, zahlen aber die erste Nacht nach einem Security-Patch-Reboot. Die Migrationsgeschichte ist also nicht nur Dateien — es geht darum, Vertrauen wiederherzustellen, weil externe Verträge (Tokens, URLs, Zertifikate) auf dem neuen Metal exakt einmal passen müssen.
Dokumentieren Sie zudem Kapazitätskorridore: gleichzeitige Kanäle, Spitzen durch große Anhänge und Unified-Memory-Budget neben anderen Diensten. Ein knapp dimensionierter Remote-Mac zeigt sporadische Timeouts, die wie Vendor-Fehler wirken. Verknüpfen Sie diese Kennzahlen mit den Leitfäden zu systemd/launchd und Docker-Produktion, damit Betrieb und Entwicklung bei der nächsten Hardwaregeneration dieselben Annahmen teilen.
8. Schluss: Schnelle Bewegungen brauchen trotzdem volle Schritte
(1) Grenzen: State-Layout kann sich zwischen Major-Versionen ändern — semver neben jedem Archiv notieren; Compliance kann Keychain-Klonen verbieten, also Re-Auth-Fenster einplanen. (2) Warum Remote-Mac gewinnt: fester User, fester Egress, feste Hardwareklasse reduziert Long-Tail-Inzidenten vom „Laptop als Server“. (3) MACGPU: Gateway-Hosting auf gemietetem Apple-Silicon-Knoten vor Topologie-Fixierung üben — Startseite, Pläne, Hilfe. Behandeln Sie jede Migration als Probe für die nächste: engere Runbooks summieren sich. Kurz: keine Abkürzung beim State-Bündel — das ist der billigste Versicherungsschein gegen nächtliche Rückfälle und unnötige Eskalationen im Support-Backlog der Nacht.