Las capturas muestran la interfaz en inglés; los diagramas siguen el idioma de la guía. Los nombres de los controles pueden variar según el idioma de la app.
spcli — Referencia de comandos
Consulta las mismas descripciones de comandos y ejemplos que puedes copiar desde Automatización en la app para Mac. Las referencias incluyen los comandos existentes y las novedades de 2.0.17.

Se sincronizan todas las explicaciones y los scripts completos desde la referencia integrada en la app. Sustituye los nombres e ID de ejemplo antes de ejecutar. Los ejemplos pueden modificar conexiones y ajustes reales; no ejecutes toda la página como un script.
Escritorio remoto
spcli list remote-desktops --json
Listar las conexiones RDP/VNC guardadas.
spcli list remote-desktops --json
spcli get-remote-desktop "<ID>"
Leer una conexión por ID, sin credenciales.
spcli get-remote-desktop "DESKTOP-ID"
spcli create-remote-desktop <JSON>
Crear con name y values. Usa hostProfileUUID para un host predefinido.
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>
Actualizar por id; name y values son opcionales.
spcli update-remote-desktop '{"id":"DESKTOP-ID","values":{"remoteDesktopOptions":{"screen mode id":1,"audiomode":2}}}'
spcli open-remote-desktop "<ID>"
Iniciar el túnel SSH si es necesario y abrir el cliente RDP/VNC guardado.
spcli open-remote-desktop "DESKTOP-ID"
spcli delete-remote-desktop "<ID>"
Eliminar por ID una conexión desconectada.
spcli delete-remote-desktop "DESKTOP-ID"
Se pueden escribir nombres de usuario, pero nunca se devuelven. Configura las contraseñas SSH y los archivos de identidad en Secure Pipes; introduce la contraseña del escritorio en el cliente.
Acerca de spcli
spcli es una pequeña herramienta de línea de comandos incluida con Secure Pipes. Controla Secure Pipes directamente desde Terminal, para que puedas iniciar, detener y consultar conexiones guardadas desde scripts de shell, alias o tareas programadas.
spcli usa los mismos comandos AppleScript y el permiso de automatización. Al iniciar el uso compartido de red puede abrirse la ventana de confirmación.
Instalar spcli
spcli se incluye con Secure Pipes, pero no está en tu PATH hasta que lo instales. Usa la fila de la herramienta de línea de comandos bajo Copia de seguridad en Ajustes > General.
Haz clic en «Instalar spcli». Secure Pipes enlaza spcli en una carpeta de tu PATH, como /usr/local/bin u /opt/homebrew/bin.
Si la carpeta requiere permisos, aprueba el aviso de administrador único.
Abre una nueva ventana de Terminal y ejecuta spcli --help para confirmar que está disponible.
Para quitarlo más tarde, haz clic en «Desinstalar spcli» en la misma fila.
Comprobar la instalación
spcli --version
spcli --help
Referencia de comandos
Escribe spcli y luego un comando. Entre comillas van los nombres de conexión y de grupo.
spcli start
Inicia Secure Pipes sin mostrar la ventana.
spcli start
spcli show
Muestra y activa la ventana de Secure Pipes.
spcli show
spcli hide
Oculta las ventanas de Secure Pipes mientras las conexiones siguen activas.
spcli hide
spcli shutdown
Cierra Secure Pipes y detiene las conexiones activas.
spcli shutdown
spcli list connections
Lista las conexiones configuradas. Añade --json para una salida legible por máquina.
spcli list connections
spcli list groups
Lista las etiquetas usadas como grupos de conexiones. Añade --json para una salida legible por máquina.
spcli list groups
spcli connect "<connection>"
Inicia una conexión guardada.
spcli connect "Build Tunnel (Local Forward)"
spcli disconnect "<connection>"
Detiene una conexión guardada.
spcli disconnect "Build Tunnel (Local Forward)"
spcli status "<connection>"
Muestra el estado actual de una conexión.
spcli status "Build Tunnel (Local Forward)"
spcli connect-group "<group>"
Inicia un grupo con sus ajustes guardados.
spcli connect-group "engineering"
spcli disconnect-group "<group>"
Detiene el grupo y las conexiones de sus miembros.
spcli disconnect-group "engineering"
spcli list task-plans
Listar planes sin devolver credenciales.
spcli list task-plans --json
spcli create-task-plan '<JSON>'
Crear un plan validado desde JSON. Usa ID de conexión/grupo, sin credenciales.
spcli create-task-plan '{"id":"work-start","hour":9,"minute":0,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli update-task-plan '<JSON>'
Actualizar con el ID existente y campos que guardar.
spcli update-task-plan '{"id":"work-start","hour":8,"minute":45,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli enable-task-plan "<ID>"
Activar, desactivar o probar inmediatamente un plan guardado.
spcli enable-task-plan "work-start"
spcli disable-task-plan "work-start"
spcli run-task-plan "work-start"
Opciones
--json
Salida JSON legible por máquina para los comandos compatibles.
--help
Muestra el texto de uso completo.
--version
Muestra la versión de spcli.
Códigos de salida
0 éxito, 1 Secure Pipes informó un error, 2 uso no válido, 3 Secure Pipes no encontrado o permiso de automatización denegado, 4 no se pudo enviar el Apple Event.
Reglas y escenarios de uso
Use un ID o un nombre único para modificar reglas o cambiar de escenario. Al cambiar, las conexiones activas se cierran y se vuelven a establecer. Al eliminar un escenario se conservan sus reglas; las que no pertenezcan a otro escenario pasan a ser comunes.
spcli list rules
Enumera las reglas en orden con ID, nombre, estado, acción e ID de escenarios.
spcli list rules --json
spcli list scenarios
Enumera los escenarios, incluido Universal, con ID, nombre y estado activo.
spcli list scenarios --json
spcli current-scenario
Muestra el nombre del escenario actualmente activo.
spcli current-scenario
spcli switch-scenario "Office"
Cambia de escenario por ID o nombre único y reconecta las conexiones afectadas con las reglas elegidas.
spcli switch-scenario "Office"
spcli enable-rule "Work websites"
Activa una regla por ID o nombre único.
spcli enable-rule "Work websites"
spcli disable-rule "Work websites"
Desactiva una regla sin eliminarla.
spcli disable-rule "Work websites"
spcli set-rule-scenarios "Work websites" "Office" "Travel"
Sustituye los escenarios asignados a una regla. Universal la convierte en regla universal.
spcli set-rule-scenarios "Work websites" "Office" "Travel"
spcli create-scenario "Travel"
Crea un escenario con nombre único y devuelve su ID.
spcli create-scenario "Travel"
spcli rename-scenario "Travel" "Mobile work"
Cambia el nombre de un escenario conservando sus asignaciones de reglas.
spcli rename-scenario "Travel" "Mobile work"
spcli delete-scenario "Travel"
Elimina un escenario sin borrar sus reglas. Las reglas sin otro escenario pasan a ser universales.
spcli delete-scenario "Travel"
Ejemplo 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 y uso compartido de red
El uso compartido utiliza la dirección, el puerto y la autenticación guardados. Al iniciarlo se abre la ventana de confirmación cuando hace falta. El modo de puerta de enlace sigue requiriendo la confirmación de riesgos y la autorización de macOS.
spcli list proxy-servers
Enumera los servidores proxy configurados con ID, nombre, tipo y dirección, sin credenciales.
spcli list proxy-servers --json
spcli transparent-proxy-status
Muestra el estado del proxy transparente, el de la extensión del sistema y si coinciden las versiones.
spcli transparent-proxy-status --json
spcli initialize-transparent-proxy
Instala o repara la extensión del sistema. macOS puede solicitar autorización; no inicia el proxy transparente.
spcli initialize-transparent-proxy
spcli start-transparent-proxy
Inicia el proxy transparente con las reglas de enrutamiento actuales cuando la extensión esté lista.
spcli start-transparent-proxy
spcli stop-transparent-proxy
Detiene el proxy transparente. El uso compartido de red depende de este servicio.
spcli stop-transparent-proxy
spcli sharing-status
Muestra los estados del uso compartido y la puerta de enlace. Durante la ejecución, los modos son los activos; al detenerse, los guardados.
spcli sharing-status --json
spcli set-sharing-modes both
Selecciona proxy, puerta de enlace, ambos o desactivado para el próximo inicio manual. Detenga el uso compartido antes de cambiar de modo.
spcli set-sharing-modes both
spcli start-sharing
Inicia los modos seleccionados con la dirección, el puerto y la autenticación guardados. Puede requerir confirmación.
spcli start-sharing
spcli stop-sharing
Detiene la puerta de enlace y el listener del proxy compartido. El proxy transparente sigue funcionando.
spcli stop-sharing
Ejemplo 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
Conexiones, actividad y registros
Usa los ID de las listas para consultar elementos con precisión. Los detalles se devuelven como texto JSON.
spcli group-status "engineering"
Muestra el resultado del grupo y el estado de cada miembro.
spcli group-status "engineering" --json
spcli connect-and-wait "Build Tunnel" 30
Espera a que la conexión esté lista; un fallo o tiempo agotado devuelve un error.
spcli connect-and-wait "Build Tunnel" 30
spcli preview-route
Predice la regla local del escenario actual; no prueba la conectividad.
spcli preview-route example.com 443 com.apple.Safari TCP --json
spcli test-proxy
Prueba un proxy guardado y devuelve el resultado, el motivo y la duración.
spcli test-proxy "proxy-id" --json
spcli list proxy-flows
Muestra la actividad del proxy; LAN muestra el uso compartido y ALL ambos.
spcli list proxy-flows --json
spcli list sharing-flows
Muestra las conexiones de red compartida.
spcli list sharing-flows --json
spcli end-flow
Cierra un flujo conectado mediante su ID.
spcli end-flow "flow-id"
spcli list logs
Muestra hasta 200 registros recientes depurados, primero los más nuevos.
spcli list logs --json
spcli log-detail
Muestra el registro reciente completo mediante su ID.
spcli log-detail "log-id" --json
Ejemplos en Terminal
Combina spcli con herramientas de shell habituales para automatizar tus flujos de trabajo.
Listar conexiones
spcli list connections
Resultado de ejemplo
Build Tunnel (Local Forward), Debug DB (Remote Forward), Dev Box SOCKS (SOCKS Proxy)
Iniciar una conexión y esperar
spcli connect "Build Tunnel (Local Forward)"
until [ "$(spcli status "Build Tunnel (Local Forward)")" = "connected" ]; do sleep 1; done
echo "Tunnel is up"
Una conexión también puede quedarse en authentication failed, unknown host key, host key changed, invalid o error; comprueba el estado antes de confiar en ella.
Iniciar o detener un grupo
spcli connect-group "engineering"
spcli disconnect-group "engineering"
Leer el estado como JSON
spcli status "Build Tunnel (Local Forward)" --json
Resultado de ejemplo
{ "connection" : "Build Tunnel (Local Forward)", "status" : "connected" }
Permiso de automatización
La primera vez que Terminal ejecuta spcli, macOS te pide permitir que Terminal controle Secure Pipes. Concédelo en Ajustes del Sistema > Privacidad y seguridad > Automatización.
Ayuda completa de spcli (original inglés de la 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
Basado en Secure Pipes 2.0.17 · Actualizado el 9 de noviembre de 2026