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 を操作できるため、シェルスクリプト、エイリアス、定期実行ジョブから保存済みの接続を開始、停止、確認できます。

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 日更新