A tiny command line HTTP client. GET, POST, PUT, and DELETE from your terminal.
Switch branches/tags
Nothing to show
Latest commit 030e025 Aug 1, 2013 @jawerty Update README.md



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 setup.py

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 https://github.com/jawerty/res.git res

Install with setup.py

$ cd res
$ python setup.py install


Example GET, POST, PUT and DELETE calls

$ res GET http://example.com

$ res POST http://example.com

$ res PUT http://example.com

$ res DELETE http://example.com

Include headers

$ res GET http://example.com -i

Send request data to the body

$ res POST http://example.com -d "{


$ res POST http://example.com -a "{


$ res POST http://example.com -p "{ 'q':'names' }" 

Change data response content (new in v0.1.6)

Binary response -> bytes

$ res GET http://example.com -b


$ res GET http://example.com --bytes

Raw socket response -> raw

$ res GET http://example.com -r


$ res GET http://example.com --raw

JSON response decoder -> json

$ res GET http://example.com -j


$ res GET http://example.com --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 http://example.com -e `// -e is for encoding`
>>> get http://example.com
`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.

Email: jawerty210@gmail.com

Github: jawerty

Twitter: @jawerty

Website/Blog: http://jawerty.github.io