Charles vs mitmproxy
Charles
charlesproxy.commitmproxy
mitmproxy.orgSide by side
| Figure | Charles | mitmproxy |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | Yes | — |
| Open source | — | Yes |
| Web | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| iOS | Yes | — |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 6 | 2 |
| Spec score · Web Debugging Proxies | 8.6 (#8) | 8.7 (#5) |
| Support | The maker directs users to the documentation and invites them to contact support if documentation does not resolve their issue. | Usage questions and bug reports are directed to GitHub Discussions and the project repository. |
Plans
Charles
- 1-4 User Licenses$50, paid once
- 10+ User Licenses$30, paid once
- 5+ User Licenses$40, paid once
- 1–4 User Licenses$50, paid once
- Site License$400, paid once
- Multi-Site License$700, paid once
In their own words
Charles
Charles is a web proxy and HTTP monitor for developers who need to inspect traffic from browsers and other internet applications configured to use it. While recording is enabled, it captures and displays HTTP and SSL/HTTPS requests and responses, including headers, cookies, and caching information. SSL Proxying lets users examine HTTPS session contents. They can repeat or edit requests, intercept requests or responses with breakpoints, replay traffic, mock responses, inspect WebSockets, and chain proxies. Bandwidth throttling and added latency simulate slower connections. Charles presents JSON, JSON-RPC, and SOAP in a simplified tree format and supports Flash Remoting AMF0 and AMF3. Its iOS app captures HTTP and HTTPS traffic and can share requests or sessions with desktop Charles. Captured data is stored on the user's computer; Charles says its developers cannot access it. The software runs on iOS, Linux, macOS, and Windows. There is no free plan; a 30-day trial is available. Individual licenses start at $30, paid once for 10+ users, while 1–4 licenses cost $50 as a one-time purchase.
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.