keys: 1–6 panes · ^O jump · ^P commands galaxy

posting

The API client that lives in your terminal.

An open-source API client with the tools you expect from a desktop app, right in your terminal. Build HTTP, GraphQL, and gRPC requests, inspect responses, and keep your collections in Git alongside your code.

brew install darrenburns/homebrew/posting@beta

Other installation methods

Try a theme.

Keyboard first

Every pane, tab and request gets a label. Type it to go straight there.

Your requests are files. Commit them.

Collections are folders of YAML files: version them in Git and review changes in pull requests.

Layer .env files with -e and switch environments without restarting. Edits on disk reload automatically.

~ ❯ tree sample-api
sample-api
├── auth
│   ├── login.posting.yaml
│   └── me.posting.yaml
├── cors-preflight.posting.yaml
├── health.posting.yaml
├── local.env
├── staging.env
└── users
    ├── create-user.posting.yaml
    ├── delete-user.posting.yaml
    ├── get-user.posting.yaml
    ├── list-users.posting.yaml
    └── update-user.posting.yaml
2 directories, 11 files

~ ❯ cat sample-api/users/create-user.posting.yaml
name: Create user
description: Create a new user account.
method: POST
url: ${BASE_URL}/users
body:
  content: |-
    {
      "name": "Ada Lovelace",
      "email": "ada@example.com",
      "role": "admin"
    }
  content_type: application/json
auth:
  type: bearer_token
  bearer_token:
    token: ${API_TOKEN}
headers:
  - name: Content-Type
    value: application/json

Other features

autocompletion
Complete variables with $ in URLs, headers, query, auth and bodies. Header suggestions include descriptions.
url bar
Preview the resolved URL before sending. Variables turn green when resolved and red when missing.
authentication
Basic, Digest (MD5 and SHA-256) and bearer tokens, with variables allowed in every field.
responses
Highlighted JSON, an expandable tree with JSONPath filtering, headers, cookies and a timing trace.
request tabs
Keep several requests open, with unsaved changes marked.
editor & pager
Press F4 to edit a body in $EDITOR, or F3 to read it in $PAGER.
keymaps & config
Rebind actions and configure Posting with config.yaml or POSTING_* environment variables.
layouts
Resize panes and arrange the request and response vertically or side by side.
coding agents
Let agents send requests through your open Posting session with posting remote. Set it up.
nerd font icons
Icons switch on automatically in Ghostty, and anywhere else with one setting.

Bring your HTTP collections.

Posting 3 opens your Posting 2 collections without conversion. Python scripts are preserved but aren't run, history is separate, and some settings and theme options have changed.

  • HTTP requestsno conversion
  • .env filesread unchanged
  • themesmain hex colours
  • keymapssupported actions
  • config.yamlsupported settings

Install with Homebrew.

brew install darrenburns/homebrew/posting@beta

Other installation methods

Contribute.

Follow the roadmap, report bugs or suggest features on GitHub, or sponsor development.