brainstate

darrenburns/posting · source

Snapshot 0 · 2026-11-04T12:47:27Z · Go · Apache-2.0

Content fingerprintd3458a37b288cf2f3efe7c0f2485d0cb1395f2965f3e2c02b08459e750dc5c1b

GitHub description at capture

The modern API client that lives in your terminal.

README at capture

<h1 align="center">Posting</h1>

<p align="center"><strong>A powerful HTTP client that lives in your terminal.</strong></p>

<p align="center">Posting is an HTTP client, not unlike Postman and Insomnia. As a TUI application, it can be used over SSH and enables efficient keyboard-centric workflows. Your requests are stored locally in simple YAML files, so they're easy to read and version control.</p>

<img width="968" alt="Posting cycling through six dark themes, with request tabs, a populated collection, header autocomplete, and a JSON response" src="docs/assets/themes/themes.gif" />

<p align="center"><a href="https://posting.sh">Website</a> · <a href="#installation">Installation</a> · <a href="https://posting.sh/guide/">User guide</a></p>

Some notable features include:

- request tabs, so you can work on several requests at once
- "jump mode" navigation
- layered environments and variables, with a variables screen and autocompletion
- header autocompletion and collection search
- syntax highlighting
- response search, a collapsible JSON tree, and JSONPath filtering
- HTTP, GraphQL, and gRPC, including streaming
- server-sent events (SSE), with a live event log and JSON payload inspection
- request timing, and a persistent history of responses
- customizable keybindings and extensive configuration
- 37 built-in themes, plus user-defined themes
- open in $EDITOR/$PAGER
- import curl commands by pasting them into the URL bar, and export requests as curl commands
- import from OpenAPI, Postman and Bruno
- a command palette for quickly accessing functionality
- `posting remote`, so coding agents like Claude Code and Codex can send requests through the Posting you have open while you watch

## Jump mode

Press a shortcut, type a label, and jump straight to any part of the interface.

<img width="968" alt="Filtering the collection, opening a request, jumping to a header field and accepting an autocompletion, then jumping into the response" src="docs/assets/features/jump-mode.gif" />

## Mouse support

Click, scroll, select text, and drag to resize panels.

<img width="968" alt="Using the mouse to switch request tabs, resize the response panel, scroll through a response, and select text" src="docs/assets/features/mouse.gif" />

## Explore your responses

Search response text, explore JSON as a collapsible tree, and filter it with JSONPath.

<img width="968" alt="Finding text in a JSON response, expanding and collapsing its tree, and filtering the same response with JSONPath" src="docs/assets/features/responses.gif" />

## gRPC and GraphQL

Send GraphQL queries and work with gRPC services, including interactive streaming.

<table>
  <tr>
    <th>gRPC streaming</th>
    <th>GraphQL</th>
  </tr>
  <tr>
    <td width="50%"><img width="460" alt="An open bidirectional gRPC stream with sent and received messages and Streaming status" src="docs/assets/features/grpc.png" /></td>
    <td width="50%"><img width="460" alt="A GraphQL query with variables and a successful JSON response" src="docs/assets/features/graphql.png" /></td>
  </tr>
</table>

## Installation

Posting 3 is in beta. It's a single binary written in Go. Install it with Homebrew:

```bash
brew install darrenburns/homebrew/posting@beta
```

Or download an archive for macOS, Linux or Windows from the [releases page](https://github.com/darrenburns/posting/releases).
Or, with [Go](https://go.dev/dl/) 1.25.5 or newer installed, run:

```bash
go install github.com/darrenburns/posting/v3/cmd/posting@latest
```

Now you can run Posting via the command line:

```bash
posting
```

Coming from Posting 2? Posting 3 reads the same collections, configuration and `.env` files.
See [Coming from Posting 2](https://posting.sh/guide/migrating/) for what's changed.

## Contributing

Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. To build Posting 3 from a clone of this repository, run `go build ./cmd/posting`, and run the tests with `go test ./...`.

Try gRPC locally with the [example server and collection](examples/grpc/README.md), including an interactive bidirectional streaming walkthrough.

Posting 3 is built with [Terma](https://github.com/darrenburns/terma). Posting 2 was built with [Textual](https://github.com/textualize/textual).

<p align="center"><a href="https://posting.sh">Website</a> · <a href="#installation">Installation</a> · <a href="https://posting.sh/guide/">User guide</a></p>