SECURE PIPES 2 Guida per l'utente

Le schermate mostrano l’interfaccia in inglese; i diagrammi seguono la lingua della guida. I nomi dei controlli possono variare in base alla lingua scelta nell’app.

spcli — Riferimento dei comandi

Le descrizioni dei comandi e gli esempi da copiare corrispondono alla sezione Automazione dell’app per Mac. I riferimenti includono i comandi esistenti e le aggiunte della versione 2.0.17.

Riferimento dei comandi spcli

Spiegazioni e script completi sono sincronizzati dalla documentazione integrata nell’app Mac. Sostituisci nomi e ID di esempio prima di eseguire. Gli esempi possono cambiare connessioni e impostazioni reali: non eseguire l’intera pagina come script.

Desktop remoto

spcli list remote-desktops --json

Elenca le connessioni RDP/VNC salvate.

spcli list remote-desktops --json

spcli get-remote-desktop "<ID>"

Leggi una connessione per ID, senza credenziali.

spcli get-remote-desktop "DESKTOP-ID"

spcli create-remote-desktop <JSON>

Crea con name e values. Usa hostProfileUUID per un host predefinito.

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>

Aggiorna per id; name e values sono facoltativi.

spcli update-remote-desktop '{"id":"DESKTOP-ID","values":{"remoteDesktopOptions":{"screen mode id":1,"audiomode":2}}}'

spcli open-remote-desktop "<ID>"

Avvia il tunnel SSH se necessario, poi apri il client RDP/VNC salvato.

spcli open-remote-desktop "DESKTOP-ID"

spcli delete-remote-desktop "<ID>"

Elimina una connessione disconnessa tramite ID.

spcli delete-remote-desktop "DESKTOP-ID"

I nomi utente possono essere scritti, ma non vengono mai restituiti. Imposta password SSH e file di identità in Secure Pipes; inserisci la password del desktop nel client.

Informazioni su spcli

spcli è un piccolo strumento a riga di comando incluso in Secure Pipes. Controlla Secure Pipes direttamente dal Terminale, così puoi avviare, interrompere e consultare le connessioni salvate da script di shell, alias o attività pianificate.

spcli usa gli stessi comandi AppleScript e il permesso di automazione. Avviando la condivisione di rete potrebbe aprirsi la finestra di conferma.

Installare spcli

spcli è incluso con Secure Pipes, ma non è nel tuo PATH finché non lo installi. Usa la riga dello strumento a riga di comando sotto Backup in Impostazioni > Generale.

  • Fai clic su Installa spcli. Secure Pipes collega spcli a una cartella del tuo PATH, come /usr/local/bin o /opt/homebrew/bin.

  • Se la cartella richiede i permessi, approva una sola volta la richiesta dell’amministratore.

  • Apri una nuova finestra del Terminale e esegui spcli --help per confermare che è disponibile.

Per rimuoverlo in seguito, fai clic su Disinstalla spcli nella stessa riga.

Verificare l’installazione

spcli --version
spcli --help

Riferimento dei comandi

Digita spcli, poi un comando. Metti tra virgolette i nomi di connessione e di gruppo.

spcli start

Avvia Secure Pipes senza mostrare la finestra.

spcli start

spcli show

Mostra e attiva la finestra di Secure Pipes.

spcli show

spcli hide

Nasconde le finestre di Secure Pipes mentre le connessioni restano in esecuzione.

spcli hide

spcli shutdown

Chiude Secure Pipes e interrompe le connessioni attive.

spcli shutdown

spcli list connections

Elenca le connessioni configurate. Aggiungi --json per un output leggibile dalla macchina.

spcli list connections

spcli list groups

Elenca i tag usati come gruppi di connessioni. Aggiungi --json per un output leggibile dalla macchina.

spcli list groups

spcli connect "<connection>"

Avvia una connessione salvata.

spcli connect "Build Tunnel (Local Forward)"

spcli disconnect "<connection>"

Interrompe una connessione salvata.

spcli disconnect "Build Tunnel (Local Forward)"

spcli status "<connection>"

Mostra lo stato attuale di una connessione.

spcli status "Build Tunnel (Local Forward)"

spcli connect-group "<group>"

Avvia un gruppo con le impostazioni salvate.

spcli connect-group "engineering"

spcli disconnect-group "<group>"

Arresta il gruppo e le connessioni dei membri.

spcli disconnect-group "engineering"

spcli list task-plans

Elencare piani senza restituire credenziali.

spcli list task-plans --json

spcli create-task-plan '<JSON>'

Creare piano validato da JSON. Usa ID connessione/gruppo, senza credenziali.

spcli create-task-plan '{"id":"work-start","hour":9,"minute":0,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'

spcli update-task-plan '<JSON>'

Aggiornare con ID esistente e campi da salvare.

spcli update-task-plan '{"id":"work-start","hour":8,"minute":45,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'

spcli enable-task-plan "<ID>"

Attivare, disattivare o provare subito un piano salvato.

spcli enable-task-plan "work-start"
spcli disable-task-plan "work-start"
spcli run-task-plan "work-start"

Opzioni

--json

Output JSON leggibile automaticamente per i comandi supportati.

--help

Mostra il testo d’uso completo.

--version

Mostra la versione di spcli.

Codici d’uscita

0 riuscito, 1 Secure Pipes ha segnalato un errore, 2 uso non valido, 3 Secure Pipes non trovato o autorizzazione di automazione negata, 4 impossibile inviare l’Apple Event.

Regole e scenari d’uso

Usa un ID o un nome univoco per modificare una regola o cambiare scenario. Il cambio interrompe e ristabilisce le connessioni attive. Eliminare uno scenario conserva le sue regole; quelle senza altri scenari diventano comuni.

spcli list rules

Elenca le regole in ordine con ID, nome, stato di attivazione, azione e ID degli scenari.

spcli list rules --json

spcli list scenarios

Elenca gli scenari, incluso Universal, con ID, nome e stato attivo.

spcli list scenarios --json

spcli current-scenario

Mostra il nome dello scenario attualmente attivo.

spcli current-scenario

spcli switch-scenario "Office"

Cambia scenario tramite ID o nome univoco e riconnette le connessioni interessate con le regole selezionate.

spcli switch-scenario "Office"

spcli enable-rule "Work websites"

Attiva una regola tramite ID o nome univoco.

spcli enable-rule "Work websites"

spcli disable-rule "Work websites"

Disattiva una regola senza eliminarla.

spcli disable-rule "Work websites"

spcli set-rule-scenarios "Work websites" "Office" "Travel"

Sostituisce gli scenari assegnati a una regola. Universal la rende una regola universale.

spcli set-rule-scenarios "Work websites" "Office" "Travel"

spcli create-scenario "Travel"

Crea uno scenario con nome univoco e restituisce il suo ID.

spcli create-scenario "Travel"

spcli rename-scenario "Travel" "Mobile work"

Rinomina uno scenario mantenendo le assegnazioni delle regole.

spcli rename-scenario "Travel" "Mobile work"

spcli delete-scenario "Travel"

Elimina uno scenario senza eliminare le sue regole. Le regole senza altri scenari diventano universali.

spcli delete-scenario "Travel"

Esempio completo

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 e condivisione di rete

La condivisione usa indirizzo, porta e autenticazione salvati. Se necessario, all’avvio si apre la finestra di conferma. La modalità gateway richiede ancora la conferma dei rischi e l’autorizzazione di macOS.

spcli list proxy-servers

Elenca i server proxy configurati con ID, nome, tipo e indirizzo, senza credenziali.

spcli list proxy-servers --json

spcli transparent-proxy-status

Mostra lo stato del proxy trasparente, dell'estensione di sistema e la corrispondenza delle versioni.

spcli transparent-proxy-status --json

spcli initialize-transparent-proxy

Installa o ripara l'estensione di sistema. macOS potrebbe richiedere l'autorizzazione; il proxy trasparente non viene avviato.

spcli initialize-transparent-proxy

spcli start-transparent-proxy

Avvia il proxy trasparente con le regole di instradamento correnti quando l'estensione è pronta.

spcli start-transparent-proxy

spcli stop-transparent-proxy

Arresta il proxy trasparente. La condivisione di rete dipende da questo servizio.

spcli stop-transparent-proxy

spcli sharing-status

Mostra lo stato della condivisione e del gateway. In esecuzione mostra le modalità attive; da fermo, quelle salvate.

spcli sharing-status --json

spcli set-sharing-modes both

Seleziona proxy, gateway, entrambi o disattivato per il prossimo avvio manuale. Arresta la condivisione prima di cambiare modalità.

spcli set-sharing-modes both

spcli start-sharing

Avvia le modalità selezionate con indirizzo, porta e autenticazione salvati. Potrebbe essere necessaria una conferma.

spcli start-sharing

spcli stop-sharing

Arresta il gateway e il listener del proxy condiviso. Il proxy trasparente resta in esecuzione.

spcli stop-sharing

Esempio completo

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

Connessioni, attività e registri

Usa gli ID degli elenchi per individuare esattamente le voci. I dettagli vengono restituiti come testo JSON.

spcli group-status "engineering"

Mostra il risultato del gruppo e lo stato di ogni membro.

spcli group-status "engineering" --json

spcli connect-and-wait "Build Tunnel" 30

Attende che la connessione sia pronta; errori e timeout vengono segnalati.

spcli connect-and-wait "Build Tunnel" 30

spcli preview-route

Prevede la regola locale nello scenario corrente; non verifica la connettività.

spcli preview-route example.com 443 com.apple.Safari TCP --json

spcli test-proxy

Verifica un proxy salvato e restituisce risultato, motivo e durata.

spcli test-proxy "proxy-id" --json

spcli list proxy-flows

Mostra l’attività del proxy; LAN mostra la condivisione e ALL entrambe.

spcli list proxy-flows --json

spcli list sharing-flows

Mostra le connessioni della condivisione di rete.

spcli list sharing-flows --json

spcli end-flow

Chiude un flusso connesso tramite il suo ID.

spcli end-flow "flow-id"

spcli list logs

Mostra fino a 200 registri recenti privi di dati sensibili, dal più recente.

spcli list logs --json

spcli log-detail

Mostra il record completo di un registro recente tramite ID.

spcli log-detail "log-id" --json

Esempi dal Terminale

Combina spcli con i normali strumenti di shell per automatizzare i tuoi flussi di lavoro.

Elenca le connessioni

spcli list connections

Risultato di esempio

Build Tunnel (Local Forward), Debug DB (Remote Forward), Dev Box SOCKS (SOCKS Proxy)

Avvia una connessione e attendila

spcli connect "Build Tunnel (Local Forward)"
until [ "$(spcli status "Build Tunnel (Local Forward)")" = "connected" ]; do sleep 1; done
echo "Tunnel is up"

Una connessione può restare su authentication failed, unknown host key, host key changed, invalid o error; controlla lo stato prima di fidartene.

Avviare o interrompere un gruppo

spcli connect-group "engineering"
spcli disconnect-group "engineering"

Leggere lo stato in JSON

spcli status "Build Tunnel (Local Forward)" --json

Risultato di esempio

{ "connection" : "Build Tunnel (Local Forward)", "status" : "connected" }

Autorizzazione di automazione

La prima volta che il Terminale esegue spcli, macOS chiede di consentire al Terminale di controllare Secure Pipes. Consenti in Impostazioni di Sistema > Privacy e sicurezza > Automazione.

Guida completa di spcli (originale inglese dell’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

Basato su Secure Pipes 2.0.17 · Aggiornato il 9 novembre 2026