All apps/Restish

Restish

restish

A CLI for interacting with REST APIs that expose an OpenAPI spec.

Runs as restish|macOS, Linux, Windows|rest.sh

Command form

ai-draft · 2 tasks · 16 fields

Make a one-off HTTP GET or POST request with headers, query parameters, filtering and output format. Registered-API commands, auth setup, pagination and plugins are not covered.

Opens the form; the finished command lands at your prompt, unrun
otty gui restish

restish get

GET a URL

Perform an HTTP GET request against a full URL or registered API short-name URL.

GET a URLExample values, fixed in this page — nothing here reaches a terminal
Basic
URL*
url
Request headers
string
Query parameters
string
Filter
string
Output format
7 choicesenum
TasksEach one presets the form for one job
GET and filter
urlfilteroutput_formatheaderquery
ParametersOnly these flags are editable in the form
URL
url · positional 0
Request headers
One 'Name: Value' per entry.
string · repeatable
--rsh-header-H
Query parameters
One key=value per entry.
string · repeatable
--rsh-query-q
Filter
Shorthand or jq expression, for example body.items.
string
--rsh-filter-f
Output format
enum
--rsh-output-format-oautojsonyamltablendjsonlinesgron
Profile
string
--rsh-profile-p
Bypass cache
boolean
--rsh-no-cache
Retry attempts
integer
--rsh-retry
Skip TLS verification
boolean
--rsh-insecure
Verbose
count
--rsh-verbose-v

restish post

POST to a URL

Perform an HTTP POST with an optional shorthand body, @file or stdin. Body arguments use Restish shorthand.

POST to a URLExample values, fixed in this page — nothing here reaches a terminal
Basic
URL*
url
Body
string
Request headers
string
Filter
string
TasksEach one presets the form for one job
POST a body
urlbodyheaderfilter
ParametersOnly these flags are editable in the form
URL
url · positional 0
Body
Shorthand such as 'name: Ada, active: true', or @file.json. Leave empty to read stdin.
string · positional 1 · repeatable
Request headers
string · repeatable
--rsh-header-H
Query parameters
string · repeatable
--rsh-query-q
Filter
string
--rsh-filter-f
Allow retries for POST
boolean
--rsh-retry-unsafe
SourcesEvery flag above is checked against these
ref
restish get <url> restish get https://api.example.com/items -f body.items -o table -H, --rsh-header repeatable Name: Value none Add request headers. -q, --rsh-query repeatable key=value none Add query params without hand-editing the URL. -f, --rsh-filter expression none Filter with shorthand or jq. -o, --rsh-output-format format auto auto, json, yaml, cbor…
manual2026-10-27

rest.sh

ref
restish post <url> [body...] restish post https://api.example.com/items 'name: Ada, active: true' restish post -c json https://api.example.com/items @item.json restish post https://api.vendor.test/jobs 'name: demo' --rsh-retry 2 --rsh-retry-unsafe -H, --rsh-header repeatable Name: Value none Add request headers. -q, --rsh-query repeatable key=value none…
manual2026-10-27

rest.sh

Before it fills your prompt, Otty checks the installed restish against its version. A form that does not match your version is not offered.