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 comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |


Please read our Comment Policy before commenting.