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 Mac app

You can sync and share project files saved on the iPhone with your Mac, and continue where you left off. Intercept HTTP requests and responses and edit their contents before forwarding them to the destination.

Proxygen is a native AppKit app, making it look like it actually belongs on the Mac. The app can scroll through thousands of messages and update the list with fluid animations.

Designed for iPad from the start

Proxygen was developed for iPad from the beginning and offers a one of a kind tablet experience. The app uses an innovative side scrolling list with sortable columns, which 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.

Free-form editing of requests

Edit selected requests from the message history or create new requests to any target server. All previously sent editor requests are kept 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 fast language parsing and syntax highlighting. It handles encoding and decompression of HTTP content automatically, letting you focus on testing the remote API.

1

Match and replace

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.

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 ↩︎