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.
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
Built Distribution
Hashes for posting-1.0.0b15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07eb7419307c872a5c94ae71808df56b0a0b418be8d3a120baa4bae4d390dca7 |
|
MD5 | 47e2c13bcc8f5b09ab0a0e9e2921f861 |
|
BLAKE2b-256 | ff65ae35d324413dbbd07317cbe669428eb9673a7e42eb18db6d1ae76168fd50 |