Introduction
Posting is a terminal-based API client that provides a rich, interactive interface for sending HTTP requests. It fills the same niche as Postman or Insomnia, but runs entirely in the terminal using the Textual TUI framework.
What Posting Does
- Sends HTTP requests (GET, POST, PUT, DELETE, PATCH, etc.) with a visual interface
- Displays responses with syntax-highlighted JSON, HTML, and plain text
- Saves and organizes requests into collections stored as YAML files
- Supports environment variables and request chaining
- Runs over SSH and inside any terminal emulator
Architecture Overview
Built on Python's Textual framework, Posting renders a full GUI-like experience using terminal cells. The HTTP layer uses httpx for async request handling. Collections are persisted as plain YAML files on disk, making them easy to version control alongside project source code.
Self-Hosting & Configuration
- Install via pip or pipx:
pipx install posting - No configuration required to start; launch with
posting - Store collections in project directories for team sharing via Git
- Environment files use dotenv format for variable substitution
- Customize themes and key bindings via the config directory
Key Features
- Full TUI with mouse support, tabs, and split panes
- YAML-based collections that live in your Git repo
- Environment variable support with dotenv files
- Syntax-highlighted response viewer for JSON, XML, and HTML
- Works over SSH — test APIs from remote servers
Comparison with Similar Tools
- Postman — GUI desktop app with cloud sync; Posting is terminal-native and local-first
- Insomnia — similar GUI approach; Posting has no Electron overhead
- HTTPie CLI — command-line only with no interactive UI
- Bruno — file-based API client; Posting adds a rich TUI layer
- curl — powerful but no interactive request building
FAQ
Q: Can I import Postman collections? A: Import support is in development. Currently, collections are authored in YAML.
Q: Does it support authentication methods like OAuth? A: It supports Bearer tokens, Basic auth, and custom headers. Full OAuth flow support is planned.
Q: Can I use it over SSH? A: Yes. It runs in any terminal, making it ideal for testing APIs on remote servers.
Q: Are requests stored locally? A: Yes. All collections are plain YAML files on disk with no cloud component.