명령줄 (Command-line)
터미널에서 proxyman-cli로 macOS용 Proxyman을 제어하세요. 규칙 내보내기와 가져오기, 디버깅 도구 및 시스템 프록시 켜기/끄기, 로그 내보내기, 인증서 관리를 할 수 있습니다.
macOS용 Proxyman에는 명령줄 도구인 proxyman-cli가 포함되어 있어, 터미널이나 직접 만든 스크립트에서 Proxyman을 제어할 수 있습니다 ✅.
이 도구는 /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 시스템 프록시를 켜거나 끌 수 있습니다. 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. 명령줄로 프록시 헬퍼 도구 설치
Proxyman macOS 4.12.0 이상에서는 GUI 없이 헬퍼 도구를 설치할 수 있습니다.
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> 옵션을 추가하여 해당 flow ID부터의 flow만 내보낼 수 있습니다(해당 ID의 flow 포함). 모든 내보내기 형식에서 동작합니다.
--format에서 지원하는 형식은 proxymansession(기본값), har, raw입니다.
9. 사용자 지정 루트 인증서 가져오기
- ✅ Proxyman에 사용자 지정 p12 루트 인증서 가져오기
- 시스템 키체인에서 인증서를 자동으로 신뢰(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 이상에서 사용할 수 있습니다
- JSON 형식으로 현재 수신 중인 IP 및 포트 가져오기
/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> 명령도 필요한 경우 해당 도구를 함께 켭니다. 도구를 끄면 각 규칙의 활성화 설정은 그대로 유지됩니다. update 명령은 보낸 필드만 변경하고, 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 - 옵션을 사용하면 표준 입력(standard 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은 provider를 통해 기존 연결을 닫습니다(직접 TCP 연결 포함). 이후 시스템 프록시는 Auto Override System Proxy Settings at Launch 설정을 따릅니다.
macOS가 승인이나 재시작을 요구할 수 있습니다. 해당 단계를 완료한 뒤 network-extension status를 다시 실행하세요. 명령이 성공했다는 것은 요청이 접수되었다는 뜻이며, 설치나 캡처가 완료되었다는 뜻은 아닙니다. 작업이 진행 중이거나 시간 초과되면 다시 시도하기 전에 status를 먼저 확인하세요.
HTTPS 복호화에는 여전히 신뢰할 수 있는 Proxyman 인증서와 일치하는 SSL Proxying 규칙이 필요합니다. 새로 열린 연결을 캡처하려면 클라이언트를 다시 연결하세요.
JSON 상태 읽기
| 필드 | 의미 |
|---|---|
supported | 이 앱과 macOS 버전이 Network Extension을 지원하는지 여부입니다. 지원하지 않는 호스트는 false를 반환하고 변경 요청을 거부합니다. |
installed, installedBuild, bundledBuild | macOS가 보고한 설치 상태와 실행 중인 앱에 포함된 빌드입니다. |
systemExtensionEnabled | macOS가 설치된 확장 프로그램을 활성화된 상태로 보고하는지 여부입니다. |
proAvailable | 설치와 캡처에 Proxyman PRO를 사용할 수 있는지 여부입니다. |
captureEnabled | 캡처가 요청되었는지 여부입니다. |
captureActive | provider가 캡처 세션을 확인했는지 여부입니다. |
state, message | 현재 앱 상태와 이해하기 쉬운 설명입니다. |
operationPending | 설치, 제거 또는 캡처 시작 작업이 진행 중인지 여부입니다. |
approvalRequired, restartRequired | 승인 또는 재시작이 필요한지 여부입니다. |
removalPending | 앱을 다시 실행한 뒤에도 포함하여, macOS에 제거 대기 중인 확장 프로그램 기록이 남아 있는지 여부입니다. |
systemProxyEnabled | Proxyman이 현재 macOS 시스템 프록시가 켜져 있다고 보고하는지 여부입니다. |
지원되는 호스트는 이 필드들을 data 아래에 반환합니다. disable 명령은 설치 상태 조회를 기다리지 않으므로 응답의 installed 값은 null입니다. 최신 설치 상태를 확인하려면 status를 사용하세요.
JSON 출력 및 종료 코드
http-version 및 network-extension 명령 그룹은 JSON 응답을 반환합니다. 응답에는 success, 가능한 경우 data, 실패 시 error가 포함됩니다.
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