Interactive HTTP shell for API workflows. Send HTTP requests, manage headers and base URLs, and rerun past commands from a terminal REPL.
- Interactive REPL with tab completion
- Send GET, POST, PUT, DELETE requests
- Multi-line request input for custom headers and body
- Persistent session state (base URL, global headers)
- JSON response pretty-printing
- Command history and rerun by index
- Colored terminal output
curl -fsSL https://raw.githubusercontent.com/hars-21/reqsh/main/install.sh | shDownload the latest binary from the releases page.
git clone https://github.com/hars-21/reqsh.git
cd reqsh
cargo build --releaseThe binary will be at target/release/reqsh.
CLI Options:
reqsh --help
reqsh --versionStart the REPL:
reqshSet a base URL:
reqsh> base https://api.example.comSend a GET request:
reqsh> GET /usersSend a POST request with headers and body:
reqsh> POST /users
.....> Content-Type: application/json
.....> Authorization: Bearer token123
.....>
.....> {"name": "john"}
.....> ::send| Command | Description |
|---|---|
GET <path> |
Send GET request |
POST <path> |
Send POST request |
PUT <path> |
Send PUT request |
DELETE <path> |
Send DELETE request |
base <url> |
Set base URL for all requests |
header <key> <value> |
Set a global header for all requests |
history |
Show command history |
rerun <index> |
Re-run a command from history |
help |
Show built-in help |
exit |
Exit the REPL |
When you type a method and path, the REPL enters multi-line mode (.....>). You can add headers as key: value pairs, followed by a blank line and the request body. End with ::send on its own line.
Contributions are welcome. Please read CONTRIBUTING.md for guidelines on how to set up the project, run tests, and submit changes.
MIT. See LICENSE for details.