restcli user manual

restcli is a terminal web API client written in Python. It draws inspiration from Postman and HTTPie, and offers some of the best features of both.


  • save requests as YAML files
  • scripting
  • parameterized requests using Jinja2 templating
  • expressive commandline syntax, inspired by HTTPie
  • first-class JSON support
  • interactive prompt with autocomplete
  • colored output

CLI Usage

Command-line usage is documented in the Usage manual.


With pip:

$ pip install -r requirements.txt
$ pip install .


$ python install

With but allow edits to the files under restcli/ and reflect those changes without having to reinstall restcli:

$ python develop

If you have invoke, you can use it for running the tests and installation. If not, you can install it with pip install invoke.

$ invoke test     # Run the tests
$ invoke install  # Install it
$ invoke build    # Run the whole build workflow


Assuming Docker is installed, restcli can run inside a container. To build the Docker container, run the following from the project root:

$ docker build -t restcli .

Then you can run commands from within the container:

$ docker run -it restcli -c foobar.yaml run foo bar
$ docker run -it restcli --save -c api.yaml -e env.yaml env foo:bar



Here’s what we have in store for the foreseeable future.

  • autocomplete Group and Request names in the command prompt
  • support for other formats (plaintext, forms, file uploads)
  • convert to/from Postman collections


Here are some longer-term feature concepts that may or may not get implemented.


This software is distributed under the Apache License, Version 2.0.