Skip to main content

The modern API client that lives in your terminal.

Project description

Posting.

Posting is an powerful HTTP client which brings Postman-like functionality to your terminal.

It's designed for those who prefer working in a terminal environment and enjoy fast, keyboard-centric user interfaces.

image

It's still a work in progress and far from feature complete (that's why there are no installation instructions yet). Please don't open any bug reports yet - although I'm happy to hear ideas/suggestions!

Collections

Requests can be stored inside "collections" on your file system. A collection is simply a directory containing one or more requests.

Each request is stored as a simple YAML file, suffixed with .posting.yaml - easy to read, understand, and version control!

Here's a quick example of a *.posting.yaml file.

name: Create user
description: Adds a new user to the system.
method: POST
url: https://jsonplaceholder.typicode.com/users
body: |-
  {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com"
  }
headers:
- name: Content-Type
  value: application/json
- name: Some-Header
  value: Some value
  enabled: false
params:
- name: sendWelcomeEmail
  value: 'true'

To open a collection, simply pass the path to the --collection option when launching Posting:

posting --collection path/to/collection

The supplied directory will be recursively searched for files matching **/*.posting.yaml, and they'll appear in the sidebar.

If you don't supply a collection directory, the current working directory will be used.

To save the currently open request, press ctrl+s.

Navigation

Posting can be navigated using either mouse or keyboard.

Jump mode

Jump mode is the fastest way to get around in Posting.

Press ctrl+o to enter jump mode.

A key overlay will appear on the screen, allowing you to jump to any widget by pressing the corresponding key.

https://github.com/darrenburns/posting/assets/5740731/5e7cdf57-90b2-4dba-b468-0057c6ef1806

Tab navigation

tab and shift+tab will move focus between widgets, and j/k will move around within a widget.

Keyboard shortcuts

Important keyboard shortcuts are displayed at the bottom of the screen.

However, there are many other shortcuts available - these will be documented soon.

Command palette

Some functionality in Posting doesn't warrant a dedicated keyboard shortcut (for example, switching to a specific theme), and can instead be accessed via the command palette.

To open the command palette, press ctrl+p.

https://github.com/darrenburns/posting/assets/5740731/a199e5f2-5621-42e6-b239-a796d1dc144a

Animation

You can turn off animations by setting the environment variable TEXTUAL_ANIMATIONS=none.

Planned Features

  • Keyboard Friendly: Navigate and iterate on your APIs using simple keyboard shortcuts.
  • File System Storage: Your collections are saved as files, meaning you can easily sync them using version control or your favorite cloud provider.
  • Multiplatform: Run on MacOS, Linux and Windows.
  • Template Variables: Define variables and substitute them into your requests.
  • Powerful Text and JSON Editor: Offers tree-sitter powered syntax highlighting, undo/redo, copy/paste, and more.
  • Runs Over SSH: Send requests from a remote host via SSH.
  • Your Idea Here: Please let me know if you have opinions on the features above, or any other ideas!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

posting-1.0.0b16.tar.gz (43.5 kB view hashes)

Uploaded Source

Built Distribution

posting-1.0.0b16-py3-none-any.whl (57.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page