The interactive shell for HTTP requests.
Set a base URL once. Add headers once. Use variables. Save requests. Re-run from history.
reqsh is a persistent, interactive REPL shell for making HTTP requests directly from your terminal. Instead of constructing verbose curl commands over and over, you enter a session where everything is stateful, your base URL, your headers, your variables.
$ curl -fsSL https://reqsh.dev/install.sh | sh# Install
curl -fsSL https://reqsh.dev/install.sh | sh
# Launch
reqshreqsh> base https://api.example.com
reqsh> header Authorization Bearer tok_abc123reqsh> GET /users
reqsh> POST /users
.....> Content-Type: application/json
.....>
.....> { "name": "Alice" }
.....> ::sendreqsh> set token eyJhbGciOiJIUzI1NiJ9
reqsh> GET /users/{{token}}
reqsh> ::sendreqsh> save get-users
reqsh> run get-usersreqsh> history
1: base https://api.example.com
2: header Authorization Bearer tok_abc123
3: GET /users
reqsh> rerun 3| Feature | Description |
|---|---|
| Persistent REPL | Base URLs and headers persist across requests in a session |
| Variables | Use {{variable}} syntax to interpolate values anywhere |
| History | Every command is recorded; rerun any past request instantly |
| Save & Run | Name requests and replay them with one command |
| Case-insensitive | get, GET, GeT — all work the same |
| Pretty output | JSON responses are auto-formatted and syntax-highlighted |
| Built-in timing | Every response shows its latency |
| Multi-line bodies | Build complex request bodies across multiple lines |
| Blazing fast | Written in Rust; launches in milliseconds |
| Command | Description |
|---|---|
base <url> |
Set the session base URL |
header <key> <value> |
Add a persistent header |
set <name> <value> |
Set a session variable |
GET/POST/PUT/PATCH/DELETE <path> |
Send an HTTP request |
::send |
Fire the current request |
save <name> |
Save the last request |
run <name> |
Replay a saved request |
history |
Show session history |
rerun <id> |
Re-execute a command from history |
help |
Show command docs |
exit |
Quit the session |
curl -fsSL https://reqsh.dev/install.sh | shgit clone https://github.com/hars-21/reqsh.git
cd reqsh
cargo install --path .Download the latest release for your platform from GitHub Releases.
Full docs at reqsh.dev/docs
- Installation - Platform-specific install instructions
- Usage - How to use reqsh
- Commands - Full command reference
- Variables - Variable interpolation
- Changelog - Release history
- GitHub Issues — Bug reports and feature requests
- Releases — Binary downloads
- Discussions — Questions and ideas