Skip to content

Repository files navigation

reqsh | Interactive HTTP shell

Platform Rust License Status PRs Welcome GitHub Stars

Interactive HTTP shell for API workflows. Send requests, manage headers & variables and rerun past commands from a terminal REPL.

Features

  • Interactive REPL with multi-line request editing
  • Send GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS requests (case-insensitive)
  • Multi-line request input with query params, headers, body and ### terminator
  • Persistent session state across restarts (~/.reqsh_state.json)
  • Variable interpolation with {{name}} syntax in paths, headers, query params and bodies
  • Global headers and variables (header, var)
  • Save, manage and run requests in-session (req)
  • Re-run the last executed request (req rerun)
  • Save the last response body to a file (req save-response <path>)
  • Command history with show, rerun and clear
  • Configurable request timeout
  • JSON response pretty-printing with colored output

Quick Start

Install

curl -fsSL https://reqsh.dev/install.sh | sh

Or via Homebrew:

brew tap hars-21/tap
brew install reqsh

Or via Cargo:

cargo install reqsh

You can also download a binary from the releases page or build from source.

Demo

demo.mp4

Usage

reqsh> base https://api.example.com
reqsh> GET /users
.....> ###

reqsh> POST /users
.....> Content-Type: application/json
.....>
.....> {"name": "john"}
.....> ###

For full documentation on commands, variables and usage see the docs.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for guidelines.

License

MIT. See LICENSE for details.

About

Interactive, persistent shell for HTTP requests. Built with Rust for ultimate speed and simplicity.

Topics

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Contributors

Languages