コマンドライン
proxyman-cli で Terminal から Proxyman for macOS を操作します。ルールのエクスポートとインポート、ツールやシステムプロキシの切り替え、ログのエクスポート、証明書の管理ができます。
Proxyman for macOS には、Terminal や独自のスクリプトから Proxyman を操作できるコマンドラインツール proxyman-cli が付属しています ✅。
ツールには /Applications/Proxyman.app/Contents/MacOS/proxyman-cli からアクセスできます。
インストールされているバージョンで利用できるすべてのコマンドを確認するには、次のコマンドを実行します:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli --help
1. Proxyman の設定をエクスポート
SSL Proxying List、Breakpoint、Map Local、Scripting、Block List、Allow List、Reverse Proxy、Network Conditions など、すべてのデバッグツールのルールをエクスポートします。
$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli export -h
OVERVIEW: Export all debugging tools rules (Breakpoint, SSL Pinning, Map Local, Map
Remote, Scripting, etc).
USAGE: proxyman-cli export [--mode <mode>] --output <output>
OPTIONS:
-m, --mode <mode> Export Mode (all = "All debugging tools's rules", enabledRules
= "Only enabled rules"). (default: all)
-o, --output <output> A Output file to save the config to.
--version Show the version.
-h, --help Show help information.
デフォルトでは、export コマンドはすべてのルールをエクスポートします。特定のルールを除外するには、各デバッグツールの「Enabled」列のチェックを外し、-m enabledRules を使用してください。
使用例
- すべてのデバッグツールのルールをエクスポートする:
$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli export -o ~/Desktop/data.json
- 有効なルールのみをエクスポートする:
$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli export -m enabledRules -o ~/Desktop/data.json
2. Proxyman の設定をインポート
export コマンドでエクスポートした Proxyman のデバッグツールのルールをインポートします。
$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli import -h
OVERVIEW: Import config to Proxyman.
USAGE: proxyman-cli import [--mode <mode>] --input <input>
OPTIONS:
-m, --mode <mode> Import Mode (append = "Append to the existing rules"),
override = "Import and Replace all existing rules". (default:
append)
-i, --input <input> A input file to import.
--version Show the version.
-h, --help Show help information.
デフォルトでは、インポートされた新しいルールは既存のデバッグルールに追加されます。すべてのルールを上書きするには、-m override を使用します。
使用例
- 既存のルールに追加する形で、すべてのデバッグルールをインポートする:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli import -i ~/Desktop/data.json
- 既存のルールをすべて上書きしてインポートする:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli import -m override -i ~/Desktop/data.json
3. ライセンスの有効化・解除
ライセンスの有効化と解除のコマンドは、ライセンスのページをご覧ください。
4. HTTP システムプロキシの切り替え
Proxyman 4.8.0 以降では、コマンドラインから macOS の System Proxy をオン・オフできます。この機能は Raycast 拡張機能 でも使われています。
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli proxy on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli proxy off
参考:https://github.com/ProxymanApp/Proxyman/issues/1626#issuecomment-1545862020
5. セッションのクリア
- コマンドラインから現在の Session をクリアできます。Proxyman 4.12.0 以降で利用できます。
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli clear-session
6. デバッグツールのオン・オフ
- コマンドラインから Breakpoint、Map Local、Scripting ツールをオン・オフできます。Proxyman 4.12.0 以降で利用できます。
# Scripting
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli scripting on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli scripting off
# Map Local
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli maplocal on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli maplocal off
# Breakpoint
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli breakpoint on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli breakpoint off
- Proxyman macOS 6.3.0 以降では、同じ方法で
map-remote、block-list、allow-list、reverse-proxy、network-condition、no-caching、dns-spoofingも切り替えられます。 onやoffの代わりにopenを使うと、ツールのウィンドウを開けます。例:proxyman-cli map-remote open。no-cachingはonとoffのみに対応しています。- これらのコマンドを動作させるには、Proxyman が起動している必要があります。
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli map-remote on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli block-list off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-condition open
7. コマンドラインで Proxy Helper Tool をインストール
Proxyman macOS 4.12.0 以降では、GUI を使わずに Helper Tool をインストールできます。
sudo /Applications/Proxyman.app/Contents/MacOS/proxyman --install-privileged-components
8. Proxyman のログをエクスポート
Proxyman macOS v5.11.0 以降で、次の機能に対応しています:
- すべてをエクスポート(ProxymanSession 形式)
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m all -o "~/desktop/output"
- 特定のドメインをエクスポート(ホストのみを指定します。スキーム、ポート、パス、クエリは含めないでください)
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m domains -o "~/desktop/output" --domains 'api.twitter.com' --domains 'www.producthunt.com'
Proxyman macOS 5.20.0 以降では、Raw 形式または HAR 形式でエクスポートできます。
- すべてをエクスポート - RAW のリクエスト/レスポンス形式
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m all -o "~/desktop/output" --format raw
- すべてをエクスポート - HAR 形式
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m all -o "~/desktop/output" --format har
- 特定のドメインをエクスポート - RAW のリクエスト/レスポンス形式
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m domains -o "~/desktop/output" --domains 'api.twitter.com' --domains 'www.producthunt.com' --format raw
- 特定のドメインをエクスポート - HAR 形式
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m domains -o "~/desktop/output" --domains 'api.twitter.com' --domains 'www.producthunt.com' --format har
Proxyman macOS 6.2.0 以降では、--since <flow_id> を追加すると、指定したフロー ID 以降のフローだけをエクスポートできます(そのフロー ID のフローも含まれます)。すべてのエクスポート形式で使用できます。
--format で指定できる形式は、proxymansession(デフォルト)、har、raw です。
9. カスタムルート証明書をインポート
- ✅ カスタムの p12 ルート証明書を Proxyman にインポート
- システムキーチェーンで証明書を自動的に信頼します(sudo が必要)
- Proxyman macOS 5.15.0 以降で利用できます
インストールして信頼する
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli install-root-cert <certificate_path> --password <your_cert_password> --trust
信頼せずにインストールする(キーチェーンで手動で信頼が必要な場合があります)
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli install-root-cert <certificate_path> --password <your_cert_password>
10. 現在の IP とポートをエクスポート
- Proxyman macOS 6.7.0 以降で利用できます
- 現在の待ち受け IP とポートを JSON 形式で取得します
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli proxy-host
出力には ip と port のフィールドが含まれます。例:{"ip":"192.168.1.10","port":9090}。Proxyman が localhost でのみ待ち受けている場合、IP は 127.0.0.1 になります。
11. カスタム証明書(クライアントとサーバー)の追加・削除・置換
- Proxyman macOS 6.10.0 以降で利用できます ✅
- パスワード付きの P12 証明書に対応しています
- クライアント証明書の場合、
--portのデフォルトは443です
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert add server ~/Desktop/mycert.p12 --password 123
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert add client ~/Desktop/mycert.p12 --password 123 --host myserver.com --port 443
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert replace server ~/Desktop/mycert.p12 --password 123 --name mycert.p12
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert replace client ~/Desktop/mycert.p12 --password 123 --host myserver.com --port 443
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert remove server --name mycert.p12
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert remove client --host myserver.com --port 443
12. External Proxy の CLI
- Proxyman macOS 6.12.0 以降で利用できます ✅
有効化
保存済みの設定を変更せずに External Proxy を有効にします:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable
- プロキシモードを指定して有効にし、設定する:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable http --host proxy.example.com --port 8080
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable https --host proxy.example.com --port 8443
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable socks --host proxy.example.com --port 1080
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable pac --url https://example.com/proxy.pac
無効化
External Proxy 機能全体を無効にします:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable
- 特定のプロキシモードのみを無効にする:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable http
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable https
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable socks
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable pac
設定を開く
Proxyman で External Proxy の設定ウィンドウを開きます:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy open
13. すべてのデバッグツールの CRUD
Proxyman macOS 6.14.0 以降でのみ利用できます
対応ツール
block-list、allow-list、ssl-proxying、map-local、map-remote、breakpoint、scripting、network-condition、reverse-proxy、protobuf、dns-spoofing に対応しています。
よく使うコマンド
<tool> には対応ツールのいずれかを、<id> には list または get で取得したルール ID を指定します。
# Read rules
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> list
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> list --enabled true
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> get <id>
# Change one rule
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> update <id> --name "New name"
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> delete <id>
# Turn a whole tool on or off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> enable
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> disable
# Turn one rule on or off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> enable <id>
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> disable <id>
enable <id> は、必要に応じてそのツールも有効にします。ツールを無効にしても、各ルール個別の有効/無効の設定は保持されます。更新で変更されるのは送信したフィールドのみです。delete はルールをすぐに削除します。
map-local、map-remote、breakpoint、scripting には、ルールフォルダを管理するための folders コマンドもあります。また、list と create のコマンドでは --folder <name or id> を指定できます。オプションを確認するには、/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local folders --help を実行してください。
ルールを作成
以下は最も簡単な作成コマンドです。オプションのフラグを指定すると、より多くのフィールドを設定できます。オプションは /Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> create --help を実行すると確認できます。
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules block-list create https://ads.example.com/*
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules allow-list create https://api.example.com/*
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules ssl-proxying create '*.example.com' --list include
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local create https://api.example.com/* --path ./response.json
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-remote create https://old.example.com/* https://new.example.com/
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules breakpoint create https://api.example.com/* --phase both
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules scripting create https://api.example.com/* --script-file ./rule.js
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules network-condition create --profile 3g
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules reverse-proxy create https://upstream.example.com --local-port 8080
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules protobuf create https://api.example.com/* --request-type package.Request
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules dns-spoofing create example.com 127.0.0.1
ツールが対応している場合、共通のルールフラグとして --name、--enabled true|false、--method、--match wildcard|regex、--include-subpaths true|false があります。名前は省略可能です。任意の値を省略すると、Proxyman はそのツールの通常のデフォルト値を使用します。
JSON 入力
作成と更新では、--input <file> を使って JSON オブジェクトを送信できます。--input - を指定すると、標準入力から JSON を読み取ります。--input とフィールドのフラグは併用しないでください。
printf '%s' '{"url":"https://api.example.com/*","name":"Local API","enabled":true}' \
| /Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local create --input -
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local update <id> --input ./map-local-change.json
Proxyman が終了している場合、コマンドは ok: false と app_not_running エラーコードを含む JSON を返します。入力エラーの終了コードは 2、その他のエラーの終了コードは 1 です。
14. 企業ポリシー
MCP(Proxyman macOS 6.15.0 以降)
- Proxyman が終了している場合でも、MCP 機能を有効または無効にできます
- コマンドラインから MCP を無効にすると、ユーザーは Settings からそれを再び有効にできません
MCP を無効にし、Settings のトグルをロックします:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli mcp off
MCP を有効にし、トグルのロックを解除します:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli mcp on
15. HTTP バージョン
グローバルの HTTP/2 ポリシーを確認または変更します。Proxyman は起動したままにしてください。これらのコマンドは、MCP が無効になっていても動作します。
# Read the current policy
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version status
# Prefer HTTP/2, with HTTP/1.1 fallback
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version set prefer_http2
# Turn the HTTP/2 preference off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version set http1_only
HTTP/2 はデフォルトでオフになっています。ポリシーを変更すると、アクティブな HTTP、WebSocket、Server-Sent Events の接続がすべて閉じられ、Compose クライアントが更新されます。現在のポリシーを再度設定しても、接続は開いたままになります。
このポリシーは、リクエストがどのプロトコルを使ったかを証明するものではありません。キャプチャしたリクエストとアップストリーム接続を確認してください。Network Extension でキャプチャしている場合、h2 のみを提示するクライアントは、http1_only の設定でも HTTP/2 を維持します。
どちらのコマンドも JSON を返します。status の出力には httpVersionMode と http2Enabled が含まれ、set の出力にはさらに previousMode と changed が含まれます。たとえば、HTTP/1 から HTTP/2 優先に変更すると、次のように返されます:
{
"success": true,
"data": {
"httpVersionMode": "prefer_http2",
"http2Enabled": true,
"previousMode": "http1_only",
"changed": true
}
}
16. Network Extension の管理
コマンドラインから Network Extension のインストールとキャプチャを管理します。Proxyman は起動したままにしてください。MCP を有効にする必要はありません。
Network Extension には、直接配布版の Proxyman と macOS 26 以降が必要です。インストールとキャプチャには Proxyman PRO が必要です。ステータスの確認とアンインストールは、PRO がなくても利用できます。Setapp は Network Extension に対応していません。
# Read installation and capture status without changing either
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension status
# Install or update the bundled extension without enabling capture
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension install
# Enable capture, installing the extension if necessary
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension enable
# Stop capture and keep the extension installed
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension disable
# Retry requested installation or capture after resolving an error
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension retry
# Stop capture and remove the extension and its saved network configurations
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension uninstall
install は、キャプチャがすでにオフであれば、オフのままにします。enable はキャプチャを開始し、ヘルパーを使うシステムプロキシをオフにします。Network Extension のキャプチャがオンの間は、システムプロキシを有効にできません。
disable と uninstall は、直接の TCP 接続を含め、既存の接続をプロバイダ経由ですべて閉じます。その後、システムプロキシの動作は Auto Override System Proxy Settings at Launch に従います。
macOS から承認または再起動を求められることがあります。その手順を完了してから、network-extension status をもう一度実行してください。コマンドが成功したということは、リクエストが受け付けられたことを意味するだけで、インストールやキャプチャが完了したことを意味するわけではありません。操作がビジー状態になったり、タイムアウトしたりした場合は、繰り返す前にステータスを確認してください。
HTTPS の復号には、引き続き信頼された Proxyman 証明書と、一致する SSL Proxying ルールが必要です。新しく開いた接続をキャプチャするには、クライアントを再接続してください。
JSON ステータスの読み方
| フィールド | 意味 |
|---|---|
supported | このアプリと macOS のバージョンが Network Extension に対応しているかどうか。非対応の環境では false を返し、変更を拒否します。 |
installed, installedBuild, bundledBuild | macOS が報告するインストール状況と、実行中のアプリに同梱されているビルド。 |
systemExtensionEnabled | macOS がインストール済みの拡張機能を有効と報告しているかどうか。 |
proAvailable | インストールとキャプチャに Proxyman PRO が利用可能かどうか。 |
captureEnabled | キャプチャが要求されているかどうか。 |
captureActive | プロバイダがキャプチャセッションを受け付けたかどうか。 |
state, message | アプリの現在の状態と、わかりやすい説明。 |
operationPending | インストール、削除、キャプチャの開始のいずれかが進行中かどうか。 |
approvalRequired, restartRequired | 承認または再起動が必要かどうか。 |
removalPending | アプリを再起動した後も含め、macOS に削除待ちの拡張機能レコードが残っているかどうか。 |
systemProxyEnabled | Proxyman が現在、macOS のシステムプロキシを有効と報告しているかどうか。 |
対応している環境では、これらのフィールドは data の下に返されます。disable はインストールの問い合わせを待たないため、そのレスポンスでは installed が null になります。最新のインストール状況を確認するには、status を使用してください。
JSON 出力と終了コード
http-version と network-extension のコマンドグループは、success、利用可能な場合は data、失敗時は error を含む JSON レスポンスを返します。
0:読み取りに成功したか、変更が受け付けられました。完了の確認は Network Extension のステータスで行ってください。1:コマンドが失敗した、Proxyman が終了している、またはコマンドがタイムアウトした。64:コマンドライン引数が不正です。パーサーのエラーとヘルプはプレーンテキストで出力されます。
インストールされているアプリが対応している構文は、次のコマンドで確認できます:
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version --help
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension --help