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

Описания всех команд и полные примеры синхронизированы со встроенной справкой 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 г.