Proxygen

HTTP Swiss army knife

Proxygen is a professional HTTP proxy tool for testing apps and debugging remote API endpoints right on your iPhone, iPad or Mac. And it’s built to delight you while doing it.

The magic lies in a little custom HTTP proxy that the iOS app runs in a local VPN extension. This proxy was developed using SwiftNIO, a framework for blazing fast asynchronous network applications. The proxy can perform Manipulator in the Middle (MitM) against TLS to see inside HTTPS connections and apply custom logic to each message.

To put it bluntly, you’ve probably never seen a HTTP proxy this fast before. And you likely won’t notice that your web browsing is even proxied at all.

Features

Native on the Mac

Proxygen is a native Cocoa app that feels and behaves as a Mac app should. The app can scroll through thousands of messages and update the list with fluid animations.

Intercept requests and responses and edit their contents before forwarding them to the destination. All intercepted messages are shown in a queue that you can handle with in any order.

Create your own multi-step data transform recipes that decode, convert and hash from one format to another, and then assign a keyboard shortcut to apply the transform quickly anywhere.

Use the Diff tool to calculate semantically cleaned up differences between any two data blobs.

You can work with the same project files on iPhone and your Mac, and continue where you left off on the other device.

Amazing iPad experience

Proxygen was developed also for iPad from the start. Message history with sortable and resizable columns makes it possible to work with large message logs with ease. Proxygen on the iPad app comes with full keyboard support with shortcuts for common actions.

Edit and repeat requests

Pick and edit requests from message history or write new requests from scratch. All your edits are kept safe in the project file, so you can always return to your work later.

The editor is based on open source Runestone framework, which uses Tree-sitter for optimized language parsing and syntax highlighting. It handles encoding and compression of HTTP content automatically, letting you focus on testing the remote API.

Match and replace app traffic

Proxygen can modify requests and responses, on the fly, according to your custom rules. Multiple rules can be combined to create powerful automations that drop traffic to certain destinations, add or remove HTTP headers and respond locally with custom data, bypassing the remote server.

Local responses can be used during app development, when a remote API endpoint is not yet available, to verify that your app behaves correctly with any unexpected response data.

1

Privacy by design

Proxygen contains no third party frameworks for crash reporting or analytics. The app measures overall app usage with Apple’s App Analytics, which you can opt out of if you so choose.

All proxying of network traffic happens locally and there is no VPN connection to a remote server. The VPN configuration on iOS is simply used to run a local background process and to direct all device traffic to this proxy.

Note that Proxygen is a TLS MitM proxy, which means that it sees HTTPS network traffic in plain text. This data is transferred from the proxy to the Proxygen app and stored as part of the project document. Make sure you handle the documents accordingly, as they may contain sensitive data such as session tokens and login credentials.


  1. Device Mockups created from iPhone mockups [return]