Quickstart
Five minutes from a clean clone to your first decrypted HTTPS capture.
Prerequisites
- macOS 14+
- Node 20 LTS + pnpm 9+ (
corepack enable && corepack prepare pnpm@10 --activate) - Go 1.22+
brew install protobuf(for code generation)
Steps
-
Clone + bootstrap
Terminal window git clone https://github.com/trongitnlu/proxypro.gitcd proxypromake bootstrapmake bootstraprunsgo install protoc-gen-go protoc-gen-go-grpcandpnpm --dir app install. -
Generate code + build engine
Terminal window make proto # Go + TypeScript bindingsmake engine # universal arm64+amd64 binary at engine/bin/proxypro-engine -
Launch the app
Terminal window make devYou should see:
start electron app......spawning engine: .../proxypro-engine --ipc=/tmp/proxypro-XXXX.sock...proxy listening on 127.0.0.1:9090The Electron window opens with status
runningin the header. -
Install the root CA
In the app, switch to the Cert panel and click Install to Keychain. For Chrome (which reads the System keychain, not login), also run:
Terminal window sudo security add-trusted-cert -d -r trustRoot \-k /Library/Keychains/System.keychain \~/Library/Application\ Support/ProxyPro/ca/root.pemSee Install the certificate for details on why two keychains.
-
Route traffic through the proxy
Click
○ system proxy OFFin the app header. It flips to green● system proxy ONand routes all macOS HTTP/HTTPS traffic through ProxyPro.Equivalent manual commands (if you prefer):
Terminal window networksetup -setwebproxy "Wi-Fi" 127.0.0.1 9090networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 9090 -
Restart Chrome and browse
Terminal window pkill -x "Google Chrome" && open -a "Google Chrome"Visit any HTTPS site. Captures stream into the captures view with method, host, path, status, size, duration, and a kind badge (
h1,h2,ws,grpc). -
Test a Map Local rule
Switch to the rules view, click + Add. Set:
- URL pattern:
https://api.example.com/* - File path: any local JSON file
- Status:
200
Reload the matching endpoint in your browser — ProxyPro serves the local file instead of the real upstream. The capture shows
X-Proxypro-Rule: map-localto confirm the short-circuit. - URL pattern:
What’s next
- Stuck? See Troubleshooting.
- Want to inspect mobile traffic? See Mobile devices.
- Curious how it works? See Architecture overview.