pbx up NAME [--location nbg1] [--server-type cpx02] [--plan] [--yes] [--abort]
einen Hub in deinem Hetzner-Projekt anlegen, diesen Rechner als Owner koppeln, die Lizenz aktivieren
pbx status [NAME]
der Hub: seine Lizenz, Server, Twins, offene Freigaben und Releases, die Verbindung jedes Hubs auf diesem Rechner, und das Alpha-Label
pbx open [PATH]
das Portal des Hubs im Browser, über einen lokalen Proxy, solange pbx läuft
pbx upgrade [NAME] --dist DIR [--plan] [--allow-from ADDR]
ein anderes Release von pbx-hub auf dem Server des Hubs installieren; Daten und Kopplungen bleiben
pbx down NAME [--plan] [--confirm NAME] [--keep-image]
den Hub löschen und was pbx up angelegt hat
Hetzner-Tokens: --token-file F oder --hcloud-context C für Production, --twins-token-file F oder --twins-hcloud-context C für Twins; sonst HCLOUD_TOKEN, sonst eine Eingabeaufforderung.
Ein Rechner kann mit mehreren Hubs gekoppelt sein, mit einem eigenen Gerät für jeden. Ein Befehl spricht mit einem davon, gewählt in dieser Reihenfolge: --hub NAME (oder pbx status NAME), dann PBX_HUB, dann der Standard-Hub, dann der einzige Hub, den es gibt. Bei mehreren Hubs ohne Standard verlangt der Befehl --hub.
Befehl
Was er tut
pbx hub list
die Hubs auf diesem Rechner: Endpunkt, Gerät, Schutzstufe, der Standard (*), und ob ein pbx open eine Verbindung hält
pbx hub current
der Hub, mit dem ein Befehl jetzt spricht, und warum (--hub, PBX_HUB, der Standard, der einzige)
pbx hub use NAME
NAME zum Standard-Hub machen; --hub und PBX_HUB gehen weiter vor
pbx hub list und pbx hub current sprechen mit keinem Hub; sie lesen die Dateien dieses Rechners. Die erste Kopplung setzt den Standard, wenn es keinen gibt; pbx down des Standard-Hubs löscht ihn.
Jeder Befehl, der an einem Hub etwas ändert, gibt zuerst hub: NAME auf stderr aus. Mit --output json gibt es diese Zeile nicht; das JSON hat stattdessen ein Feld hub. Befehle, die nur lesen, geben keins von beiden aus.
einen Befehl als Coding-Agent ausführen (claude-code, cursor, …), signiert mit dem Agentenschlüssel dieses Geräts für diese Integration
pbx agent register INTEGRATION
den Agentenschlüssel dieses Geräts für eine Integration beim Hub registrieren (eine Person, einmal; pbx --agent tut es bei der ersten Nutzung)
pbx agent revoke INTEGRATION [--device ID]
den Agentenschlüssel eines Geräts für eine Integration widerrufen (den dieses Geräts, oder als Owner jeden)
Im Agentenmodus hält der Hub jede Anfrage unter der Obergrenze des Agenten. Darüber endet der Befehl mit 4; was eine Person freigeben muss, endet mit 5 und der ID der Freigabe. Ist PBX_AGENT gesetzt, werden pbx open, pbx approve, das Koppeln und pbx agent register|revoke abgelehnt (Exit 4); pbx weicht nie auf den Schlüssel der Person aus. Die Einzelheiten stehen unter Coding-Agenten.
Ein lang laufendes pbx (pbx open, pbx open twin, pbx open host) teilt seinen Tunnel zum Hub, solange es läuft, mit den anderen pbx-Läufen desselben Benutzers, Hubs und Geräts, über einen Socket, den nur dieser Benutzer öffnen kann. Jeder Lauf spricht weiter selbst TLS mit dem Hub und signiert seine Anfragen selbst; geteilt wird nur der Transport. Ohne ein lang laufendes pbx öffnet jeder Lauf seinen eigenen Tunnel. pbx status und pbx hub list zeigen die Verbindung: open via pbx open (pid …) mit dem Alter des letzten Handshakes, oder none. Unter Windows wird keine Verbindung geteilt: Dort läuft ein lang laufendes pbx pro Gerät.
der Hub, mit dem ein Befehl spricht, vor dem Standard; --hub geht vor
PBX_AGENT
Agentenmodus für jeden Lauf, wie --agent; in der Umgebung des Agenten setzen
PBX_AGENT_SESSION
die Sitzung des Agenten im Audit; Standard: eine pro pbx-Lauf
PBX_LINK_SHARE
off: für diesen Lauf keine geteilte Verbindung nutzen oder anbieten
PBX_HOME
ein Verzeichnis für alle Dateien von pbx
PBX_PASSPHRASE_FILE, PBX_PASSPHRASE
die Passphrase der Schlüsseldatei des Geräts, wie --passphrase-file (Stufe passphrase-stored)
PBX_CLEVIS_CONFIG, PBX_CLEVIS_PIN
der Tang-Server (und sss mit dem TPM) für eine von Tang entsperrte Schlüsseldatei (Stufe tang)
PBX_NO_BROWSER
gesetzt: Links ausgeben statt einen Browser zu öffnen
HCLOUD_TOKEN, HCLOUD_CONFIG
das Hetzner-Token, oder die Konfiguration des hcloud-CLI für --hcloud-context
PBX_PORTAL, PBX_RELEASES
ein anderes Portal oder ein anderer Release-Server, für ein Labor
Ohne PBX_HOME liegen die Dateien unter macOS in ~/Library/Application Support/pbx, unter Windows in %LOCALAPPDATA%\pbx und unter Linux in den XDG-Verzeichnissen.