画面写真は英語のインターフェイスを使用しています。図はガイドの言語に切り替わります。アプリの表示言語によって、コントロール名が異なる場合があります。
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 を操作できるため、シェルスクリプト、エイリアス、定期実行ジョブから保存済みの接続を開始、停止、確認できます。
spcli は同じ AppleScript コマンドと自動化の許可を使用します。ネットワーク共有の開始時には確認ウィンドウが開くことがあります。
spcli をインストール
spcli は Secure Pipes に同梱されていますが、インストールするまで PATH に登録されません。環境設定 > 一般の「バックアップ」下にあるコマンドラインツールの行からインストールまたは削除できます。
「spcli をインストール」をクリックします。Secure Pipes は spcli を PATH 上のフォルダ(/usr/local/bin や /opt/homebrew/bin など)にリンクします。
そのフォルダに権限が必要な場合は、1 回だけ管理者認証を承認してください。
新しいターミナルウインドウを開き、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
共通シナリオを含むシナリオの 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 を通常シェルツールと組み合わせて、作業フローを自動化できます。
接続を一覧表示
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 に基づく · 2026 年 11 月 9 日更新