POSTING 3 rebuilt in Go · one binary keys: 1–6 panes · ^O jump · ^P commands galaxy
posting
Posting is a keyboard-driven HTTP client. Compose requests, switch environments and read responses without reaching for the mouse. Run it on your laptop, over SSH or inside a container, and keep every request as plain YAML next to your code.
go install github.com/darrenburns/posting/cmd/posting@latest
# theme Posting ships 37 themes. Pick one and the whole site follows.
# keyboard first
Jump anywhere with a short label, run any command from the palette, and let Posting handle the fiddly parts of HTTP. These are real screens from Posting 3.
Every pane, tab and request gets a label. Type it to go straight there.
Search every action by name, with its shortcut alongside.
See every value in the active environment, override one for this session, and keep secrets masked.
Paste a curl command into the URL bar and press enter to turn it into a request.
Copy any request as a ready-to-run curl command, with its variables filled in.
Every exchange is saved. Reopen one to see its response and how long each stage took.
Preview all 37 built-in themes as you scroll, or load the ones you made for Posting 2.
# plain files
A collection is a folder, and each request is a short YAML file. Review changes in pull requests, share them with your team, and branch them alongside your code.
Environments are ordinary .env files. Layer several with -e, switch between them while Posting is running, and see edits on disk straight away.
~ ❯ 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
# in the box
$ in the URL, headers, query, auth or body to complete variable names. Header names complete too, each with a note on what it does.$EDITOR, or F3 to read it in $PAGER.config.yaml or POSTING_* environment variables.posting remote, and watch each one arrive. Set it up.# coming from Posting 2?
Posting 3 is a ground-up rewrite, and it reads the files you already have. Point it at your collections and keep going.
# install
go install github.com/darrenburns/posting/cmd/posting@latest
It runs the same on your laptop, on a remote server over SSH, or inside a container.
# open source
Posting is Apache 2.0 licensed and shaped by the people who use it. Follow the roadmap, report a bug or suggest a feature on GitHub, or sponsor development.