SECURE PIPES 2 Guia do usuário

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.

Referência de comandos spcli

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