diff --git a/docs/src/content/_index.md b/docs/src/content/_index.md index 44d41611e..cd368df0f 100644 --- a/docs/src/content/_index.md +++ b/docs/src/content/_index.md @@ -8,6 +8,9 @@ menu: # Introduction +The mitmproxy project's tools are a set of front-ends that expose common +underlying functionality. + **mitmproxy** is an interactive man-in-the-middle proxy for HTTP and HTTPS with a console interface. diff --git a/docs/src/content/overview-installation.md b/docs/src/content/overview-installation.md index d69805db0..62762db4b 100644 --- a/docs/src/content/overview-installation.md +++ b/docs/src/content/overview-installation.md @@ -51,19 +51,18 @@ command line. The console interface is not supported on native Windows. ## Self-contained Pre-built Binary Packages -For some platforms we provide pre-built binary packages containing -ready-to-run executables. This includes a self-contained Python 3 -environment, a recent OpenSSL that support ALPN and HTTP/2, and other -dependencies that would otherwise we cumbersome to compile and install. +For some platforms we provide pre-built binary packages containing ready-to-run +executables. This includes a self-contained Python 3 environment, a recent +OpenSSL that support ALPN and HTTP/2, and other dependencies that would +otherwise we cumbersome to compile and install. -Please be advised that we do not update these binaries after the initial -release. This means we do not include security-related updates of our -dependencies in already released mitmproxy versions. If there is a -severe issue, we might consider releasing a bugfix release of mitmproxy -and corresponding binary packages. +Dependencies in the binary packages are frozen on release, and can't be updated +in situ. This means that we necessarily capture any bugs or security issues that +may be present. We don't generally release new binary packages simply to update +dependencies (though we may do so if we become aware of a really serious issue). +If you use our binary packages, please make sure you update regularly to ensure +that everything remains current. -We only support the latest version of mitmproxy with bugfix and security -updates through regular minor releases. ## Docker Images diff --git a/docs/src/content/overview-tools.md b/docs/src/content/tools-mitmdump.md similarity index 57% rename from docs/src/content/overview-tools.md rename to docs/src/content/tools-mitmdump.md index 0200e899c..fb6a6c0c7 100644 --- a/docs/src/content/overview-tools.md +++ b/docs/src/content/tools-mitmdump.md @@ -1,46 +1,11 @@ --- -title: "Tools" -menu: "overview" +title: "mitmdump" +menu: "tools" menu: - overview: - weight: 3 + tools: + weight: 2 --- -# Overview - -You should think of the mitmproxy project's tools as a set of front-ends that -expose the same underlying functionality. We aim to have feature parity across -all of our tooling, and all tools share a common configuration mechanism and -most command-line options. - -## mitmproxy - -{{< figure src="/screenshots/mitmproxy.png" >}} - -**mitmproxy** is a console tool that allows interactive examination and -modification of HTTP traffic. It differs from mitmdump in that all flows are -kept in memory, which means that it's intended for taking and manipulating -small-ish samples. Use the `?` shortcut key to view, context-sensitive -documentation from any **mitmproxy** screen. - - -## mitmweb - -{{< figure src="/screenshots/mitmweb.png" >}} - -**mitmweb** is mitmproxy's web-based user interface that allows -interactive examination and modification of HTTP traffic. Like -mitmproxy, it differs from mitmdump in that all flows are kept in -memory, which means that it's intended for taking and manipulating -small-ish samples. - -{{% note %}} -Mitmweb is currently in beta. We consider it stable for all features -currently exposed in the UI, but it still misses a lot of mitmproxy's -features. -{{% /note %}} - - ## mitmdump **mitmdump** is the command-line companion to mitmproxy. It provides diff --git a/docs/src/content/tools-mitmproxy.md b/docs/src/content/tools-mitmproxy.md new file mode 100644 index 000000000..d3f05aef4 --- /dev/null +++ b/docs/src/content/tools-mitmproxy.md @@ -0,0 +1,36 @@ +--- +title: "mitmproxy" +menu: "tools" +menu: + tools: + weight: 1 +--- + +## mitmproxy + +{{< figure src="/screenshots/mitmproxy.png" >}} + +**mitmproxy** is a console tool that allows interactive examination and +modification of HTTP traffic. It differs from mitmdump in that all flows are +kept in memory, which means that it's intended for taking and manipulating +small-ish samples. Use the `?` shortcut key to view, context-sensitive +documentation from any **mitmproxy** screen. + +### Key binding configuration + +Mitmproxy's key bindings can be customized through in the +`~/.mitmproxy/keys.yaml` file. This file consists of a sequence of maps, with +the following keys: + +* `key` (**mandatory**): The key to bind. +* `cmd` (**mandatory**): The command to execute when the key is pressed. +* `context`: A list of contexts in which the key should be bound. By default this is **global** (i.e. the key is bound everywhere). Valid contexts are `chooser`, `commands`, `dataviewer`, `eventlog`, `flowlist`, `flowview`, `global`, `grideditor`, `help`, `keybindings`, `options`. +* `help`: A help string for the binding which will be shown in the key binding browser. + +#### Example + +{{< example src="examples/keys.yaml" lang="yaml" >}} + + + + diff --git a/docs/src/content/tools-mitmweb.md b/docs/src/content/tools-mitmweb.md new file mode 100644 index 000000000..a3205377a --- /dev/null +++ b/docs/src/content/tools-mitmweb.md @@ -0,0 +1,23 @@ +--- +title: "mitmweb" +menu: "tools" +menu: + tools: + weight: 3 +--- + +## mitmweb + +{{< figure src="/screenshots/mitmweb.png" >}} + +**mitmweb** is mitmproxy's web-based user interface that allows +interactive examination and modification of HTTP traffic. Like +mitmproxy, it differs from mitmdump in that all flows are kept in +memory, which means that it's intended for taking and manipulating +small-ish samples. + +{{% note %}} +Mitmweb is currently in beta. We consider it stable for all features +currently exposed in the UI, but it still misses a lot of mitmproxy's +features. +{{% /note %}} diff --git a/docs/src/layouts/partials/sidebar.html b/docs/src/layouts/partials/sidebar.html index 5ea41c122..2dbec23af 100644 --- a/docs/src/layouts/partials/sidebar.html +++ b/docs/src/layouts/partials/sidebar.html @@ -8,6 +8,9 @@ {{ partial "sidemenu" (dict "ctx" . "menuname" "overview") }} + + {{ partial "sidemenu" (dict "ctx" . "menuname" "tools") }} + {{ partial "sidemenu" (dict "ctx" . "menuname" "concepts") }} diff --git a/examples/keys.yaml b/examples/keys.yaml new file mode 100644 index 000000000..a2b3d66ae --- /dev/null +++ b/examples/keys.yaml @@ -0,0 +1,11 @@ +- + # Simple global binding + key: ctrl a + cmd: replay.client @marked +- + # Bind key only in the lfowlist + # Note that 1 is quoted, or YAML interprets it as a digit + key: "1" + ctx: ["flowlist"] + cmd: console.nav.down + help: Go to next flow \ No newline at end of file