---
name: "pathod"
section: "1"
platform: "linux"
package: "mitmproxy"
version: "0.18.2-6+deb9u2"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/pathod"
---

# pathod(1)

a pathological HTTP/S daemon

## NAME

pathod - a pathological HTTP/S daemon

## SYNOPSIS

pathod \[-h\] \[--version\] \[-p *PORT*\] \[-l *ADDRESS*\] \[-a *ANCHOR*\]

       \[-c *CRAFTANCHOR*\] \[--confdir *CONFDIR*\] \[-d *STATICDIR*\] \[-D\]

       \[-t *TIMEOUT*\] \[--limit-size *SIZELIMIT*\] \[--nohang\] \[--nocraft\]

       \[--webdebug\] \[-s\] \[--cn *CN*\] \[-C\] \[--cert *SPEC*\]

       \[--ciphers *CIPHERS*\] \[--san *SAN*\]

       \[--ssl-version {`all`\|`TLSv1_2`\|`secure`\|`TLSv1_1`\|`TLSv1`\|`SSLv3`\|`SSLv2`}\]

       \[-e\] \[-f *LOGFILE*\] \[-q\] \[-r\] \[-x\] \[--http2-framedump\]

## DESCRIPTION

`pathod` is a pathological HTTP daemon designed to let you craft almost any conceivable HTTP response, including ones that creatively violate the standards. HTTP responses are specified using a small, terse language which `pathod` shares with its evil twin, `pathoc`. To start playing with pathod, fire up the daemon:

-

  ```
  $ pathod
  ```

By default, the service listens on port `9999` of `localhost`, and the default crafting anchor point is the path `/p/`. Anything after this URL prefix is treated as a response specifier. So, hitting the following URL will generate an HTTP 200 response with 100 bytes of random data:

-

  ```
  http://localhost:9999/p/200:b@100
  ```

See the language documentation (http://docs.mitmproxy.org/en/latest/pathod/language.html#language) to get (much) fancier.

## OPTIONS

### Optional Arguments:

- **-h, --help**

  Show this help message and exit.

- **--version**

  Show program's version number and exit.

- **-p *PORT***

  Port. Specify `0` to pick an arbitrary empty port. (Default: `9999`)

- **-l *ADDRESS***

  Listening address. (Default: `127.0.0.1`)

- **-a *ANCHOR***

  Add an anchor. Specified as a string with the form `pattern=spec` or `pattern=filepath`, where pattern is a regular expression.

- **-c *CRAFTANCHOR***

  URL path specifying prefix for URL crafting commands. (Default: `/p/`)

- **--confdir *CONFDIR***

  Configuration directory. (Default: `~/.mitmproxy`)

- **-d *STATICDIR***

  Directory for static files.

- **-D**

  Daemonize.

- **-t *TIMEOUT***

  Connection timeout.

- **--limit-size *SIZELIMIT***

  Size limit of served responses. Understands size suffixes, e.g. 100k.

- **--nohang**

  Disable pauses during crafted response generation.

- **--nocraft**

  Disable response crafting. If anchors are specified, they still work.

- **--webdebug**

  Debugging mode for the web app (dev only).

### SSL:

- **-s**

  Run in HTTPS mode.

- **--cn *CN***

  CN for generated SSL certs. (Default: `pathod.net`)

- **-C**

  Don't expect SSL after a CONNECT request.

- **--cert *SPEC***

  Add an SSL certificate. SPEC is of the form `"[domain=]path"`. The domain may include a wildcard, and is equal to `"*"` if not specified. The file at path is a certificate in PEM format. If a private key is included in the PEM, it is used, otherwise the default key in the conf dir is used. Can be passed multiple times.

- **--ciphers *CIPHERS***

  SSL cipher specification.

- **--san *SAN***

  Subject Altnernate Name to add to the server certificate. May be passed multiple times.

- **--ssl-version {`all`\|`TLSv1_2`\|`secure`\|`TLSv1_1`\|`TLSv1`\|`SSLv3`\|`SSLv2`}**

  Set supported SSL/TLS versions. `SSLv2`, `SSLv3` and `all` are INSECURE. Defaults to `secure`, which is TLS1.0+.

### Controlling Logging:

Some of these options expand generated values for logging. If you're generating large data, use them with caution.

- **-e**

  Explain responses.

- **-f *LOGFILE***

  Log to file.

- **-q**

  Log full request.

- **-r**

  Log full response.

- **-x**

  Log request/response in hexdump format.

- **--http2-framedump**

  Output all received & sent HTTP/2 frames.

## AUTHORS

`pathod` was written by Aldo Cortesi.

This manual page was written for the Debian GNU/Linux system, but its use elsewhere is encouraged.

## SEE ALSO

`pathod` documentation and examples are available online at \<http://docs.mitmproxy.org/en/latest/pathod/intro.html#pathod\>.
