Restish is a command-line client for working with REST-style HTTP APIs.
Instead of relying solely on generic request syntax, it can discover API descriptions exposed by a service and turn them into CLI operations, helping users interact with current resources, fields, and actions without needing a separate hand-written client. It supports OpenAPI 3.0, OpenAPI 3.1, and JSON Schema, which makes it useful for exploring, testing, and scripting against modern web APIs.
This is free and open source software.
Key Features
- Supports generic HEAD, GET, POST, PUT, PATCH, and DELETE requests alongside generated commands for API operations.
- Handles authentication with support for HTTP Basic, API keys, OAuth2 client credentials, and OAuth2 authorization code flows.
- Automatically paginates resource collections using hypermedia
prevandnextlinks. - Provides content negotiation, decoding, and unmarshalling for formats including JSON, YAML, CBOR, MessagePack, and Amazon Ion.
- Supports compressed responses including Gzip, Deflate, and Brotli.
- Parses hypermedia formats including HAL, Siren, Terrifically Simple JSON, and JSON:API.
- Offers shell completion for Bash, Fish, Zsh, and PowerShell.
- Includes local caching, automatic retries for rate-limited APIs, shorthand filtering, and colorized readable output.
- Ships as a fast native zero-dependency binary.
Website: github.com/rest-sh/restish
Support:
Developer: rest-sh
License: MIT License

Restish is written in Go. Learn Go with our recommended free books and free tutorials.
Related Software
| Alternatives to curl | |
|---|---|
| Wget2 | Successor of Wget |
| Wget | Makes retrieving large files or mirroring entire web or FTP sites easy |
| aria2 | Multi-protocol and multi-source command-line download utility |
| HTTPie | HTTP client with an intuitive user interface |
| curlie | The power of curl, the ease of use of httpie |
| xh | Fast and friendly tool for sending HTTP requests |
| hurl | Run and test HTTP requests with plain text |
| TerminusDM | User-friendly terminal interface for managing your downloads efficiently |
| getparty | HTTP download manager with multi-parts |
| Restish | CLI for interacting with REST-ish HTTP APIs |
| Posting | Terminal-based HTTP client for developing and testing APIs |
| Slumber | Terminal-based HTTP client |
| Command line HTTP clients | |
|---|---|
| HTTPie | Command line interface, cURL-like tool for humans |
| aria2 | Multi-protocol and multi-source command-line download utility |
| Wget2 | Successor of Wget |
| Posting | Terminal-based HTTP client for developing and testing APIs |
| hurl | Run and test HTTP requests with plain text |
| curl | Command line tool for transferring data with URL syntax. Transfer library too |
| axel | Command-line download accelerator |
| xh | Fast and friendly tool for sending HTTP requests |
| Wget | Retrieves content from web servers |
| Restish | CLI for interacting with REST-ish HTTP APIs |
| curlie | The power of curl, the ease of use of httpie |
| Slumber | Terminal-based HTTP client |
| TerminusDM | User-friendly terminal interface for managing your downloads efficiently. |
| getparty | HTTP download manager with multi-parts |
Read our verdict in the software roundup.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |


Please read our Comment Policy before commenting.