Skip to content

The interactive shell for HTTP requests.

Set a base URL once. Add headers once. Use variables, save requests, and re-run them from history. Pure terminal efficiency, built in Rust.

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

Everything a terminal-first workflow needs.

A persistent REPL.

Stop typing the same host and authentication headers over and over. Set your base URL and headers once per session — every subsequent request uses them automatically.

reqsh> base https://api.stripe.com
reqsh> header Authorization Bearer sk_test
reqsh> GET /v1/customers
.....> ::send

Time-travel with history.

Every command is saved. Type historyto see everything you've done in the current session. Made a typo or need to repeat a request? Just use rerun <id> to execute it instantly.

reqsh> history
1:base https://api.stripe.com
2:header Authorization Bearer sk_test
3:GET /v1/customers
reqsh> rerun 3

Variables. Save. Run.

Use {{name}} syntax to interpolate values into paths, headers, and bodies. Save any request with save and replay it instantly with run. Every response includes its timing.

reqsh> set token eyJhbGciOiJIUzI1NiJ9
reqsh> GET /users/{{token}}
.....> ::send
HTTP/1.1 200 OK 142ms
reqsh> save get-users
reqsh> run get-users

Ready to leave curl flags behind?

One command. No config files, no accounts, no runtime. Just a fast shell for your API work.

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