Screenshots zeigen die englische Oberfläche; Diagramme folgen der Sprache der Anleitung. Die Bezeichnungen in der App können je nach gewählter Sprache abweichen.
spcli — Befehlsreferenz
Die Befehlsbeschreibungen und kopierbaren Beispiele entsprechen dem Bereich Automatisierung in der Mac-App. Die Referenzen enthalten bestehende Befehle und Ergänzungen in 2.0.17.

Diese Abschnitte werden aus der integrierten Mac-App-Referenz synchronisiert, einschließlich aller Erklärungen und vollständigen Skriptbeispiele. Beispielnamen und IDs vor dem Ausführen ersetzen. Beispiele können echte Verbindungen und Einstellungen verändern; nicht die ganze Seite als Skript ausführen.
Remotedesktop
spcli list remote-desktops --json
Gespeicherte RDP/VNC-Verbindungen auflisten.
spcli list remote-desktops --json
spcli get-remote-desktop "<ID>"
Eine Verbindung anhand ihrer ID lesen; Zugangsdaten werden ausgelassen.
spcli get-remote-desktop "DESKTOP-ID"
spcli create-remote-desktop <JSON>
Mit name und values erstellen. Für eine Hostvorlage hostProfileUUID verwenden.
spcli create-remote-desktop '{"name":"Office desktop","values":{"hostProfileUUID":"PRESET-HOST-ID","remoteDesktopType":"rdp","remoteDesktopUsername":"alice","remoteHost":"192.168.1.91"}}'
spcli create-remote-desktop '{"name":"Office VNC","values":{"hostProfileUUID":"PRESET-HOST-ID","remoteDesktopType":"vnc","remoteDesktopVNCOpenMode":"screenSharing"}}'
spcli update-remote-desktop <JSON>
Anhand von id aktualisieren; name und values sind optional.
spcli update-remote-desktop '{"id":"DESKTOP-ID","values":{"remoteDesktopOptions":{"screen mode id":1,"audiomode":2}}}'
spcli open-remote-desktop "<ID>"
Bei Bedarf den SSH-Tunnel starten und dann den gespeicherten RDP/VNC-Client öffnen.
spcli open-remote-desktop "DESKTOP-ID"
spcli delete-remote-desktop "<ID>"
Eine getrennte Verbindung anhand ihrer ID löschen.
spcli delete-remote-desktop "DESKTOP-ID"
Benutzernamen können geschrieben werden, werden aber nie zurückgegeben. SSH-Passwörter und Identitätsdateien in Secure Pipes festlegen; Desktop-Passwörter im Client eingeben.
Über spcli
spcli ist ein kleines, in Secure Pipes enthaltenes Kommandozeilentool. Es steuert Secure Pipes direkt im Terminal, damit du gespeicherte Verbindungen in Shell-Skripten, Aliassen oder geplanten Aufgaben starten, beenden und prüfen kannst.
spcli verwendet dieselben AppleScript-Befehle und Automatisierungsrechte. Beim Start der Netzwerkfreigabe kann das Bestätigungsfenster erscheinen.
spcli installieren
spcli wird mit Secure Pipes ausgeliefert, ist aber erst nach der Installation in deinem PATH verfügbar. Nutze die Zeile für das Kommandozeilentool unter „Sicherung“ in den Einstellungen > Allgemein.
Klicke auf „spcli installieren“. Secure Pipes verknüpft spcli mit einem Ordner in deinem PATH, etwa /usr/local/bin oder /opt/homebrew/bin.
Wenn der Ordner Rechte erfordert, bestätige die einmalige Administratorabfrage.
Öffne ein neues Terminal-Fenster und führe spcli --help aus, um die Verfügbarkeit zu prüfen.
Um es später zu entfernen, klicke in derselben Zeile auf „spcli deinstallieren“.
Installation prüfen
spcli --version
spcli --help
Befehlsreferenz
Gib spcli und dann einen Befehl ein. Setze Verbindungs- und Gruppennamen in Anführungszeichen.
spcli start
Startet Secure Pipes ohne Fenster.
spcli start
spcli show
Zeigt das Secure-Pipes-Fenster an und aktiviert es.
spcli show
spcli hide
Blendet die Secure-Pipes-Fenster aus, während die Verbindungen weiterlaufen.
spcli hide
spcli shutdown
Beendet Secure Pipes und stoppt aktive Verbindungen.
spcli shutdown
spcli list connections
Listet die konfigurierten Verbindungen. Mit --json als maschinenlesbare Ausgabe.
spcli list connections
spcli list groups
Listet die Tags, die als Verbindungsgruppen dienen. Mit --json als maschinenlesbare Ausgabe.
spcli list groups
spcli connect "<connection>"
Startet eine gespeicherte Verbindung.
spcli connect "Build Tunnel (Local Forward)"
spcli disconnect "<connection>"
Beendet eine gespeicherte Verbindung.
spcli disconnect "Build Tunnel (Local Forward)"
spcli status "<connection>"
Zeigt den aktuellen Zustand einer Verbindung.
spcli status "Build Tunnel (Local Forward)"
spcli connect-group "<group>"
Startet eine Gruppe mit ihren gespeicherten Starteinstellungen.
spcli connect-group "engineering"
spcli disconnect-group "<group>"
Stoppt eine Gruppe und ihre Mitglieder.
spcli disconnect-group "engineering"
spcli list task-plans
Pläne ohne Zugangsdaten auflisten.
spcli list task-plans --json
spcli create-task-plan '<JSON>'
Validierten Plan aus JSON erstellen. Verbindungs-/Gruppen-IDs verwenden, keine Zugangsdaten.
spcli create-task-plan '{"id":"work-start","hour":9,"minute":0,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli update-task-plan '<JSON>'
Plan mit bestehender ID und zu speichernden Feldern aktualisieren.
spcli update-task-plan '{"id":"work-start","hour":8,"minute":45,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli enable-task-plan "<ID>"
Gespeicherten Plan aktivieren, deaktivieren oder sofort testen.
spcli enable-task-plan "work-start"
spcli disable-task-plan "work-start"
spcli run-task-plan "work-start"
Optionen
--json
Maschinenlesbares JSON für unterstützte Befehle.
--help
Zeigt den vollständigen Hinweistext.
--version
Zeigt die spcli-Version.
Exit-Codes
0 Erfolg, 1 Secure Pipes hat einen Fehler gemeldet, 2 ungültige Verwendung, 3 Secure Pipes nicht gefunden oder Automationserlaubnis verweigert, 4 der Apple Event konnte nicht gesendet werden.
Regeln und Nutzungsszenarien
Verwenden Sie zum Ändern von Regeln oder Wechseln des Szenarios eine ID oder einen eindeutigen Namen. Beim Wechsel werden aktive Verbindungen getrennt und erneut hergestellt. Beim Löschen eines Szenarios bleiben Regeln erhalten; Regeln ohne weitere Zuordnung werden allgemein gültig.
spcli list rules
Listet Regeln in Reihenfolge mit ID, Name, Aktivierungsstatus, Aktion und Szenario-IDs auf.
spcli list rules --json
spcli list scenarios
Listet Szenarien einschließlich Universal mit ID, Name und Aktivierungsstatus auf.
spcli list scenarios --json
spcli current-scenario
Zeigt den Namen des aktuell aktiven Szenarios an.
spcli current-scenario
spcli switch-scenario "Office"
Wechselt per ID oder eindeutigem Namen das Szenario und verbindet betroffene Verbindungen nach den gewählten Regeln neu.
spcli switch-scenario "Office"
spcli enable-rule "Work websites"
Aktiviert eine Regel per ID oder eindeutigem Namen.
spcli enable-rule "Work websites"
spcli disable-rule "Work websites"
Deaktiviert eine Regel, ohne sie zu löschen.
spcli disable-rule "Work websites"
spcli set-rule-scenarios "Work websites" "Office" "Travel"
Ersetzt die Szenariozuordnungen einer Regel. Universal macht sie zu einer allgemeinen Regel.
spcli set-rule-scenarios "Work websites" "Office" "Travel"
spcli create-scenario "Travel"
Erstellt ein Szenario mit eindeutigem Namen und gibt seine ID zurück.
spcli create-scenario "Travel"
spcli rename-scenario "Travel" "Mobile work"
Benennt ein Szenario um und behält seine Regelzuordnungen bei.
spcli rename-scenario "Travel" "Mobile work"
spcli delete-scenario "Travel"
Löscht ein Szenario, aber nicht seine Regeln. Regeln ohne weitere Szenarien werden allgemein gültig.
spcli delete-scenario "Travel"
Kombiniertes Beispiel
spcli list rules --json
spcli list scenarios --json
spcli current-scenario
spcli switch-scenario "Office"
spcli enable-rule "Work websites"
spcli disable-rule "Work websites"
spcli set-rule-scenarios "Work websites" "Office" "Travel"
spcli set-rule-scenarios "Work websites" Universal
spcli create-scenario "Travel"
spcli rename-scenario "Travel" "Mobile work"
spcli delete-scenario "Mobile work"
Proxy und Netzwerkfreigabe
Die Freigabe verwendet die gespeicherte Adresse, den Port und die Authentifizierung. Beim Start öffnet sich bei Bedarf das Bestätigungsfenster. Für den Gateway-Modus bleiben Risikobestätigung und macOS-Autorisierung erforderlich.
spcli list proxy-servers
Listet konfigurierte Proxyserver mit ID, Name, Typ und Adresse auf, ohne Zugangsdaten.
spcli list proxy-servers --json
spcli transparent-proxy-status
Zeigt Betriebszustand, Systemerweiterungsstatus und Versionsübereinstimmung des transparenten Proxys an.
spcli transparent-proxy-status --json
spcli initialize-transparent-proxy
Installiert oder repariert die Systemerweiterung. macOS kann eine Genehmigung verlangen; der transparente Proxy wird nicht gestartet.
spcli initialize-transparent-proxy
spcli start-transparent-proxy
Startet den transparenten Proxy mit den aktuellen Routingregeln, sobald die Erweiterung bereit ist.
spcli start-transparent-proxy
spcli stop-transparent-proxy
Stoppt den transparenten Proxy. Die Netzwerkfreigabe ist von diesem Dienst abhängig.
spcli stop-transparent-proxy
spcli sharing-status
Zeigt den Status von Freigabe und Gateway an. Während des Betriebs gelten die angezeigten Modi; im Ruhezustand sind es die gespeicherten Modi.
spcli sharing-status --json
spcli set-sharing-modes both
Wählt Proxy, Gateway, beide oder Aus für den nächsten manuellen Start. Stoppen Sie vor einer Änderung die Freigabe.
spcli set-sharing-modes both
spcli start-sharing
Startet die gewählten Modi mit gespeicherter Adresse, Port und Authentifizierung. Eine Bestätigung kann erforderlich sein.
spcli start-sharing
spcli stop-sharing
Stoppt Gateway und Freigabe-Proxy-Listener. Der transparente Proxy läuft weiter.
spcli stop-sharing
Kombiniertes Beispiel
spcli list proxy-servers --json
spcli transparent-proxy-status --json
spcli initialize-transparent-proxy
spcli start-transparent-proxy
spcli set-sharing-modes both
spcli sharing-status --json
spcli start-sharing
spcli stop-sharing
spcli stop-transparent-proxy
Verbindungen, Aktivität und Protokolle
Mit den IDs aus den Listen lassen sich Einträge eindeutig abrufen. Details werden als JSON-Text zurückgegeben.
spcli group-status "engineering"
Zeigt das Gruppenergebnis und den Status jedes Mitglieds.
spcli group-status "engineering" --json
spcli connect-and-wait "Build Tunnel" 30
Wartet auf eine bereitstehende Verbindung; Fehler und Zeitüberschreitungen werden gemeldet.
spcli connect-and-wait "Build Tunnel" 30
spcli preview-route
Sagt die lokale Regel im aktuellen Szenario voraus; die Verbindung wird nicht getestet.
spcli preview-route example.com 443 com.apple.Safari TCP --json
spcli test-proxy
Testet einen gespeicherten Proxy und liefert Ergebnis, Grund und Dauer.
spcli test-proxy "proxy-id" --json
spcli list proxy-flows
Zeigt Proxy-Aktivität; LAN zeigt Freigaben, ALL beides.
spcli list proxy-flows --json
spcli list sharing-flows
Zeigt Verbindungen der Netzwerkfreigabe.
spcli list sharing-flows --json
spcli end-flow
Beendet einen verbundenen Datenfluss anhand seiner ID.
spcli end-flow "flow-id"
spcli list logs
Zeigt bis zu 200 aktuelle, bereinigte Protokolleinträge, neueste zuerst.
spcli list logs --json
spcli log-detail
Zeigt den vollständigen aktuellen Protokolleintrag anhand seiner ID.
spcli log-detail "log-id" --json
Terminalbeispiele
Kombiniere spcli mit üblichen Shell-Tools, um deine Abläufe zu automatisieren.
Verbindungen auflisten
spcli list connections
Beispielausgabe
Build Tunnel (Local Forward), Debug DB (Remote Forward), Dev Box SOCKS (SOCKS Proxy)
Verbindung starten und warten
spcli connect "Build Tunnel (Local Forward)"
until [ "$(spcli status "Build Tunnel (Local Forward)")" = "connected" ]; do sleep 1; done
echo "Tunnel is up"
Eine Verbindung kann auch bei authentication failed, unknown host key, host key changed, invalid oder error stehen bleiben; prüfe den Status, bevor du dich darauf verlässt.
Gruppe starten oder beenden
spcli connect-group "engineering"
spcli disconnect-group "engineering"
Status als JSON lesen
spcli status "Build Tunnel (Local Forward)" --json
Beispielausgabe
{ "connection" : "Build Tunnel (Local Forward)", "status" : "connected" }
Automationserlaubnis
Wenn Terminal spcli zum ersten Mal ausführt, fragt macOS, ob Terminal Secure Pipes steuern darf. Erlaube dies in den Systemeinstellungen unter Datenschutz & Sicherheit > Automatisierung.
Vollständige spcli-Hilfe (englisches Original aus der App)
spcli — control Secure Pipes from the command line
Usage: spcli <command> [arguments]
Application:
spcli start Start Secure Pipes without showing its window
spcli show Show and activate the Secure Pipes window
spcli hide Hide Secure Pipes windows
spcli shutdown Quit Secure Pipes immediately
Connections and groups:
Connection arguments accept a UUID, unique name or full display name.
spcli list connections [--json] List configured connections
spcli connect "<connection>" Start a connection
spcli disconnect "<connection>" Stop a connection
spcli status "<connection>" [--json]
Show the status of a connection
spcli wait "<connection>" [seconds]
Wait until connected (1-45 seconds)
spcli connect-and-wait "<connection>" [seconds]
Start and wait for a ready connection
spcli list remote-desktops [--json] List RDP/VNC profiles (redacted)
spcli get-remote-desktop "<ID>" [--json]
spcli create-remote-desktop '<JSON>' Create name/values; preset host supported
spcli update-remote-desktop '<JSON>' Update id/name/values
spcli open-remote-desktop "<ID>" Start tunnel and open client
spcli delete-remote-desktop "<ID>" Delete disconnected profile
spcli list groups [--json] List connection groups
spcli group-status "<group>" [--json]
Show the status of a group
spcli connect-group "<group>" Start all connections in a group
spcli disconnect-group "<group>" Stop all connections in a group
Rules and scenarios:
spcli list rules [--json] List proxy rules and scenario assignments
spcli preview-route <host> <port> <bundle-id> [TCP|UDP] [--json]
Predict the current local rule decision
spcli enable-rule "<name|ID>" Enable a proxy rule
spcli disable-rule "<name|ID>" Disable a proxy rule
spcli set-rule-scenarios "<rule>" "<scenario>" ["<scenario>" ...]
Replace assignments; Universal clears them
spcli list scenarios [--json] List usage scenarios (ID, name, active state)
spcli current-scenario Show the active usage scenario
spcli switch-scenario "<name|ID>"
Switch scenario; active connections reconnect
spcli create-scenario "<name>" Create a usage scenario
spcli rename-scenario "<old>" "<new>"
Rename a scenario
spcli delete-scenario "<name|ID>"
Delete a scenario; orphaned rules become universal
Task plans:
spcli list task-plans [--json] List scheduled plans (redacted)
spcli get-task-plan "<ID>" [--json]
Read one scheduled plan
spcli create-task-plan '<JSON>' Create a validated task plan
spcli update-task-plan '<JSON>' Update a plan; JSON must include id
spcli delete-task-plan "<ID>" Delete a scheduled plan
spcli enable-task-plan "<ID>" Enable a plan
spcli disable-task-plan "<ID>" Disable a plan
spcli run-task-plan "<ID>" Run a plan immediately
JSON repeat: 0 once, 1 daily, 2 weekdays,
3 custom weekdays, 4 app launch, 5 app quit,
6 custom dates; dates are ISO 8601 or YYYY-MM-DD
Proxies and sharing:
spcli list proxy-servers [--json] List proxy servers without credentials
spcli test-proxy <name|ID> [--json]
Test a proxy server
spcli transparent-proxy-status [--json]
Show transparent proxy and extension state
spcli initialize-transparent-proxy
Install or repair the system extension
spcli start-transparent-proxy Start the transparent proxy
spcli stop-transparent-proxy Stop the transparent proxy
spcli sharing-status [--json] Show sharing, gateway and mode states
spcli set-sharing-modes <proxy|gateway|both|off>
Select network sharing modes
spcli start-sharing Start the selected sharing modes
spcli stop-sharing Stop gateway and network sharing
Activity and logs:
spcli list flows [--json] List proxy and sharing connections
spcli list proxy-flows [--json] List transparent proxy connections
spcli list sharing-flows [--json] List network sharing connections
spcli end-flow <flow-id> End a connected flow
spcli list logs [--json] Show the 200 newest redacted logs
spcli log-detail <log-id> [--json]
Show the complete recent log record
Options:
--json Machine-readable JSON output for supported commands
--help Show this help
--version Show the spcli version
Exit codes:
0 success 1 Secure Pipes reported an error 2 invalid usage
3 application not found / not launchable / Automation permission denied
4 Apple Event send, timeout, or reply failure
Basierend auf Secure Pipes 2.0.17 · Aktualisiert am 9. November 2026