
mitmproxy
Interactive proxy that lets you inspect and modify HTTP and HTTPS traffic from your machine.
- Stars
- 46.6k
- Forks
- 4.9k
- Licence
- MIT
- Language
- Python
- Last update
- 4 days ago
- Type
- Dev tool
What it is
mitmproxy is a proxy that sits between your device or app and the internet, so you can see the web requests and responses passing through it, including encrypted HTTPS (TLS) traffic. It offers a console interface (mitmproxy), a command-line tool (mitmdump, described as similar to tcpdump for HTTP), and a web interface (mitmweb). The README says it supports HTTP/1, HTTP/2, and WebSockets.
- Watch the HTTP requests a mobile or desktop app sends and receives
- Use mitmdump on the command line to filter or save captured traffic
- Open the browser-based mitmweb interface to review intercepted requests
- Inspect WebSocket messages between a client and a server
Great for
- Developers debugging how an app talks to a backend API
- Penetration testers inspecting traffic from a client application
- People who want to script or automate changes to web traffic with a command-line tool
- Anyone who prefers a browser-based view of intercepted traffic (mitmweb)
Not ideal for
- Users who only need a simple browser debugging panel; built-in browser developer tools cover many of those cases
- People intercepting traffic they do not own or have permission to inspect, since it is designed to break open encrypted connections
How to get it
- 1
See the README
You'll need: Python (version listed on the project's PyPI page)
Clone the repository
git clone https://github.com/mitmproxy/mitmproxy - 2
Run it
- Follow the installation instructions at docs.mitmproxy.org/stable/overview-installation
- Start the console interface with mitmproxy, or mitmweb for the browser interface
- Configure your device or browser to use the proxy address shown on startup
- Install and trust the mitmproxy certificate on the device to view HTTPS traffic
- 3
Get the most out of it
- Use mitmdump for scripted or headless capture of traffic
- Use mitmweb if you prefer a browser-based view
- Read the documentation at docs.mitmproxy.org for tutorials and advanced configuration
- Ask questions through GitHub Discussions, as the README directs
Downloads
Strengths
- Handles encrypted HTTPS traffic, not just plain HTTP
- Offers three interfaces: console, command line, and web
- Open source under the MIT license with an active project (recent pushes and many stars)
Trade-offs
- Intercepting HTTPS requires installing and trusting mitmproxy's certificate on the device being tested, which is a setup step many newcomers find fiddly
- The README is short and points to external documentation for installation and tutorials, so this entry relies on that pointer
- The latest release listed has no prebuilt binaries, so you may need Python tooling or to follow the install docs
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| mitmproxy (this) | 46.6k | Dev tool | intermediate | 4 days ago | Developers debugging how an app talks to a backend API |
| echo | 32.8k | Library | intermediate | 6 days ago | Go developers building REST APIs or backend services |
| nginxconfig.io | 28.3k | App | beginner | 1.9 years ago | People setting up an NGINX server for a website or app who want a starting config |
| ttyd | 12.6k | Dev tool | intermediate | 3 months ago | Developers who want to open a shell on a home server or device from a browser |
| yaak | 19.4k | App | beginner | 4 days ago | Developers who want a desktop client for REST, GraphQL, gRPC, WebSocket or SSE in one place |
| gost | 18.3k | CLI | intermediate | 2 months ago | Developers who want a single binary to run a local or remote SOCKS5 or HTTP proxy |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.