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