Les captures montrent l’interface en anglais ; les diagrammes suivent la langue du guide. Les noms des commandes de l’app peuvent varier selon la langue choisie.
spcli — Référence des commandes
Retrouvez les mêmes descriptions de commandes et exemples à copier que dans Automatisation sur Mac. Les références incluent les commandes existantes et les ajouts de la version 2.0.17.

Ces sections sont synchronisées depuis la référence intégrée à l’app Mac, avec chaque explication et les scripts complets. Remplacez les noms et ID avant exécution. Les exemples peuvent modifier des connexions et réglages réels : ne lancez pas toute la page comme un script.
Bureau à distance
spcli list remote-desktops --json
Lister les connexions RDP/VNC enregistrées.
spcli list remote-desktops --json
spcli get-remote-desktop "<ID>"
Lire une connexion par son ID, sans identifiants.
spcli get-remote-desktop "DESKTOP-ID"
spcli create-remote-desktop <JSON>
Créer avec name et values. Utiliser hostProfileUUID pour un hôte prédéfini.
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>
Modifier par id ; name et values sont facultatifs.
spcli update-remote-desktop '{"id":"DESKTOP-ID","values":{"remoteDesktopOptions":{"screen mode id":1,"audiomode":2}}}'
spcli open-remote-desktop "<ID>"
Démarrer le tunnel SSH si nécessaire, puis ouvrir le client RDP/VNC enregistré.
spcli open-remote-desktop "DESKTOP-ID"
spcli delete-remote-desktop "<ID>"
Supprimer une connexion déconnectée par son ID.
spcli delete-remote-desktop "DESKTOP-ID"
Les noms d’utilisateur peuvent être écrits, mais ne sont jamais renvoyés. Définissez les mots de passe SSH et les fichiers d’identité dans Secure Pipes ; saisissez les mots de passe du bureau dans le client.
À propos de spcli
spcli est un petit outil en ligne de commande fourni avec Secure Pipes. Il pilote Secure Pipes directement depuis Terminal, ce qui vous permet de démarrer, arrêter et consulter les connexions enregistrées dans des scripts shell, des alias ou des tâches planifiées.
spcli utilise les mêmes commandes AppleScript et l’autorisation d’automatisation. Le démarrage du partage réseau peut ouvrir la fenêtre de confirmation.
Installer spcli
spcli est fourni avec Secure Pipes mais n’est pas dans votre PATH tant que vous ne l’avez pas installé. Utilisez la ligne de l’outil en ligne de commande sous Sauvegarde dans Réglages > Général.
Cliquez sur « Installer spcli ». Secure Pipes crée un lien vers spcli dans un dossier de votre PATH, comme /usr/local/bin ou /opt/homebrew/bin.
Si ce dossier exige des droits, approuvez la demande d’administrateur unique.
Ouvrez une nouvelle fenêtre Terminal et exécutez spcli --help pour confirmer sa disponibilité.
Pour le retirer plus tard, cliquez sur « Désinstaller spcli » sur la même ligne.
Vérifier l’installation
spcli --version
spcli --help
Référence des commandes
Tapez spcli, puis une commande. Mettez les noms de connexion et de groupe entre guillemets.
spcli start
Démarre Secure Pipes sans afficher sa fenêtre.
spcli start
spcli show
Affiche et active la fenêtre de Secure Pipes.
spcli show
spcli hide
Masque les fenêtres de Secure Pipes pendant que les connexions continuent.
spcli hide
spcli shutdown
Quitte Secure Pipes et arrête les connexions actives.
spcli shutdown
spcli list connections
Liste les connexions configurées. Ajoutez --json pour une sortie lisible par machine.
spcli list connections
spcli list groups
Liste les tags utilisés comme groupes de connexions. Ajoutez --json pour une sortie lisible par machine.
spcli list groups
spcli connect "<connection>"
Démarre une connexion enregistrée.
spcli connect "Build Tunnel (Local Forward)"
spcli disconnect "<connection>"
Arrête une connexion enregistrée.
spcli disconnect "Build Tunnel (Local Forward)"
spcli status "<connection>"
Affiche l’état actuel d’une connexion.
spcli status "Build Tunnel (Local Forward)"
spcli connect-group "<group>"
Démarre un groupe selon ses réglages enregistrés.
spcli connect-group "engineering"
spcli disconnect-group "<group>"
Arrête un groupe et les connexions de ses membres.
spcli disconnect-group "engineering"
spcli list task-plans
Lister les plans sans renvoyer d’identifiants secrets.
spcli list task-plans --json
spcli create-task-plan '<JSON>'
Créer un plan validé depuis JSON. Utiliser les ID de connexion/groupe, sans identifiants secrets.
spcli create-task-plan '{"id":"work-start","hour":9,"minute":0,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli update-task-plan '<JSON>'
Mettre à jour avec l’ID existant et les champs à enregistrer.
spcli update-task-plan '{"id":"work-start","hour":8,"minute":45,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli enable-task-plan "<ID>"
Activer, désactiver ou tester immédiatement un plan enregistré.
spcli enable-task-plan "work-start"
spcli disable-task-plan "work-start"
spcli run-task-plan "work-start"
Options
--json
Sortie JSON exploitable par machine pour les commandes compatibles.
--help
Affiche le mode d’emploi complet.
--version
Affiche la version de spcli.
Codes de retour
0 succès, 1 Secure Pipes a signalé une erreur, 2 utilisation invalide, 3 Secure Pipes introuvable ou autorisation d’automatisation refusée, 4 l’Apple Event n’a pas pu être envoyé.
Règles et scénarios d’utilisation
Utilisez un ID ou un nom unique pour modifier une règle ou changer de scénario. Le changement ferme puis rétablit les connexions actives. Supprimer un scénario conserve ses règles ; celles qui n’appartiennent à aucun autre scénario deviennent communes.
spcli list rules
Liste les règles dans l'ordre avec leur ID, nom, état d'activation, action et ID de scénarios.
spcli list rules --json
spcli list scenarios
Liste les scénarios, dont Universal, avec leur ID, nom et état actif.
spcli list scenarios --json
spcli current-scenario
Affiche le nom du scénario actuellement actif.
spcli current-scenario
spcli switch-scenario "Office"
Change de scénario par ID ou nom unique et reconnecte les connexions concernées selon les règles choisies.
spcli switch-scenario "Office"
spcli enable-rule "Work websites"
Active une règle par ID ou nom unique.
spcli enable-rule "Work websites"
spcli disable-rule "Work websites"
Désactive une règle sans la supprimer.
spcli disable-rule "Work websites"
spcli set-rule-scenarios "Work websites" "Office" "Travel"
Remplace les scénarios associés à une règle. Universal rend la règle universelle.
spcli set-rule-scenarios "Work websites" "Office" "Travel"
spcli create-scenario "Travel"
Crée un scénario portant un nom unique et renvoie son ID.
spcli create-scenario "Travel"
spcli rename-scenario "Travel" "Mobile work"
Renomme un scénario en conservant ses associations aux règles.
spcli rename-scenario "Travel" "Mobile work"
spcli delete-scenario "Travel"
Supprime un scénario sans supprimer ses règles. Les règles sans autre scénario deviennent universelles.
spcli delete-scenario "Travel"
Exemple complet
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 et partage réseau
Le partage utilise l’adresse, le port et les paramètres d’authentification enregistrés. La fenêtre de confirmation s’ouvre au besoin. Le mode passerelle conserve la confirmation des risques et l’autorisation macOS.
spcli list proxy-servers
Liste les serveurs proxy configurés avec leur ID, nom, type et adresse, sans identifiants.
spcli list proxy-servers --json
spcli transparent-proxy-status
Affiche l'état du proxy transparent, celui de l'extension système et la correspondance des versions.
spcli transparent-proxy-status --json
spcli initialize-transparent-proxy
Installe ou répare l'extension système. macOS peut demander une autorisation ; cela ne démarre pas le proxy transparent.
spcli initialize-transparent-proxy
spcli start-transparent-proxy
Démarre le proxy transparent avec les règles de routage actuelles une fois l'extension prête.
spcli start-transparent-proxy
spcli stop-transparent-proxy
Arrête le proxy transparent. Le partage réseau dépend de ce service.
spcli stop-transparent-proxy
spcli sharing-status
Affiche l'état du partage et de la passerelle. Les modes sont effectifs pendant l'exécution et enregistrés après l'arrêt.
spcli sharing-status --json
spcli set-sharing-modes both
Choisit proxy, passerelle, les deux ou désactivé pour le prochain démarrage manuel. Arrêtez le partage avant de changer de mode.
spcli set-sharing-modes both
spcli start-sharing
Démarre les modes choisis avec l'adresse, le port et l'authentification enregistrés. Une confirmation peut être nécessaire.
spcli start-sharing
spcli stop-sharing
Arrête la passerelle et l'écouteur proxy partagé. Le proxy transparent reste actif.
spcli stop-sharing
Exemple complet
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
Connexions, activité et journaux
Utilisez les ID des listes pour retrouver précisément les éléments. Les détails sont renvoyés au format JSON.
spcli group-status "engineering"
Affiche le résultat du groupe et l’état de chaque membre.
spcli group-status "engineering" --json
spcli connect-and-wait "Build Tunnel" 30
Attend que la connexion soit prête ; un échec ou une expiration renvoie une erreur.
spcli connect-and-wait "Build Tunnel" 30
spcli preview-route
Prévoit la règle locale du scénario actuel sans tester la connectivité.
spcli preview-route example.com 443 com.apple.Safari TCP --json
spcli test-proxy
Teste un proxy enregistré et renvoie le résultat, la raison et la durée.
spcli test-proxy "proxy-id" --json
spcli list proxy-flows
Affiche l’activité du proxy ; LAN affiche le partage et ALL les deux.
spcli list proxy-flows --json
spcli list sharing-flows
Affiche les connexions du partage réseau.
spcli list sharing-flows --json
spcli end-flow
Ferme un flux connecté à partir de son ID.
spcli end-flow "flow-id"
spcli list logs
Affiche jusqu’à 200 entrées récentes expurgées, les plus récentes en premier.
spcli list logs --json
spcli log-detail
Affiche l’enregistrement complet d’un journal récent à partir de son ID.
spcli log-detail "log-id" --json
Exemples dans Terminal
Combinez spcli avec des outils shell classiques pour automatiser vos flux de travail.
Lister les connexions
spcli list connections
Exemple de résultat
Build Tunnel (Local Forward), Debug DB (Remote Forward), Dev Box SOCKS (SOCKS Proxy)
Démarrer une connexion et l’attendre
spcli connect "Build Tunnel (Local Forward)"
until [ "$(spcli status "Build Tunnel (Local Forward)")" = "connected" ]; do sleep 1; done
echo "Tunnel is up"
Une connexion peut aussi se figer sur authentication failed, unknown host key, host key changed, invalid ou error ; vérifiez donc l’état avant de vous y fier.
Démarrer ou arrêter un groupe
spcli connect-group "engineering"
spcli disconnect-group "engineering"
Lire l’état en JSON
spcli status "Build Tunnel (Local Forward)" --json
Exemple de résultat
{ "connection" : "Build Tunnel (Local Forward)", "status" : "connected" }
Autorisation d’automatisation
La première fois que Terminal exécute spcli, macOS vous demande d’autoriser Terminal à contrôler Secure Pipes. Autorisez-le dans Réglages Système > Confidentialité et sécurité > Automatisation.
Aide spcli complète (original anglais de l’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
Basé sur Secure Pipes 2.0.17 · Mis à jour le 9 novembre 2026