mitmproxy vs Whistle
mitmproxy
mitmproxy.orgWhistle
wproxy.orgSide by side
| Figure | mitmproxy | Whistle |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | Yes | — |
| Web | Yes | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| iOS | — | Yes |
| Android | — | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 2 | 0 |
| Spec score · Web Debugging Proxies | 8.7 (#5) | 7.2 (#26) |
Plans
In their own words
mitmproxy
mitmproxy is a free set of tools for inspecting and changing traffic sent through a proxy. It handles HTTP/1, HTTP/2, WebSocket, and SSL/TLS traffic, and can intercept HTTP and HTTPS requests and responses for editing. Conversations can be saved for later analysis, and users can replay client requests or recorded server responses. The project provides an interactive console, a browser-based GUI, and non-interactive terminal output through mitmproxy, mitmweb, and mitmdump. Proxy modes include regular, local capture, WireGuard, reverse, transparent, TUN, upstream, SOCKS5, and DNS. Python addons can alter behavior in response to events and expose commands. WireGuard mode can capture traffic from external devices or individual Android apps. A built-in certificate authority generates interception certificates as needed. Installation options cover Windows, macOS, Linux, PyPI, and official Docker images. The project says it does not phone home or check for updates. Documentation notes that HTTP/3 client replay is currently broken; dependencies in precompiled binaries and Docker images are fixed at release and cannot be updated in place.
Whistle
Whistle is a free, MIT-licensed network debugging proxy for packet capture and traffic inspection. It supports HTTP, HTTPS, SOCKS, and reverse proxying, and can intercept and modify network traffic. Users define rules to change requests and responses; the Network interface filters captured requests in real time, while Composer supports replay and editing. WebSocket and TCP request and response data can be inspected, transmission paused or ignored, and custom data sent through Composer. HTTPS decryption requires enabling HTTPS capture and installing Whistle’s root certificate. The desktop version provides a graphical interface for macOS, Windows, and Linux. Its command-line version is intended for headless Linux servers, Docker containers, embedded systems, and IoT devices. Mobile capture instructions cover iOS and Android devices configured to use the proxy and trust its root certificate. Plugins extend Whistle’s functions and can be installed, configured, updated, and removed; the software can also be added to a project as an NPM module. The integrated Weinre tool supports debugging webpages on mobile devices from a computer on the same network. Internal requests can use username and password authentication, while proxy request permission control requires a plugin or custom plugin.