[![Build Status](https://travis-ci.org/mitmproxy/mitmproxy.png?branch=master)](https://travis-ci.org/mitmproxy/mitmproxy) [![Coverage Status](https://coveralls.io/repos/mitmproxy/mitmproxy/badge.png?branch=master)](https://coveralls.io/r/mitmproxy/mitmproxy) __mitmproxy__ is an interactive, SSL-capable man-in-the-middle proxy for HTTP with a console interface. __mitmdump__ is the command-line version of mitmproxy. Think tcpdump for HTTP. __libmproxy__ is the library that mitmproxy and mitmdump are built on. Documentation, tutorials and distribution packages can be found on the mitmproxy.org website: [mitmproxy.org](http://mitmproxy.org). Features -------- - Intercept HTTP requests and responses and modify them on the fly. - Save complete HTTP conversations for later replay and analysis. - Replay the client-side of an HTTP conversations. - Replay HTTP responses of a previously recorded server. - Reverse proxy mode to forward traffic to a specified server. - Transparent proxy mode on OSX and Linux. - Make scripted changes to HTTP traffic using Python. - SSL certificates for interception are generated on the fly. - And much, much more. Installation ------------ The recommended way to install mitmproxy is running `pip install mitmproxy` For convenience, we provide binary packages on [mitmproxy.org](http://mitmproxy.org/). Requirements ------------ * [Python](http://www.python.org) 2.7.x. * [netlib](http://pypi.python.org/pypi/netlib), version matching mitmproxy. * Third-party packages listed in [setup.py](https://github.com/mitmproxy/mitmproxy/blob/master/setup.py) Optional packages for extended content decoding: * [PyAMF](http://www.pyamf.org/) version 0.6.1 or newer. * [protobuf](https://code.google.com/p/protobuf/) version 2.5.0 or newer. * [cssutils](http://cthedot.de/cssutils/) version 1.0 or newer. For convenience, all optional dependencies can be installed with `pip install mitmproxy contentviews` __mitmproxy__ is tested and developed on OSX, Linux and OpenBSD. On Windows, only mitmdump is supported, which does not have a graphical user interface. Hacking ------- The following components are needed if you plan to hack on mitmproxy: * The test suite requires the `dev` extra requirements listed in [setup.py](https://github.com/mitmproxy/mitmproxy/blob/master/setup.py) and [pathod](http://pathod.net), version matching mitmproxy. Install these with `pip install mitmproxy dev`. * Rendering the documentation requires [countershape](http://github.com/cortesi/countershape). The following procedure is recommended to set up your dev environment: ``` $ git clone https://github.com/mitmproxy/mitmproxy.git $ cd mitmproxy $ pip install --src . -r requirements.txt ``` This installs the latest GitHub versions of mitmproxy, netlib and pathod into `mitmproxy/`. All other development dependencies save countershape are installed into their usual locations. Please ensure that all patches are accompanied by matching changes in the test suite. The project maintains 100% test coverage.