Skip to content

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

  1. Clone + bootstrap

    Terminal window
    git clone https://github.com/trongitnlu/proxypro.git
    cd proxypro
    make bootstrap

    make bootstrap runs go install protoc-gen-go protoc-gen-go-grpc and pnpm --dir app install.

  2. Generate code + build engine

    Terminal window
    make proto # Go + TypeScript bindings
    make engine # universal arm64+amd64 binary at engine/bin/proxypro-engine
  3. Launch the app

    Terminal window
    make dev

    You should see:

    start electron app...
    ...spawning engine: .../proxypro-engine --ipc=/tmp/proxypro-XXXX.sock
    ...proxy listening on 127.0.0.1:9090

    The Electron window opens with status running in the header.

  4. 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.pem

    See Install the certificate for details on why two keychains.

  5. 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 OFF in 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 9090
    networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 9090
  6. Browse and inspect

    Visit any HTTPS site in the intercepted Chromium (or issue curl in the intercepted Terminal). Captures stream into the captures view with method, host, path, status, size, duration, and a kind badge (h1, h2, ws, grpc).

  7. 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-local to confirm the short-circuit.

What’s next