Proxygen is an HTTP debugging tool for Mac, iPhone and iPad, built around a TLS manipulator-in-the-middle proxy that captures and decrypts HTTPS traffic. It is a native Swift app, and its license is a one-time purchase. For anyone searching for a Charles Proxy alternative, this article goes through the familiar tools and their Proxygen counterparts, what Proxygen adds on top, and how the licensing compares.

The everyday workflow

Debugging in Proxygen starts in the History tool: you capture traffic, watch HTTP requests and API calls stream in from the app you are testing, and use filter rules and flags to isolate the requests that matter. From there, Intercept stops requests and responses on the wire for editing, and the Editor tool replays modified requests against the server.

Most Charles tools have a direct equivalent in Proxygen:

In Charles In Proxygen
Breakpoints Intercept — a queue that shows all captured requests and responses at once, so you can edit, forward or drop them in any order
Map Local Rewrites with the Respond action — answer matching requests with a custom response without contacting the server
Map Remote Rewrites with the Target override — redirect matching requests to another host, port or scheme
Rewrite Rewrites rules that modify the URI, headers and body of matching requests and responses
Block List Rewrites with the Drop action
DNS Spoofing Hostname Resolution — resolve hostnames to custom addresses
Repeat Editor — build, edit and replay requests, with full message history
Auto Save PGEN project documents with automatic saves
WebSocket Sockets — a dedicated tool for WebSocket and SSE channels and messages

Open existing session files

Proxygen opens Charles Session (.chlz) and Charles JSON Summary (.chlsj) files directly, so the sessions you have already saved keep working. It also imports and exports these file formats:

  • HTTP Archive (.har) files used by web browser developer tools and many other apps
  • Proxyman Session (.proxymansessionv2) files used by Proxyman
  • Mitmproxy Dump (.mitm) files used by mitmproxy

The details are covered in Import and Export.

Exporting selected HTTP messages to a HAR file in Proxygen Mac app

See connections in your traffic

The Graph tool turns captured traffic into a map of hosts, apps and network connections, so you can see at a glance which third-party services an app calls and how traffic spreads across hosts — relationships that stay hidden in a flat request list.

Graph tool in Proxygen Mac app showing captured HTTP traffic as a map of hosts and connections

Test API endpoints

The Test tool runs collections of requests against your API from inside the app, with scripts, assertions on responses and variable extraction that feeds values from one response into the next request.

Test tool in Proxygen Mac app running a collection of API requests with assertions

Two supporting features tie into this:

  • Variables store values such as tokens, IDs and hostnames in switchable environments, referenced anywhere with {{name}} placeholders.
  • Authentication attaches credentials to matching outgoing requests automatically, so expired tokens stay out of your debugging loop.

Decode request and response data

The Transform tool chains operations — encodings, hashing, encryption, compression, protobuf and other binary decoders — into recipes you apply to data straight from a captured message, much like CyberChef but built into the proxy.

Auto decode detects and unwraps layered encodings automatically.

Transform tool in Proxygen Mac app decoding data with a recipe of chained operations

Debug iPhone and iPad traffic

Charles for iOS captures and inspects HTTP and HTTPS traffic on the device, including on cellular networks, and shares sessions to the desktop app. Proxygen’s iOS app covers the same ground and brings the full toolset along: the proxy runs in the background while you use the app you are debugging, and captured traffic lands in History, Sockets, Editor, Transform and Test — so a bug can be tracked down and resolved on the go, without a computer.

Proxygen iOS app capturing and filtering HTTP traffic on an iPhone

When you would rather work on a bigger screen, Send to Mac mirrors captured traffic to the Mac app in real time — no cable or proxy configuration in between. Mirroring toggles on and off from Control Center, and the iOS app can pair with multiple Macs.

Send to Mac mirroring HTTP traffic from an iPhone to Proxygen Mac app

Both apps save their work to the same PGEN document format, so you can capture traffic on an iPhone and continue with the same document on your Mac.

Download on the App Store

Built on an open-source foundation

Proxygen is written in Swift using Apple’s native frameworks, with the proxy engine built on SwiftNIO and the user interface built with CocoaCompose, an open-source Cocoa UI framework developed alongside the app.

Pricing

Both apps are sold as one-time purchases, with one difference:

  1. Charles licenses are perpetual for the major version you buy, and upgrades to new major versions are paid.
  2. Proxygen licenses include updates with no upgrade fee.

One factual note in the other direction: Charles also runs on Windows and Linux. Proxygen is built for Apple platforms only — Mac, iPhone and iPad.

Try it out

The free, fully featured trial lets you try out all of the app’s features before buying. Download Proxygen, import an existing Charles session, and see how the tools fit the work you already do. Full documentation is available at proxygen.app/docs.

Download Proxygen for Mac