Orca auf Ubuntu-Server: Coding-Agenten parallel in Git-Worktrees betreiben
Orca verwaltet mehrere Coding-Agenten wie Claude Code in einer Oberfläche, jeden in seinem eigenen Git-Worktree. So betreiben Sie Orca mit orca-ide serve auf einem Ubuntu-Server, legen Projekt und Worktrees an, sichern die Daten und spielen Updates ein.
Geprüft am 22.10.2026 · für Orca 1.4.237

Zwei Coding-Agenten wie Claude Code im selben Ordner kommen sich bei jeder Datei in die Quere. Orca (stablyai/orca, MIT-Lizenz, rund 102.000 Sterne auf GitHub) gibt deshalb jeder Aufgabe einen eigenen Git-Worktree, also eine eigene Arbeitskopie mit eigenem Branch, und darin ein eigenes Terminal für den Agenten. Orca ist eigentlich eine Desktop-App, läuft mit orca-ide serve aber auch ohne Fenster auf einem Linux-Server, der weiterarbeitet, wenn der Laptop zugeklappt ist. Diese Anleitung richtet Orca 1.4.237 auf Ubuntu Server 24.04 ein, legt Projekt und Worktrees an, sichert die Daten und zeigt Update und Wiederherstellung. Die Kehrseite: Der Serverbetrieb ist als Beta gekennzeichnet, das Paket ist eine große Electron-App mit fast täglichen Releases, und jeder Agent muss auf dem Server selbst installiert und angemeldet sein.
Voraussetzungen
- Server: Ubuntu Server 24.04 LTS auf x86-64 (für ARM gibt es ein eigenes arm64-Paket). Das installierte Paket belegte im Test rund 560 MiB, der laufende Server direkt nach dem Start rund 480 MiB Arbeitsspeicher (beides gemessen mit Version 1.4.235). Planen Sie für die Agenten und Ihre Builds deutlich mehr ein.
- Benutzerkonto: ein normales Konto für den Betrieb, im Beispiel
orca. Root-Rechte brauchen Sie nur für Paketinstallation und Verwaltung, nicht für den Betrieb. Dazugitundjq. - Agenten: Claude Code, Codex oder ein anderer Agent, auf dem Server installiert und angemeldet. Eine Anmeldung auf dem Laptop gilt auf dem Server nicht.
- Netzweg: ein privater Weg zwischen Server und Client, etwa Tailscale, WireGuard oder das eigene LAN, alternativ ein Reverse Proxy mit TLS davor. Port 6768 gehört nie direkt ins Internet.
- Client: die Orca-Desktop-App (macOS, Windows, Linux) oder ein aktueller Browser.
| Eckdaten | Wert |
|---|---|
| Getestete Version | 1.4.237 (Update von 1.4.235) |
| Lizenz | MIT |
| Paket | orca-ide_1.4.237_amd64.deb (178 MB) |
| Kommando | orca-ide |
| Port | 6768/tcp (WebSocket und Browser-Client) |
| Datenordner | ~/.orca, ~/.config/orca, ~/orca |
| Worktrees | ~/orca/workspaces |
Schritt 1: Orca auf dem Server installieren
Ein offizielles Docker-Image gibt es nicht, für Server ist das .deb-Paket aus den GitHub-Releases vorgesehen. Unter Linux heißt das Kommando orca-ide, weil /usr/bin/orca auf GNOME-Systemen der Bildschirmleser belegt.
VERSION=1.4.237
curl -fLO https://github.com/stablyai/orca/releases/download/v${VERSION}/orca-ide_${VERSION}_amd64.deb
sudo apt install -y ./orca-ide_${VERSION}_amd64.deb
sudo apt install -y libasound2t64
dpkg-query -W orca-ide
orca-ide --version
Die zweite Paketzeile ist nötig: Das .deb führt die ALSA-Bibliothek nicht als Abhängigkeit. Auf dem schlanken Ubuntu-System im Test brach ohne sie jeder Aufruf mit Exit-Code 127 ab:
/opt/Orca/orca-ide: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory
Verifizieren: dpkg-query -W orca-ide nennt die Version 1.4.237, und orca-ide --version gibt 1.4.237 aus.
Schritt 2: orca-ide serve starten
Orca sendet laut Projektdokumentation anonyme Nutzungsdaten an PostHog Cloud in den USA, etwa genutzte Agenten und Version, aber keine Dateiinhalte oder Prompts. Auf dem Server schalten Sie das mit einer Umgebungsvariable ab, die für den jeweiligen Start gilt. Starten Sie den Server dann als normaler Benutzer und geben Sie mit --pairing-address die Adresse an, unter der Ihre Clients ihn erreichen, zum Beispiel die Tailscale-Adresse. Steht ein Reverse Proxy mit TLS davor, nehmen Sie dessen wss://-Adresse, so lief es im Test.
export ORCA_TELEMETRY_DISABLED=1
orca-ide serve --port 6768 --pairing-address 100.64.1.20 --json
Nach wenigen Sekunden meldet Orca eine JSON-Zeile vom Typ orca_server_ready. Ihr Anfang lautete im Test:
{"type":"orca_server_ready","schemaVersion":1,"runtimeId":"fdeaf5a8-f2cd-4181-804e-851050f5d98b","endpoint":"ws://0.0.0.0:6768","boundEndpoint":"ws://0.0.0.0:6768",
Weiter hinten stehen unter pairing der Pairing-Link (orca://…) und webClientUrl, der Link für den Browser-Client (…/web-index.html mit angehängtem Schlüssel). Beide sind Zugangsdaten, behandeln Sie sie wie ein Passwort. Wichtig für die Absicherung: Orca lauscht auf allen Schnittstellen (0.0.0.0), beschränken Sie Port 6768 per Firewall auf das VPN- oder LAN-Netz. In der Desktop-App fügen Sie den Server laut Dokumentation unter Settings → Remote Orca Servers → Add Server mit dem Pairing-Link hinzu, im Browser öffnen Sie webClientUrl.

Der Server läuft im Vordergrund, bis Sie ihn mit Strg+C beenden. Die weiteren Befehle führen Sie deshalb in einer zweiten Sitzung als Benutzer orca aus. Für den Dauerbetrieb legt orca-ide serve service install einen systemd-Benutzerdienst an; mit --dry-run zeigt es nur die Unit-Datei:
orca-ide serve service install --port 6768 --pairing-address 100.64.1.20 --dry-run
Im Test zeigte die Vorschau die Unit für /home/orca/.config/systemd/user/orca-serve.service mit ExecStart=/usr/bin/orca-ide serve --supervise --no-pairing --port 6768 plus der angegebenen Pairing-Adresse, der Variable ORCA_USER_DATA_PATH mit dem Wert /home/orca/.config/orca und Restart=on-failure. Der Dienst startet also mit --no-pairing und gibt keinen Pairing-Link aus, koppeln Sie Ihre Clients deshalb vorher im Vordergrund. Damit ein systemd-Benutzerdienst auch ohne angemeldete Sitzung läuft, aktivieren Sie für das Konto sudo loginctl enable-linger orca. Die Unit aus der Vorschau setzt ORCA_TELEMETRY_DISABLED nicht. Für den Dienst tragen Sie die Variable nach der Installation mit systemctl --user edit orca-serve als Ergänzung ein:
[Service]
Environment=ORCA_TELEMETRY_DISABLED=1
Verifizieren: ss -ltn | grep 6768 zeigt LISTEN auf 0.0.0.0:6768, curl -s -o /dev/null -w '%{http_code}' http://localhost:6768/web-index.html liefert 200, und orca-ide status --json meldet unter runtime:
"state": "ready",
"reachable": true,
"connectionState": "connected",
"runtimeId": "fdeaf5a8-f2cd-4181-804e-851050f5d98b",
"appVersion": "1.4.237",
Schritt 3: Projekt und Worktrees anlegen
Ein Projekt ist in Orca ein Git-Repository auf dem Server. Jede Aufgabe legt Orca als echten Git-Worktree unter ~/orca/workspaces an, mit eigenem Ordner und Branch. Deshalb schreiben parallele Agenten nie in dieselben Dateien. Für Commits braucht das Konto einen Git-Namen. Orca stellt ihn jedem neuen Branch voran, im Test lautete er Test. Für den Einstieg reicht ein kleines Testprojekt:
git config --global user.name "Test"
git config --global user.email "test@example.com"
git config --global init.defaultBranch main
mkdir -p ~/projekte/demo && cd ~/projekte/demo
git init -q && echo 'print("hallo")' > app.py && git add . && git commit -qm 'Erster Stand'
orca-ide repo add --path "$PWD" --json
RID=$(orca-ide repo list --json | jq -r --arg p "$PWD" '[.. | objects | select((.path? // "") == $p) | (.id // empty)] | first')
orca-ide worktree create --repo "id:$RID" --name aufgabe-1 --setup skip --json
orca-ide worktree create --repo "id:$RID" --name aufgabe-2 --setup skip --json
git worktree list
/home/orca/projekte/demo 22a07d9 [main]
/home/orca/orca/workspaces/demo/aufgabe-1 22a07d9 [Test/aufgabe-1]
/home/orca/orca/workspaces/demo/aufgabe-2 22a07d9 [Test/aufgabe-2]
Ein Terminal im Worktree startet Orca ebenfalls per Kommandozeile. Im Test schrieb dieser Befehl die Datei marker.txt mit dem Inhalt ORCA-MARKER-1 in den Worktree aufgabe-1, nicht ins Hauptverzeichnis:
orca-ide terminal create --worktree path:$HOME/orca/workspaces/demo/aufgabe-1 \
--command 'echo ORCA-MARKER-1 > marker.txt' --json
Ohne verbundenen Client meldet Orca dabei die Warnung, das Terminal laufe, sei aber nicht sichtbar; die Datei entstand trotzdem. Ein frischer Worktree enthält nur, was in Git liegt. Per .gitignore ausgeschlossene Dateien wie .env tragen Sie in eine Datei .worktreeinclude im Wurzelordner des Repositorys ein, dann kopiert Orca sie laut Dokumentation in jeden neuen Worktree.
Verifizieren: git worktree list zeigt neben dem Hauptordner zwei Worktrees mit eigenen Branches, und cat ~/orca/workspaces/demo/aufgabe-1/marker.txt gibt ORCA-MARKER-1 aus.
Schritt 4: Agenten in den Worktrees starten
Die Agenten laufen auf dem Server, also müssen sie dort installiert und angemeldet sein. Laut Projektdokumentation melden Sie Claude Code auf einem Server ohne Oberfläche in dessen Shell mit orca-ide account add --agent claude an; der Befehl ruft claude login auf und übernimmt die Anmeldung in Orca. Danach legt jeder Aufruf einen Worktree an, startet darin den Agenten und übergibt den Auftrag:
orca-ide worktree create --repo "id:$RID" --name subtraktion --agent claude --setup skip \
--prompt "Funktion subtrahiere(a, b) mit Test in app.py ergänzen." --json
orca-ide worktree create --repo "id:$RID" --name multiplikation --agent claude --setup skip \
--prompt "Funktion multipliziere(a, b) mit Test in app.py ergänzen." --json
Vorsicht bei den Rechten: Ab Werk steht Settings → Agents → Agent Permissions auf Yolo, im Test zeigte die Agentenliste für Claude die Startzeile claude --dangerously-skip-permissions. Der Agent führt Befehle und Dateiänderungen dann ohne Rückfrage aus. Stellen Sie im Client auf Manual, dann gilt laut Dokumentation wieder die Freigabe des Agenten selbst.

Ist ein Agent fertig, prüfen Sie seine Änderungen in der Diff-Ansicht des Worktrees und führen den Branch per git merge zusammen.
Verifizieren: orca-ide worktree ps --json listet alle Worktrees des Projekts mit Pfad und Branch.
Schritt 5: Sichern und wiederherstellen
Orca hält seinen Zustand in drei Ordnern: ~/.orca, ~/.config/orca (Datenbank, Geräte, Schlüssel, Laufzeit) und ~/orca mit den Worktrees samt nicht committeter Arbeit. Beenden Sie den Server vor der Sicherung mit Strg+C. Im Test liefen danach noch ein Orca-Hintergrundprozess und drei Shells des Benutzers weiter. Beenden Sie diese von einem Admin-Konto aus, etwa mit sudo pkill -u orca, wenn das Konto nur für Orca da ist. Dann sichern Sie:
cd ~ && tar czf orca-backup-$(date +%F).tar.gz .orca .config/orca orca
Die Meldung tar: .config/orca/daemon/daemon-v50.sock: socket ignored ist harmlos. Das Archiv war im Test rund 54 MB groß, der Großteil steckt in .config/orca (unkomprimiert 155 MiB). Die Repositories selbst gehören nicht zu Orca, die Verwaltungsdaten der Worktrees liegen in deren .git-Ordner. Sichern Sie die Repositories wie bisher, am besten per git push auf Ihren Git-Server. Zum Wiederherstellen beenden Sie Orca wie vor der Sicherung, entpacken das Archiv im Benutzerordner und starten orca-ide serve neu:
cd ~ && tar xzf orca-backup-2026-10-22.tar.gz
Im Test wurden alle drei Ordner gelöscht. Orca startete danach leer, orca-ide repo list lieferte keine Projekte mehr. Nach dem Entpacken waren Projekt, beide Worktrees und die Datei marker.txt mit ORCA-MARKER-1 wieder da.
Verifizieren: orca-ide repo list --json zeigt das Projekt wieder, und git worktree list im Projektordner nennt dieselben Pfade wie vor der Sicherung.
Schritt 6: Orca aktualisieren
Im Serverbetrieb aktualisiert sich Orca nicht selbst. orca-ide status --json meldete im Test dazu:
"remoteUpdateSupport": {
"installMode": "unsupported-headless-serve",
"automatic": false,
"reason": "updater-unavailable"
},
Sichern Sie wie in Schritt 5, beenden Sie Server und Restprozesse, installieren Sie das neue .deb-Paket über das alte und starten Sie den Server wieder:
VERSION=<neue Version>
curl -fLO https://github.com/stablyai/orca/releases/download/v${VERSION}/orca-ide_${VERSION}_amd64.deb
sudo apt install -y ./orca-ide_${VERSION}_amd64.deb
orca-ide serve --port 6768 --pairing-address 100.64.1.20 --json
Im Test dauerte das Update von 1.4.235 auf 1.4.237 samt Download 16 Sekunden; Projekt, Worktrees und Testdatei blieben erhalten, der Server war nach wenigen Sekunden wieder bereit. Halten Sie die Desktop-App auf den Clients auf demselben Stand, laut Dokumentation meldet ein zu alter Client sonst eine inkompatible Protokollversion.
Verifizieren: orca-ide --version zeigt die neue Version, und orca-ide repo list --json listet das Projekt weiterhin.
Troubleshooting
| Symptom | Ursache und Lösung |
|---|---|
error while loading shared libraries: libasound.so.2 | Die ALSA-Bibliothek fehlt. sudo apt install -y libasound2t64 nachinstallieren. |
code: 'orcad_instance_lock_held', Exit-Code 78 | Für diesen Benutzer läuft schon ein Orca-Server. Nur eine Instanz starten; läuft die Desktop-App mit Serverfreigabe, kein zusätzliches orca-ide serve. |
errno: -98, syscall: 'listen' mit port: 6768, Exit-Code 1 | Ein anderer Prozess belegt Port 6768. Diesen beenden oder mit --port einen freien Port wählen. |
"pairing":{"available":false,"reason":"invalid_advertised_endpoint" | --pairing-address 0.0.0.0 ist für Clients nicht erreichbar, Orca startet dann ohne Pairing-Link. Eine konkrete IP, einen Hostnamen oder eine wss://-Adresse angeben. |
"state": "stale_bootstrap" und "reachable": false | orca-ide status findet keinen laufenden Server, der Exit-Code ist trotzdem 0. orca-ide serve starten; in Skripten das Feld reachable auswerten. |
Not a valid git repository: /home/orca/kein-repo | repo add wurde auf einen Ordner ohne Git angewendet. Vorher git init und einen ersten Commit anlegen. |
Häufige Fragen
Funktioniert Orca nur mit Claude Code?
Nein. Orca startet laut Dokumentation jeden Agenten, der als Kommando im Terminal läuft, etwa Codex, OpenCode, Cursor CLI oder GitHub Copilot CLI. Die Agenten nutzen Ihre eigenen Konten, ein Konto bei Orca selbst war im Test nicht nötig.
Kann ich Orca auch direkt auf dem Mac nutzen?
Ja, die Desktop-App gibt es laut Dokumentation für macOS, Windows und Linux, auf dem Mac auch per Homebrew mit brew install --cask stablyai/orca/orca. Sie aktualisiert sich selbst. Dieselbe App dient als Client für einen Remote Orca Server.
Gibt es Orca als Docker-Container?
Ein offizielles Image gibt es nicht. Einzelne Worktrees kann Orca laut Dokumentation über Rezepte in einer orca.yaml in einem lokalen Container starten (Settings → Experimental → Cloud VM).
Sind die Agenten in einem Worktree abgeschottet?
Nein. Ein Worktree trennt nur die Arbeitskopien. Der Agent läuft mit den Rechten des Benutzers und kann alles lesen, was dieser lesen kann, ab Werk sogar ohne Rückfrage (Schritt 4). Ein eigenes Benutzerkonto für Orca begrenzt den Schaden, Produktivschlüssel gehören nicht auf diesen Server.
Fazit
Orca ist eine Arbeitsoberfläche für mehrere Coding-Agenten, die eigentliche Trennung leistet Git: Jede Aufgabe bekommt einen eigenen Worktree. Auf einem Ubuntu-Server ist orca-ide serve mit einer zusätzlichen Bibliothek schnell eingerichtet, Sicherung, Update und Wiederherstellung liefen im Test ohne Datenverlust. Der Serverbetrieb ist noch Beta und gehört nur in ein privates Netz. Behalten Sie drei Dinge im Blick: Agentenrechte auf Manual, Port 6768 nur im VPN oder LAN und eine Sicherung der Datenordner vor jedem der häufigen Updates.
Weiterführende Anleitungen und Quellen
- Claude Code Plugins installieren und nutzen
- Superpowers für Claude Code: Coding-Agenten sauber arbeiten lassen
- Headscale selbst hosten: Tailscale-Netz ohne Cloud-Abhängigkeit
- KI-Agenten absichern: Prompt-Injection abwehren
- Orca auf GitHub (stablyai/orca)
- Release Notes der getesteten Version 1.4.237
- Orca-Dokumentation: Installation
- Orca-Dokumentation: Remote Orca Servers
- Orca-Dokumentation: Worktrees
- Orca-Dokumentation: Privacy und Telemetrie
- Orca-Dokumentation: Unterstützte Agenten und Agentenrechte


