Skip to content

Restish

Dennis Lee edited this page May 27, 2026 · 1 revision

title: restish radar_quadrant: Tools radar_ring: Assess radar_position: inner

restish

restish is an open-source Go CLI for interacting with REST-ish HTTP APIs, developed by Daniel Taylor and maintained at github.com/rest-sh/restish. It targets API-described services rather than arbitrary HTTP endpoints, auto-discovering OpenAPI 3.0/3.1 or JSON Schema descriptions from the API itself and generating named subcommands without any manual configuration.

Key capabilities: HTTP/2 by default with HTTP/1.1 fallback; generic verb commands (get, post, put, patch, delete) similar to curl or HTTPie; API profile-based auth covering HTTP Basic, API key, OAuth2 client credentials, and OAuth2 PKCE; automatic pagination via RFC 5988 next/prev hypermedia links; content negotiation for JSON, YAML, CBOR, and MsgPack; and shell completion for Bash, Zsh, and Fish. The project has approximately 1,300 GitHub stars and was last updated in May 2026.

Radar Assessment

Placed in Tools / Assess / inner.

restish occupies a distinct niche between Bruno and curl. Bruno handles collection-based API testing with version-controlled .bru files (Trial/inner on this radar); curl handles one-off HTTP calls without API awareness. restish addresses the middle case: scripting and exploratory interaction against a known OpenAPI-described API, where auto-generated named commands and built-in OAuth2 reduce per-request boilerplate significantly.

The auto-discovery feature is the key differentiator. When an API advertises its OpenAPI spec via RFC 8631 service-desc link relations, restish generates typed subcommands automatically and picks up changes when the API is updated — no client reinstall required. This makes it directly applicable to any team that owns an OpenAPI-described API and uses the CLI for integration testing, local development, or ops scripting.

Inner position reflects brew install restish as the only friction, direct complementarity with Bruno (Trial/inner), api-spec-quickstart (Assess/inner), and Scalar (Assess/inner) already on the radar, and a clear trial path against any existing OpenAPI spec.

Trial gate: restish configured against at least one real OpenAPI-described API with named subcommands in active use for development or scripting.

Clone this wiki locally