Skip to content

Configure the proxy

ProxyPro listens on 127.0.0.1:9090. Clients reach it three ways: the in-app system-proxy toggle, the macOS Network preferences, or process-level flags (Chrome, curl, etc.).

Click ○ system proxy OFF in the app header. It flips to ● system proxy ON:

  • Calls networksetup -setwebproxy + -setsecurewebproxy for every enabled network service (Wi-Fi, Ethernet, USB ethernet).
  • Auto-disables when:
    • You quit the app (cmd+Q)
    • The engine subprocess crashes
    • The process receives SIGINT / SIGTERM

Manual — system preferences

Terminal window
# Enable
networksetup -setwebproxy "Wi-Fi" 127.0.0.1 9090
networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 9090
# Check
networksetup -getwebproxy "Wi-Fi"
# Disable
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off

Swap "Wi-Fi" for your active service. List them with:

Terminal window
networksetup -listallnetworkservices

Per-process — Chrome

Don’t want to touch the system proxy? Launch a separate Chrome process just for ProxyPro:

Terminal window
open -na "Google Chrome" --args --proxy-server="http://127.0.0.1:9090"

Your normal Chrome keeps working as usual.

Per-process — curl

Terminal window
curl --proxy http://127.0.0.1:9090 https://example.com

Set the https_proxy env var to make it stick for a shell session:

Terminal window
export https_proxy=http://127.0.0.1:9090
export http_proxy=http://127.0.0.1:9090

Per-process — Node, Python, others

Terminal window
NODE_EXTRA_CA_CERTS=~/Library/Application\ Support/ProxyPro/ca/root.pem \
https_proxy=http://127.0.0.1:9090 \
node my-script.js

NODE_EXTRA_CA_CERTS adds the ProxyPro CA to Node’s trust store for the duration of the process.

What ProxyPro does to your traffic

  • HTTP/1.1 — full decrypt + capture.
  • HTTP/2 — ALPN-negotiated h2, full decrypt + capture.
  • HTTP/3 (QUIC) — ALPN-stripped via Alt-Svc header rewrite. Browsers fall back to h2. We do not decrypt QUIC directly.
  • WebSocket — handshake captured, frames relayed with byte + frame counters (per-message reassembly + deflate coming in P03.5).
  • gRPC — content-type sniffed, heuristic protobuf walker decodes messages (named-field decoding via reflection in P04.5).
  • Pinned apps (banking, Spotify, most native iOS apps) will refuse to trust our CA and fail to connect through the proxy. That’s expected.