Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A tiny command line HTTP client. GET, POST, PUT, and DELETE from your terminal.
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
build/scripts-2.7 Added proxy option


A tiny command-line HTTP client. Easily interact with HTTP calls within your terminal. Built on top of the requests library and meant to be a command line wrapper for requests.

Current version: v0.1.8

res v0.1.8

HTTP it up with python. Use res to make command line http calls. I made this to make the development of my REST API to be a little bit easier.

  res console
  res (-h | --help)
  res (-v | --version)
  res <method> <url> [options]

  -d --data=<data>          Send request data
  -H --HEADER=<header>      Defines custom headers
  -a --auth=<auth>          Authenticaton with 'user' and 'password' keys
  -p --params=<params>      Send request parameters
  -b --bytes                Returns content response in bytes
  -r --raw                  Returns content response in raw format
  -j --json                 Decodes content response from json
  -c --cookie=<cookie>      Defines cookies
  -x --proxy=<proxy>        Sends proxy with protocal as key and the port as value
  -e --encoding             Return encoding of content
  -i --include              Include headers
  -h --help                 Show this screen.
  -v --version              Show version.


To download and install res, you must follow the instructions below.

Install via PIP

$ pip install res

Install via

First you need to get a copy of the source. I'm going to use git and clone it to my local machine.

Clone the repository into a folder

git clone res

Install with

$ cd res
$ python install


Example GET, POST, PUT and DELETE calls

$ res GET

$ res POST

$ res PUT

$ res DELETE

Include headers

$ res GET -i

Send request data to the body

$ res POST -d "{


$ res POST -a "{


$ res POST -p "{ 'q':'names' }" 

Change data response content (new in v0.1.6)

Binary response -> bytes

$ res GET -b


$ res GET --bytes

Raw socket response -> raw

$ res GET -r


$ res GET --raw

JSON response decoder -> json

$ res GET -j


$ res GET --json

Interactive Console

The interactive console current (v0.1.7) cannot pass any arguments that require dictionaries (i.e. --data, --proxy, --cookie, etc.). However, arguments like --bytes, --encoding, --raw, etc., are allowed.

$ res console
>>> get -e `// -e is for encoding`
>>> get
`response content....`

There are even more HTTP options that are compatible with res. Run the command at $ res -h to see all of the functions res wraps around.


If you would like to contact me for further information on the project, see the info below.


Github: jawerty

Twitter: @jawerty


Something went wrong with that request. Please try again.