---
obj: application
website: https://mitmproxy.org
repo: https://github.com/mitmproxy/mitmproxy
---
# mitmproxy
mitmproxy is a set of tools that provide an interactive, SSL/TLS-capable intercepting proxy for [HTTP](../../internet/HTTP.md)/1, [HTTP](../../internet/HTTP.md)/2, and [WebSockets](../../internet/WebSocket.md).

![Screenshot](./mitmproxy.avif)

## Features
- Intercept [HTTP](../../internet/HTTP.md) & HTTPS requests and responses and modify them on the fly
- Save complete [HTTP](../../internet/HTTP.md) conversations for later replay and analysis
- Replay the client-side of an [HTTP](../../internet/HTTP.md) conversation
- Replay [HTTP](../../internet/HTTP.md) responses of a previously recorded server
- Reverse proxy mode to forward traffic to a specified server
- Transparent proxy mode on [macOS](../../macos/macOS.md) and [Linux](../../linux/Linux.md)
- Make scripted changes to [HTTP](../../internet/HTTP.md) traffic using [Python](../../dev/programming/languages/Python.md)
- SSL/TLS certificates for interception are generated on the fly

## 3 Powerful Core Tools
The mitmproxy project’s tools are a set of front-ends that expose common underlying functionality. When we talk about “mitmproxy” we usually refer to any of the three tools - they are just different front-ends to the same core proxy.
**mitmproxy** is an interactive, SSL/TLS-capable intercepting proxy with a console interface for [HTTP](../../internet/HTTP.md)/1, [HTTP](../../internet/HTTP.md)/2, and WebSockets.
**mitmweb** is a web-based interface for mitmproxy.
**mitmdump** is the command-line version of mitmproxy. Think tcpdump for [HTTP](../../internet/HTTP.md).

## Usage
Mitmproxy starts as a regular [HTTP](../../internet/HTTP.md) proxy by default and listens on http://localhost:8080.

You need to configure your browser or device to route all traffic through mitmproxy. Browser versions and configurations options frequently change, so we recommend to simply search the web on how to configure an [HTTP](../../internet/HTTP.md) proxy for your system. Some operating system have a global settings, some browser have their own, other applications use [environment variables](../../linux/Environment%20Variables.md), etc.

You can check that your web traffic is going through mitmproxy by browsing to http://mitm.it - it should present you with a simple page to install the mitmproxy Certificate Authority - which is also the next step. Follow the instructions for your OS / system and install the CA.
