mitmproxy — Network analysis and diagnostics
A free intercepting proxy that lets you inspect and modify HTTPS traffic in the middle, used for security testing and API debugging.
Basic Information
| Program name | mitmproxy |
|---|---|
| One-line introduction | A free intercepting proxy that lets you inspect and modify HTTPS traffic in the middle, used for security testing and API debugging. |
| Development & Maintenance | mitmproxy authors (Aldo Cortesi, Maximilian Hils) |
| Official website | https://mitmproxy.org/ |
| Official documentation | https://docs.mitmproxy.org/ |
| Official download | https://mitmproxy.org/downloads/ |
| Supported operating systems | Linux, macOS, Windows (Python 3.12 or later) |
| License | MIT |
| Stable version | 12.2.3 (released 2026-05-12) — checked on 2026-10-18 |
| GitHub repository | https://github.com/mitmproxy/mitmproxy |
| Category | Network analysis and diagnostics (Tags: proxy, HTTPS, packet analysis, API debugging, security) |
What is this program?
mitmproxy is a free proxy that sits between a client and a server and decrypts HTTPS traffic for inspection. You can view requests and responses sent by browsers or mobile apps in a list, modify and resend specific requests, or create fake responses.
It has three interfaces: an interactive console (mitmproxy), a browser UI (mitmweb), and a script/log-only CLI (mitmdump). It is mainly used for mobile app auditing, REST API debugging, and pre-flight checks before web automation.
What problems does it solve?
- ('Mobile/app debugging', 'When you don't know which server an app is sending data to or what it is sending', 'You can inspect request headers and bodies directly in the capture list.')
- ('API development', 'When you need to distinguish whether a client request is wrong or the server response is the problem', 'You can view requests and responses separately at the interception point.')
- ('Security testing', 'When you feel that content is hidden because it is HTTPS', 'Installing the proxy certificate allows you to read decrypted traffic.')
Key Features
HTTPS Interception
Decrypts TLS traffic in the middle and displays requests and responses
- Use case: When debugging HTTPS APIs
- Result: See headers and bodies that were previously hidden by encryption
- Limitations: If the target app uses certificate pinning, capture may not work.
Request Modification and Resending
Modify headers and parameters of a captured request and send it again
- Use case: When testing by changing parameter values
- Result: Quickly verify server responses
- Limitations: Frequent resending can affect server-side logs or rate limits.
addon Scripts (Python)
Automate by attaching Python scripts to capture events
- Use case: When you need repetitive filtering or automatic responses
- Result: Handle capture and mapping through scripts
- Limitations: Script errors can block traffic, so testing in a test environment is necessary.
mitmdump Logging
Save captures to a file in headless environments
- Use case: Batch auditing and automation on servers
- Result: Obtain logs that can be reopened later with mitmproxy
- Limitations: High traffic volumes require managing log size.
Installation and Execution
Linux (pip)
Install with pipx or pip. Python 3.12 or later is required.
pipx install mitmproxy
# or
pip3 install mitmproxy
Linux (Distribution Package)
Some distributions provide a repository version. The version may be outdated, so checking the official download is recommended.
sudo apt install mitmproxy # repository version (may not be latest)
macOS / Windows
Use Homebrew or the official installer.
brew install mitmproxy # macOS
# Windows: MSI from mitmproxy.org/downloads
Practical Usage Examples
Capturing Browser Traffic
Start mitmweb and set the browser proxy settings (or environment variables). Once the browser installs the certificate from mitm.it, HTTPS traffic is also decrypted.
$ mitmweb --listen-port 8080
Browser: HTTP proxy 127.0.0.1:8080
# After connecting to http://mitm.it, install the certificate
Capturing Mobile App Traffic
Place the phone and PC on the same network, set the phone's Wi-Fi proxy to PC IP:8080, then connect to mitm.it from the phone browser and install the certificate.
$ mitmproxy --listen-port 8080
Phone Wi-Fi Advanced > Proxy: Manual > 192.0.2.20:8080
Filtering and Modifying Requests
In the console, press f to set a filter (e.g., ~d api.example.com), press i to enter intercept mode, modify the request, and then send it again.
$ mitmproxy
Advantages and Limitations
Advantages
- Completely free and open source (MIT) — can intercept HTTPS without a commercial proxy
- Provides three interfaces: console, browser UI, and script CLI
- Broad protocol support, including HTTP/1, HTTP/2, HTTP/3, and WebSocket
- Easy to combine automation and scan pipelines with Python addons
Things to Consider Before Use
- If the target app uses certificate pinning, traffic is difficult to decrypt.
- Installing certificates and configuring proxy settings can be a barrier for beginners.
- Because of the nature of HTTPS decryption, personal information and credentials may remain in logs, so caution is required.
Comparison with Similar Programs
| Program | Characteristics | Suitable for |
|---|---|---|
| Burp Suite Community | Web security testing standard; scanner is commercial | Web app penetration testing workflow |
| Fiddler | Windows-centric GUI proxy | Continuous traffic inspection in Windows environments |
| tcpdump | Raw packet-level capture (no decryption) | Network diagnostics where speed and overhead are critical |
Official Resources and Further Learning
- Official website — https://mitmproxy.org/
- Official documentation / knowledge base — https://docs.mitmproxy.org/
- Official download — https://mitmproxy.org/downloads/
- Release notes — https://github.com/mitmproxy/mitmproxy/blob/main/CHANGELOG.md
- Source / development resources — https://github.com/mitmproxy/mitmproxy
Version and supported environment information was confirmed on the official site as of 2026-10-18. Installation commands may vary depending on your distribution and version, so also check the official installation documentation.
Actual Execution Screen
The screen below is a synthetic example created to help understand the usage flow (not an actual execution result). The screen is a synthetic example and not an actual execution result.
!mitmproxy example: mitmweb running, captured API request list
Actual production server
Source (HTML): https://games.aidebatehub.com/programs/apps/network/mitmproxy.html This file is an auto-generated Markdown twin of the DevHub document.
AI Knowledge Hub
Visitor Comments