SECURE PIPES 2 Руководство пользователя

Снимки показывают английский интерфейс; схемы отображаются на языке руководства. Названия элементов в приложении могут отличаться в зависимости от выбранного языка.

spcli — Справочник команд

Описания команд и примеры для копирования соответствуют разделу автоматизации в приложении для Mac. Справочники включают существующие команды и дополнения версии 2.0.17.

Справочник команд spcli

Описания всех команд и полные примеры синхронизированы со встроенной справкой Mac. Перед запуском замените имена и ID из примеров. Они могут менять реальные подключения и настройки; не запускайте всю страницу как один сценарий.

Удалённый рабочий стол

spcli list remote-desktops --json

Список сохранённых подключений RDP/VNC.

spcli list remote-desktops --json

spcli get-remote-desktop "<ID>"

Получить подключение по ID без учётных данных.

spcli get-remote-desktop "DESKTOP-ID"

spcli create-remote-desktop <JSON>

Создать с помощью name и values. Для заданного хоста укажите hostProfileUUID.

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>

Обновить по id; name и values необязательны.

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

spcli open-remote-desktop "<ID>"

При необходимости запустить SSH-туннель, затем открыть сохранённый клиент RDP/VNC.

spcli open-remote-desktop "DESKTOP-ID"

spcli delete-remote-desktop "<ID>"

Удалить отключённое подключение по ID.

spcli delete-remote-desktop "DESKTOP-ID"

Имена пользователей можно записывать, но они никогда не возвращаются. Пароли SSH и файлы ключей задаются в Secure Pipes; пароль рабочего стола вводится в клиенте.

О spcli

spcli — небольшая утилита командной строки, входящая в состав Secure Pipes. Она управляет Secure Pipes прямо из Терминала, поэтому вы можете запускать, останавливать и просматривать сохранённые подключения в shell-скриптах, псевдонимах или запланированных задачах.

spcli использует те же команды AppleScript и разрешение автоматизации. При запуске общего доступа к сети может открыться окно подтверждения.

Установка spcli

spcli поставляется вместе с Secure Pipes, но появляется в вашем PATH только после установки. Используйте строку инструмента командной строки под разделом «Резервная копия» в настройках «Основные».

  • Нажмите «Установить spcli». Secure Pipes создаёт ссылку на spcli в папке вашего PATH, например /usr/local/bin или /opt/homebrew/bin.

  • Если папка требует прав, одобрите одноразовый запрос администратора.

  • Откройте новое окно Терминала и выполните spcli --help, чтобы убедиться в доступности.

Чтобы позже удалить его, нажмите «Удалить spcli» в той же строке.

Проверка установки

spcli --version
spcli --help

Справочник команд

Введите spcli, затем команду. Имена подключений и групп заключайте в кавычки.

spcli start

Запускает Secure Pipes без отображения окна.

spcli start

spcli show

Показывает и активирует окно Secure Pipes.

spcli show

spcli hide

Скрывает окна Secure Pipes, оставляя подключения активными.

spcli hide

spcli shutdown

Завершает Secure Pipes и останавливает активные подключения.

spcli shutdown

spcli list connections

Показывает настроенные подключения. Добавьте --json для машиночитаемого вывода.

spcli list connections

spcli list groups

Показывает теги, используемые как группы подключений. Добавьте --json для машиночитаемого вывода.

spcli list groups

spcli connect "<connection>"

Запускает сохранённое подключение.

spcli connect "Build Tunnel (Local Forward)"

spcli disconnect "<connection>"

Останавливает сохранённое подключение.

spcli disconnect "Build Tunnel (Local Forward)"

spcli status "<connection>"

Показывает текущее состояние подключения.

spcli status "Build Tunnel (Local Forward)"

spcli connect-group "<group>"

Запускает группу с сохранёнными настройками.

spcli connect-group "engineering"

spcli disconnect-group "<group>"

Останавливает группу и подключения её участников.

spcli disconnect-group "engineering"

spcli list task-plans

Показать планы без учётных данных.

spcli list task-plans --json

spcli create-task-plan '<JSON>'

Создать проверенный план из JSON. Используйте ID подключений/групп, без учётных данных.

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

spcli update-task-plan '<JSON>'

Обновить по существующему ID и сохраняемым полям.

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

spcli enable-task-plan "<ID>"

Включить, отключить или немедленно испытать сохранённый план.

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

Параметры

--json

Машиночитаемый JSON для поддерживаемых команд.

--help

Показывает полное описание использования.

--version

Показывает версию spcli.

Коды завершения

0 — успех, 1 — Secure Pipes сообщил об ошибке, 2 — неверное использование, 3 — Secure Pipes не найден или отказано в разрешении на автоматизацию, 4 — не удалось отправить Apple Event.

Правила и сценарии использования

Для изменения правил или переключения сценария используйте ID либо уникальное имя. При переключении активные подключения разрываются и устанавливаются заново. При удалении сценария его правила сохраняются; правила без других сценариев становятся общими.

spcli list rules

Показывает правила по порядку с ID, именем, состоянием, действием и ID сценариев.

spcli list rules --json

spcli list scenarios

Показывает сценарии, включая Universal, с ID, именем и состоянием активности.

spcli list scenarios --json

spcli current-scenario

Показывает имя активного сценария.

spcli current-scenario

spcli switch-scenario "Office"

Переключает сценарий по ID или уникальному имени и переподключает затронутые соединения по выбранным правилам.

spcli switch-scenario "Office"

spcli enable-rule "Work websites"

Включает правило по ID или уникальному имени.

spcli enable-rule "Work websites"

spcli disable-rule "Work websites"

Отключает правило, не удаляя его.

spcli disable-rule "Work websites"

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

Заменяет назначенные правилу сценарии. Universal делает правило универсальным.

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

spcli create-scenario "Travel"

Создаёт сценарий с уникальным именем и возвращает его ID.

spcli create-scenario "Travel"

spcli rename-scenario "Travel" "Mobile work"

Переименовывает сценарий, сохраняя назначения правил.

spcli rename-scenario "Travel" "Mobile work"

spcli delete-scenario "Travel"

Удаляет сценарий, но сохраняет его правила. Правила без других сценариев становятся универсальными.

spcli delete-scenario "Travel"

Полный пример

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"

Прокси и общий доступ к сети

Общий доступ использует сохранённые адрес, порт и параметры аутентификации. При необходимости открывается окно подтверждения. Для режима шлюза по-прежнему нужны подтверждение рисков и разрешение macOS.

spcli list proxy-servers

Показывает настроенные прокси-серверы: ID, имя, тип и адрес, без учётных данных.

spcli list proxy-servers --json

spcli transparent-proxy-status

Показывает состояние прозрачного прокси и системного расширения, а также соответствие версий.

spcli transparent-proxy-status --json

spcli initialize-transparent-proxy

Устанавливает или восстанавливает системное расширение. macOS может запросить разрешение; прозрачный прокси не запускается.

spcli initialize-transparent-proxy

spcli start-transparent-proxy

Запускает прозрачный прокси с текущими правилами маршрутизации после подготовки расширения.

spcli start-transparent-proxy

spcli stop-transparent-proxy

Останавливает прозрачный прокси. Общий доступ к сети зависит от этой службы.

spcli stop-transparent-proxy

spcli sharing-status

Показывает состояние общего доступа и шлюза. Во время работы отображаются действующие режимы, после остановки — сохранённые.

spcli sharing-status --json

spcli set-sharing-modes both

Выбирает прокси, шлюз, оба режима или отключение для следующего ручного запуска. Перед сменой режима остановите общий доступ.

spcli set-sharing-modes both

spcli start-sharing

Запускает выбранные режимы с сохранёнными адресом, портом и параметрами аутентификации. Может потребоваться подтверждение.

spcli start-sharing

spcli stop-sharing

Останавливает шлюз и общий прокси-сервер. Прозрачный прокси продолжает работать.

spcli stop-sharing

Полный пример

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

Подключения, активность и журналы

Используйте ID из списков для точного поиска. Подробности возвращаются как текст JSON.

spcli group-status "engineering"

Показывает результат группы и состояние каждого участника.

spcli group-status "engineering" --json

spcli connect-and-wait "Build Tunnel" 30

Ждёт готовности подключения; сбой или тайм-аут возвращает ошибку.

spcli connect-and-wait "Build Tunnel" 30

spcli preview-route

Предсказывает локальное правило в текущем сценарии; доступность не проверяется.

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

spcli test-proxy

Проверяет сохранённый прокси и возвращает результат, причину и время.

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

spcli list proxy-flows

Показывает активность прокси; LAN — общий доступ, ALL — оба вида.

spcli list proxy-flows --json

spcli list sharing-flows

Показывает подключения общего доступа к сети.

spcli list sharing-flows --json

spcli end-flow

Закрывает активный поток по его ID.

spcli end-flow "flow-id"

spcli list logs

Показывает до 200 последних очищенных записей журнала, начиная с новых.

spcli list logs --json

spcli log-detail

Показывает полную недавнюю запись журнала по ID.

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

Примеры в Терминале

Комбинируйте spcli с обычными shell-инструментами, чтобы автоматизировать свои рабочие процессы.

Список подключений

spcli list connections

Пример результата

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

Запуск подключения и ожидание

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

Подключение также может остановиться на authentication failed, unknown host key, host key changed, invalid или error, поэтому проверяйте состояние, прежде чем полагаться на него.

Запуск или остановка группы

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

Чтение состояния в JSON

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

Пример результата

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

Разрешение на автоматизацию

Когда Терминал впервые запускает spcli, macOS спрашивает, разрешить ли Терминалу управлять Secure Pipes. Разрешите это в «Системные настройки» > «Конфиденциальность и безопасность» > «Автоматизация».

Полная справка spcli (английский оригинал приложения)

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

На основе Secure Pipes 2.0.17 · Обновлено 9 ноября 2026 г.