As capturas mostram a interface em inglês; os diagramas seguem o idioma do guia. Os nomes dos controles podem variar conforme o idioma escolhido no app.
spcli — Referência de comandos
Consulte as mesmas descrições de comandos e exemplos para copiar da seção Automação do app para Mac. As referências incluem os comandos existentes e as adições da versão 2.0.17.

Todas as explicações e scripts completos são sincronizados da referência incluída no app. Troque nomes e IDs de exemplo antes de executar. Os exemplos podem alterar conexões e ajustes reais; não execute a página inteira como um script.
Área de trabalho remota
spcli list remote-desktops --json
Listar conexões RDP/VNC salvas.
spcli list remote-desktops --json
spcli get-remote-desktop "<ID>"
Ler uma conexão por ID, sem credenciais.
spcli get-remote-desktop "DESKTOP-ID"
spcli create-remote-desktop <JSON>
Criar com name e values. Use hostProfileUUID para um 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>
Atualizar por id; name e values são opcionais.
spcli update-remote-desktop '{"id":"DESKTOP-ID","values":{"remoteDesktopOptions":{"screen mode id":1,"audiomode":2}}}'
spcli open-remote-desktop "<ID>"
Iniciar o túnel SSH se necessário e abrir o cliente RDP/VNC salvo.
spcli open-remote-desktop "DESKTOP-ID"
spcli delete-remote-desktop "<ID>"
Excluir uma conexão desconectada pelo ID.
spcli delete-remote-desktop "DESKTOP-ID"
Nomes de usuário podem ser gravados, mas nunca são retornados. Defina senhas SSH e arquivos de identidade no Secure Pipes; digite a senha da área de trabalho no cliente.
Sobre o spcli
O spcli é uma pequena ferramenta de linha de comando incluída no Secure Pipes. Ele controla o Secure Pipes direto pelo Terminal, para que você possa iniciar, parar e verificar conexões salvas em scripts de shell, aliases ou tarefas agendadas.
O spcli usa os mesmos comandos AppleScript e a permissão de automação. Iniciar o compartilhamento de rede pode abrir a janela de confirmação.
Instalar o spcli
O spcli vem com o Secure Pipes, mas só aparece no seu PATH depois de instalado. Use a linha da ferramenta de linha de comando abaixo de Backup em Preferências > Geral.
Clique em Instalar spcli. O Secure Pipes cria um link do spcli em uma pasta do seu PATH, como /usr/local/bin ou /opt/homebrew/bin.
Se a pasta exigir permissão, aprove a solicitação única de administrador.
Abra uma nova janela do Terminal e execute spcli --help para confirmar que está disponível.
Para removê-lo depois, clique em Desinstalar spcli na mesma linha.
Verificar a instalação
spcli --version
spcli --help
Referência de comandos
Digite spcli e depois um comando. Coloque entre aspas os nomes de conexão e de grupo.
spcli start
Inicia o Secure Pipes sem mostrar a janela.
spcli start
spcli show
Mostra e ativa a janela do Secure Pipes.
spcli show
spcli hide
Oculta as janelas do Secure Pipes enquanto as conexões continuam ativas.
spcli hide
spcli shutdown
Encerra o Secure Pipes e para as conexões ativas.
spcli shutdown
spcli list connections
Lista as conexões configuradas. Adicione --json para uma saída legível por máquina.
spcli list connections
spcli list groups
Lista as tags usadas como grupos de conexões. Adicione --json para uma saída legível por máquina.
spcli list groups
spcli connect "<connection>"
Inicia uma conexão salva.
spcli connect "Build Tunnel (Local Forward)"
spcli disconnect "<connection>"
Para uma conexão salva.
spcli disconnect "Build Tunnel (Local Forward)"
spcli status "<connection>"
Mostra o estado atual de uma conexão.
spcli status "Build Tunnel (Local Forward)"
spcli connect-group "<group>"
Inicia um grupo com as configurações salvas.
spcli connect-group "engineering"
spcli disconnect-group "<group>"
Para o grupo e as conexões de seus membros.
spcli disconnect-group "engineering"
spcli list task-plans
Listar planos sem retornar credenciais.
spcli list task-plans --json
spcli create-task-plan '<JSON>'
Criar plano validado de JSON. Use IDs de conexão/grupo, sem credenciais.
spcli create-task-plan '{"id":"work-start","hour":9,"minute":0,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli update-task-plan '<JSON>'
Atualizar com ID existente e campos a salvar.
spcli update-task-plan '{"id":"work-start","hour":8,"minute":45,"repeat":2,"actions":[{"type":"start_group","id":"work"}]}'
spcli enable-task-plan "<ID>"
Ativar, desativar ou testar imediatamente um plano salvo.
spcli enable-task-plan "work-start"
spcli disable-task-plan "work-start"
spcli run-task-plan "work-start"
Opções
--json
Saída JSON legível por máquina para os comandos compatíveis.
--help
Mostra o texto de uso completo.
--version
Mostra a versão do spcli.
Códigos de saída
0 sucesso, 1 o Secure Pipes informou um erro, 2 uso inválido, 3 Secure Pipes não encontrado ou permissão de automação negada, 4 o Apple Event não pôde ser enviado.
Regras e cenários de uso
Use um ID ou um nome exclusivo para alterar regras ou trocar de cenário. A troca encerra e restabelece as conexões ativas. Excluir um cenário mantém suas regras; as que não pertencem a outro cenário tornam-se comuns.
spcli list rules
Lista as regras em ordem com ID, nome, estado, ação e IDs de cenários.
spcli list rules --json
spcli list scenarios
Lista os cenários, incluindo Universal, com ID, nome e estado ativo.
spcli list scenarios --json
spcli current-scenario
Mostra o nome do cenário atualmente ativo.
spcli current-scenario
spcli switch-scenario "Office"
Troca o cenário por ID ou nome único e reconecta as conexões afetadas com as regras selecionadas.
spcli switch-scenario "Office"
spcli enable-rule "Work websites"
Ativa uma regra por ID ou nome único.
spcli enable-rule "Work websites"
spcli disable-rule "Work websites"
Desativa uma regra sem excluí-la.
spcli disable-rule "Work websites"
spcli set-rule-scenarios "Work websites" "Office" "Travel"
Substitui os cenários atribuídos a uma regra. Universal torna a regra universal.
spcli set-rule-scenarios "Work websites" "Office" "Travel"
spcli create-scenario "Travel"
Cria um cenário com nome único e retorna seu ID.
spcli create-scenario "Travel"
spcli rename-scenario "Travel" "Mobile work"
Renomeia um cenário mantendo suas atribuições de regras.
spcli rename-scenario "Travel" "Mobile work"
spcli delete-scenario "Travel"
Exclui um cenário sem excluir suas regras. Regras sem outro cenário tornam-se universais.
spcli delete-scenario "Travel"
Exemplo 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 compartilhamento de rede
O compartilhamento usa o endereço, a porta e a autenticação salvos. A janela de confirmação é aberta quando necessário. O modo gateway ainda exige confirmação de riscos e autorização do macOS.
spcli list proxy-servers
Lista os servidores proxy configurados com ID, nome, tipo e endereço, sem credenciais.
spcli list proxy-servers --json
spcli transparent-proxy-status
Mostra o estado do proxy transparente, da extensão do sistema e a compatibilidade das versões.
spcli transparent-proxy-status --json
spcli initialize-transparent-proxy
Instala ou repara a extensão do sistema. O macOS pode pedir aprovação; isso não inicia o proxy transparente.
spcli initialize-transparent-proxy
spcli start-transparent-proxy
Inicia o proxy transparente com as regras de roteamento atuais quando a extensão estiver pronta.
spcli start-transparent-proxy
spcli stop-transparent-proxy
Para o proxy transparente. O compartilhamento de rede depende desse serviço.
spcli stop-transparent-proxy
spcli sharing-status
Mostra os estados do compartilhamento e do gateway. Em execução, os modos são os efetivos; parado, são os salvos.
spcli sharing-status --json
spcli set-sharing-modes both
Seleciona proxy, gateway, ambos ou desativado para a próxima inicialização manual. Pare o compartilhamento antes de alterar os modos.
spcli set-sharing-modes both
spcli start-sharing
Inicia os modos selecionados com o endereço, a porta e a autenticação salvos. Pode ser necessária confirmação.
spcli start-sharing
spcli stop-sharing
Para o gateway e o listener do proxy compartilhado. O proxy transparente continua em execução.
spcli stop-sharing
Exemplo 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
Conexões, atividade e logs
Use os IDs das listas para consultar itens com precisão. Os detalhes são retornados como texto JSON.
spcli group-status "engineering"
Mostra o resultado do grupo e o estado de cada membro.
spcli group-status "engineering" --json
spcli connect-and-wait "Build Tunnel" 30
Aguarda a conexão ficar pronta; falha ou tempo esgotado retorna um erro.
spcli connect-and-wait "Build Tunnel" 30
spcli preview-route
Prevê a regra local no cenário atual; não testa a conectividade.
spcli preview-route example.com 443 com.apple.Safari TCP --json
spcli test-proxy
Testa um proxy salvo e retorna resultado, motivo e duração.
spcli test-proxy "proxy-id" --json
spcli list proxy-flows
Mostra a atividade do proxy; LAN mostra o compartilhamento e ALL mostra ambos.
spcli list proxy-flows --json
spcli list sharing-flows
Mostra as conexões do compartilhamento de rede.
spcli list sharing-flows --json
spcli end-flow
Encerra um fluxo conectado pelo ID.
spcli end-flow "flow-id"
spcli list logs
Mostra até 200 logs recentes sem dados sensíveis, do mais novo para o mais antigo.
spcli list logs --json
spcli log-detail
Mostra o registro completo de um log recente pelo ID.
spcli log-detail "log-id" --json
Exemplos no Terminal
Combine o spcli com ferramentas de shell comuns para automatizar seus fluxos de trabalho.
Listar conexões
spcli list connections
Exemplo de resultado
Build Tunnel (Local Forward), Debug DB (Remote Forward), Dev Box SOCKS (SOCKS Proxy)
Iniciar uma conexão e aguardar
spcli connect "Build Tunnel (Local Forward)"
until [ "$(spcli status "Build Tunnel (Local Forward)")" = "connected" ]; do sleep 1; done
echo "Tunnel is up"
Uma conexão também pode parar em authentication failed, unknown host key, host key changed, invalid ou error; verifique o estado antes de depender dela.
Iniciar ou parar um grupo
spcli connect-group "engineering"
spcli disconnect-group "engineering"
Ler o estado como JSON
spcli status "Build Tunnel (Local Forward)" --json
Exemplo de resultado
{ "connection" : "Build Tunnel (Local Forward)", "status" : "connected" }
Permissão de automação
Na primeira vez que o Terminal executa o spcli, o macOS pergunta se o Terminal pode controlar o Secure Pipes. Permita em Ajustes do Sistema > Privacidade e Segurança > Automação.
Ajuda completa do spcli (original em inglês do 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
Baseado em Secure Pipes 2.0.17 · Atualizado em 9 de novembro de 2026