Postman for the terminal. A fast, terminal-native API client written in Rust.
reqly is a developer tool for making HTTP, GraphQL, and WebSocket requests directly from the terminal. It combines the speed of CLI tools like curl and httpie with an interactive, beautifully designed Terminal UI (TUI) inspired by tools like Postman.
- Multi-Protocol Support:
- HTTP: Full REST support (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS).
- GraphQL: Native support for queries, mutations, JSON variables, and operation names.
- WebSocket: Live, interactive CLI messaging for WS/WSS endpoints.
- Dual Interface:
- CLI Mode: Fast, scriptable, zero-friction command-line interface.
- TUI Mode: Keyboard-driven interactive UI with dedicated protocol tabs.
- Developer Experience:
- Automatic JSON pretty-printing.
- Local SQLite History: Automatically saves your requests. Cycle through past URLs and bodies in-place perfectly mimicking terminal history.
- Multi-line editing, Response scrolling, and clipboard copying.
- Clean modular architecture designed for easy extensibility (e.g., adding gRPC in the future).
- Built natively in Rust for blazing-fast performance.
Ensure you have Rust and Cargo installed, then clone and build:
git clone https://github.com/ajkumar1205/reqly.git
cd reqly
cargo build --releaseThe executable will be available at target/release/reqly. You can move it to your PATH for global access:
sudo cp target/release/reqly /usr/local/bin/Or just run it locally using cargo run.
Launch the TUI by running reqly without any arguments:
reqlyF6: Next panelF7/Shift+Tab: Previous panelTab: Insert 4 spaces inside multiline fields (Headers / Body / GraphQL) OR jump to next panel in single-line fieldsCtrl+P: Cycle through protocols (HTTP → GraphQL → WebSocket)Up/Down: Navigate multi-line text or scroll response panesPageUp/PageDown(orCtrl+Up/Ctrl+Down): Cycle backward/forward through local request history (in-place)y/c: Copy response body to clipboard (only when Response panel is focused)Enter: Send request / connect / resendSpace: Cycle HTTP methods (when Method pane is focused)Ctrl+C: Quit
reqly is equally powerful as a standard command-line executable.
GET Request:
reqly GET https://jsonplaceholder.typicode.com/posts/1POST Request with body and custom headers:
reqly POST https://httpbin.org/post \
-H "Authorization: Bearer my-token" \
-H "Content-Type: application/json" \
-d '{"name": "reqly", "fast": true}'Send a GraphQL query with JSON variables:
reqly graphql https://countries.trevorblades.com/ \
-q 'query GetCountry($code: ID!) { country(code: $code) { name capital } }' \
-v '{"code": "IN"}' \
-o GetCountryStart an interactive WebSocket session (type your messages and see server replies in real-time):
reqly ws wss://echo.websocket.org --jsonreqly comes with a comprehensive suite of unit and integration tests (using wiremock for local server mocking). Run the tests via:
cargo testMIT License.