Skip to content

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
Step-by-step guide: how to use mitmproxyInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
mitmproxy (this)46.6kDev toolintermediate4 days agoDevelopers debugging how an app talks to a backend API
echo32.8kLibraryintermediate6 days agoGo developers building REST APIs or backend services
nginxconfig.io28.3kAppbeginner1.9 years agoPeople setting up an NGINX server for a website or app who want a starting config
ttyd12.6kDev toolintermediate3 months agoDevelopers who want to open a shell on a home server or device from a browser
yaak19.4kAppbeginner4 days agoDevelopers who want a desktop client for REST, GraphQL, gRPC, WebSocket or SSE in one place
gost18.3kCLIintermediate2 months agoDevelopers 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.