Quickstart
The first-launch checklist targets a first decrypted HTTPS capture in under three minutes after the app is built.
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. -
Run Setup Doctor and install the root CA
The app opens the Setup view on first launch. Run the doctor, then click Install CA if trust is missing. The checklist reports engine, root CA, Keychain trust, proxy smoke, and Chromium status independently, with a concrete repair message for each failure.
For a manual System-keychain install, 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.
-
Launch one intercepted target
Click Open intercepted Chromium for a separate browser profile, or Open intercepted Terminal for a shell preloaded with proxy and CA environment variables. The launchers affect that target only.
To capture system-wide traffic instead, click
○ system proxy OFFin the app header. It flips to green● system proxy ON.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 -
Browse and inspect
Visit any HTTPS site in the intercepted Chromium (or issue
curlin the intercepted Terminal). 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.