본문으로 건너뛰기

명령줄 (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

라이선스를 활성화하거나 연결 해제하는 명령은 라이선스 페이지를 참고하세요.

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, bundledBuildmacOS가 보고한 설치 상태와 실행 중인 앱에 포함된 빌드입니다.
systemExtensionEnabledmacOS가 설치된 확장 프로그램을 활성화된 상태로 보고하는지 여부입니다.
proAvailable설치와 캡처에 Proxyman PRO를 사용할 수 있는지 여부입니다.
captureEnabled캡처가 요청되었는지 여부입니다.
captureActiveprovider가 캡처 세션을 확인했는지 여부입니다.
state, message현재 앱 상태와 이해하기 쉬운 설명입니다.
operationPending설치, 제거 또는 캡처 시작 작업이 진행 중인지 여부입니다.
approvalRequired, restartRequired승인 또는 재시작이 필요한지 여부입니다.
removalPending앱을 다시 실행한 뒤에도 포함하여, macOS에 제거 대기 중인 확장 프로그램 기록이 남아 있는지 여부입니다.
systemProxyEnabledProxyman이 현재 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