Product definition

What is mitmproxy?

mitmproxy is an intercepting HTTPS proxy that lets you watch and change web traffic in flight. It handles HTTP/1, HTTP/2, HTTP/3, WebSockets and any other TLS-protected protocol, and can decode message types from HTML to Protobuf, so the content is readable rather than raw. It ships as three tools sharing one engine: a command-line interface, a web interface similar to a browser's developer tools, and a scripting interface driven by a Python API that gives full control over messages. It is free and open source under the MIT licence, and is used for debugging, testing, privacy measurement and penetration testing. It suits developers and testers who want scriptable control of traffic rather than a graphical application.

Verified product facts

Type
HTTP debugging proxyEditorially reviewed
Platform
macOS
Pricing
Open sourceDeveloper-stated
Open source
Yes
Relationship to Nuanyue
Third-party product — not published by NuanyueEditorially reviewed
Licence
MIT
Current version
12.2.3Developer-stated
Official website
mitmproxy.org/

Last updated . Facts marked developer-stated come from the developer and are not independently confirmed; editorially reviewed marks a Nuanyue judgement.

Key features

What mitmproxy does at a glance.

  • Intercepts, inspects, modifies and replays web traffic

  • Supports HTTP/1, HTTP/2, HTTP/3, WebSockets and other TLS-protected protocols

  • Decodes message types

    From HTML to Protobuf into readable form

  • Command-line interface

    For terminal use and automation

  • mitmweb provides a browser-based interface with request interception and replay

  • Python API

    For writing addons that control traffic programmatically

  • Installed

    Through Homebrew, Docker or direct binaries

  • Ecosystem

    Including mitmproxy2swagger and kubetap

Common tasks

What you can use mitmproxy for

  • Intercepting a specific message and changing it before it reaches its destination
  • Replaying a captured request to a client or server later
  • Writing a Python addon to redirect or rewrite traffic automatically
  • Measuring what an application or device actually sends, for privacy or security review
Audience

Who is mitmproxy for?

  • Developers and testers who want scriptable, automatable control of traffic
  • Security and privacy researchers who need to inspect traffic at scale
Not a fit

Who is mitmproxy not for?

  • Anyone who wants a graphical Mac application with a point-and-click breakpoint workflow
  • Users who are not comfortable on the command line or writing Python, since that is where its power sits

Limitations

  • The command-line interface is the primary tool; the graphical interface is a web application rather than a native Mac app
  • Scripting requires writing Python, which is the price of its flexibility
  • Reading HTTPS traffic requires trusting mitmproxy's certificate on the device being inspected
  • The minimum macOS version is not stated in the sources Nuanyue tracks

Strengths and trade-offs

What mitmproxy does well, and what to weigh before choosing it. Points marked developer-stated come from the developer’s own material and have not been independently confirmed.

Strengths

  • Intercepts, inspects, modifies and replays traffic across HTTP/1, HTTP/2, HTTP/3, WebSockets and other TLS-protected protocols.Developer-stated
  • Decodes message types from HTML to Protobuf so content is readable rather than raw.Developer-stated
  • A Python API gives full control over traffic, allowing addons that modify, redirect or visualise messages.Developer-stated
  • Ships a web interface, mitmweb, that offers request interception and replay in a browser.Developer-stated
  • Is free and open source under the MIT licence, with no paid tier.
  • Installs through Homebrew or Docker as well as from published binaries.

Trade-offs

  • The command-line tool is the primary interface, which makes it less approachable than a graphical application.Derived
  • Getting the most from it means writing Python addons.Derived
  • Intercepting HTTPS requires trusting a certificate on the inspected device, which weakens that device's security while installed.Derived
  • The minimum macOS version is not published in the sources Nuanyue tracks.Editorially reviewed

First-use experience

What the app asks of you when you set it up. Only established facts appear here; anything we could not confirm is left out rather than guessed at.

Installation
Installed with Homebrew, run from Docker Hub, or downloaded as a published binary.
First launch Developer-stated
Start the proxy, then point the client at it; the web interface is started with the mitmweb command.
System integration Derived
Runs as a standalone proxy process rather than a system extension, so clients are directed to it explicitly.

What it does

mitmproxy sits between a client and a server and lets you read and change what passes between them. It understands HTTP/1, HTTP/2, HTTP/3, WebSockets and other TLS-protected protocols, and decodes message bodies from HTML through to Protobuf, so the content arrives readable instead of as bytes.

The point is not only to watch. Messages can be intercepted individually, modified before they reach their destination, and replayed later to either side — which is what makes it useful for testing an API against responses that do not exist yet, or reproducing a request that failed once.

Three tools, one engine

The same engine is exposed three ways. mitmproxy is the command-line tool. mitmweb provides a browser interface that the project likens to a browser’s developer tools, with the addition of request interception and replay. mitmdump is driven by the Python API, which gives full control over messages and is how most automation is built — the addon example in the project’s own documentation redirects a host and answers a path from the proxy itself.

Around it there is an ecosystem: mitmproxy2swagger converts captures into OpenAPI 3.0 specifications, and kubetap proxies Kubernetes services from kubectl.

Licensing

mitmproxy is free and open source under the MIT licence. There is no paid tier and no feature gating, which is the main structural difference from the commercial proxies it competes with — the trade is that its primary interface is the terminal, and its flexibility assumes you are willing to write Python.

Questions about mitmproxy

Is mitmproxy free?

Yes. mitmproxy is free and open source under the MIT licence, with no paid tier and no feature gating.

What is the difference between mitmproxy, mitmweb and mitmdump?

They share one engine but present it differently. mitmproxy is the command-line tool, mitmweb is a graphical interface that runs in a browser and adds request interception and replay, and mitmdump is driven by the Python API for scripting and automation.Developer-stated

Which protocols does mitmproxy support?

It can intercept, inspect, modify and replay HTTP/1, HTTP/2, HTTP/3, WebSockets and any other SSL/TLS-protected protocol, and decodes a range of message types from HTML to Protobuf.Developer-stated

What is mitmproxy used for?

The project describes it as a swiss-army knife for debugging, testing, privacy measurements and penetration testing, and it can also be used to implement custom commands or visualise messages.Developer-stated

Alternatives to mitmproxy

Apps that could replace this one — the same job, a different trade-off.

  • Proxyman

    Native macOS HTTP debugging proxy with HTTPS decryption.

    Both intercept and modify HTTP traffic, but mitmproxy is free, open source and scriptable in Python while Proxyman is a paid native Mac application with a graphical workflow.

    • Networking
    • One-time purchase
    • v26.0.1
  • Charles

    Cross-platform HTTP and HTTPS debugging proxy.

    Both are intercepting proxies for inspecting HTTP and HTTPS, but mitmproxy is open source and terminal-first while Charles is a paid cross-platform graphical application.

    • Networking
    • One-time purchase
    • v5.2.1

Works well with

Not a replacement — apps commonly used alongside this one.

  • Wireshark

    Open-source network protocol analyzer with deep packet inspection.

    mitmproxy works at the HTTP layer where requests and responses are readable, while Wireshark captures the packets underneath across every protocol.

    • Networking
    • Open Source
    • v4.6.9
Get it

Sources

Facts on this page are checked against the sources below. Last updated .

How Nuanyue grades sources →