Skip to main content

curl statistics made simple

Project description

# httpstat


httpstat visualizes `curl(1)` statistics in a way of beauty and clarity.

It is a **single file🌟** Python script that has **no dependency👏** and is compatible with **Python 3🍻**.

## Installation

There are three ways to get `httpstat`:

- Download the script directly: `wget`

- Through pip: `pip install httpstat`

- Through homebrew (macOS only): `brew install httpstat`

## Usage



If installed through pip or brew, you can use `httpstat` as a command:


### cURL Options

Because `httpstat` is a wrapper of cURL, you can pass any cURL supported option after the url (except for `-w`, `-D`, `-o`, `-s`, `-S` which are already used by `httpstat`):

httpstat -X POST --data-urlencode "a=b" -v

### Environment Variables

`httpstat` has a bunch of env vars to control its behavior. Here are some usage demos, you can also run `httpstat --help` to see full explanation.


Set to `true` to show resposne body in the output, note that body length
is limited to 1023 bytes, will be truncated if exceeds. Default is `false`.


By default httpstat shows remote and local IP/port address.
Set to `false` to disable this feature. Default is `true`.


Set to `true` to show download and upload speed. Default is `false`.


speed_download: 3193.3 KiB/s, speed_upload: 0.0 KiB/s


By default httpstat stores body in a tmp file,
set to `false` to disable this feature. Default is `true`


Indicate the cURL bin path to use. Default is `curl` from current shell $PATH.

This exampe uses brew installed cURL to make HTTP2 request:

HTTPSTAT_CURL_BIN=/usr/local/Cellar/curl/7.50.3/bin/curl httpstat --http2

HTTP/2 200

> cURL must be compiled with nghttp2 to enable http2 feature
> ([#12](


Set to `true` to see debugging logs. Default is `false`

## Related Projects

Here are some implementations in various languages:

- Bash: [b4b4r07/httpstat](

This is what exactly I want to do at the very beginning, but gave up due to not confident in my bash skill, good job!

- Node: [yosuke-furukawa/httpstat](

[b4b4r07]( mentioned this in his [article](, could be used as a HTTP client also.

- Go: [davecheney/httpstat](

I'm practicing Go recently, it's happy to read and learn from this one.

- Go (library): [tcnksm/go-httpstat](

Other than being a cli tool, this project is used as library to help debugging latency of HTTP requests in Go code, very thoughtful and useful, see more in this [article](

- PHP: [talhasch/php-httpstat](

The PHP implementation by @talhasch

Some code blocks in `httpstat` are copied from other projects of mine, have a look:

- [reorx/python-terminal-color]( Drop-in single file library for printing terminal color.

- [reorx/getenv]( Environment variable definition with type.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for httpstat, version 1.2.1
Filename, size File type Python version Upload date Hashes
Filename, size httpstat-1.2.1-py2-none-any.whl (9.2 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size httpstat-1.2.1.tar.gz (6.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page