Show HN: Posting v1 – The modern HTTP client that lives in your terminal (github.com)
I just released version 1.0 of Posting, an open source terminal application I've been working on which you might find useful if you work with, test, or develop HTTP APIs!
Posting (https://github.com/darrenburns/posting) is an HTTP client, not unlike Postman and Insomnia. However, as a TUI application, it works over SSH and enables efficient keyboard-centric workflows. Your requests are stored locally in simple readable YAML files, meaning they're easy to read and version control.
Some other features include:
- "Jump mode" navigation - Environments/variables with autocompletion - Syntax highlighting powered by tree-sitter - Vim keys support in much of the UI - Various builtin themes - A config system - "Open in $EDITOR" - A fuzzy search command palette for quickly accessing functionality.
Posting is written in Python using the Textual[1] framework, which I also help maintain.
Although 1.0 has been released, it's not yet feature complete. I'd love to hear feedback from the community to make sure I'm on the right track and learn what's important to people.
So, if you have any thoughts, feature requests, or opinions, big or small, I'd love to hear them. At this early stage, your ideas can really help shape the roadmap of the project!
Thanks, Darren
[1] Textual: https://github.com/Textualize/textual
51 comments
[ 4.6 ms ] story [ 122 ms ] threadBTW, have you looked at Bruno before deciding to develop yourself?
I had a look at the Bruno website for the first time a few weeks ago, although I haven't tried it for myself yet. I'm definitely inspired by and agree with a lot of the principles behind Bruno: local first, developer friendly, readable/Git-friendly collections and so on.
I think I share a lot of the same motivations as Bruno's creator - I feel the landscape of HTTP API testing clients may actually have regressed in recent years from a developer's perspective, as the companies behind Postman/Insomnia etc. figure out how to monetise them.
Not to mention replacing heavy Java gui apps as well! The myriad DB guis for whatever historical reason have mostly been slow heavy, and paid, Java apps.
I'd actually written a thing that integrated cli db tools(eg [1]) with kitty[2] and visidata to show a query editor and then results underneath in a kitty split pane. Now I've been using Harlequin[3] in my terminal. So nice to have these apps be fast programs that live in a terminal tab instead of their own bloated poorly-keyboard-driven Electron apps.
[1] https://github.com/kbd/setup/blob/main/HOME/.config/litecli/...
[2] https://github.com/kbd/setup/blob/main/HOME/bin/kw
[3] https://github.com/tconbeer/harlequin/
For those who haven't used the Jetbrains HTTP client recently: maybe two or three years ago it was completely replaced and has been improved continuously since. Give it a try.
Great including themes, but for light mode it's only one. Does Posting/Textual support no theming falling back on the configured terminal that runs it?
There's no fallback to the ANSI theme of the terminal as it breaks a lot of Textual's features.
There is a PR open at the moment relating to detecting the terminal background colour I believe, so in the future we could probably use that to choose a reasonable fallback.
Really like it, so will try it out in my toolkit for a while! Thanks for the great work you have been doing and sharing with the community.
edit: omg I didn’t even notice the vim keybinds I’m sold
- It took me a while to find the Metadata tab to edit a request's name, I guess because I don't think of the name and description as metadata (even if in a technical sense they are, relative to the request config). My inclination would be to make this the first tab and rename it to Info.
- I somehow managed to save two requests into the same file with no warning/confirmation from the UI.
- When using the up/down arrows to navigate between requests in a collection, I found it counterintuitive to have to hit Enter to actually select the request.
There are a couple of UX sharp edges to clear up for sure - a bit more validation, confirmations, etc to be added.
Thanks for improving my workflow, Darren!
I developed Just-API (https://github.com/kiranz/just-api) with YAMLs for automation testing of APIs.
the one thing that worries me is compatibility - I echo the voices asking for hurl support. it kinda sucks that each of these programs invents its own format.
it would also be great to be able to run these requests as part of a CI pipeline, without opening the TUI. supporting a format like hurl would add this ability automatically, because the same files could be used by other clients.
p.s. upon trying it out the first things i missed is "how do I create a new collection?" and "how do I exit?". it felt that both should have been a command in the command plate. in the end if created the collection manually as a folder and exited using Ctrl+C, but I'm still not sure if that was the intended way.
Hiding how to quit the app was just another attempt to win over the Vim crowd!
(Yes ctrl+c is the intended way, it’s in the docs now and I’ll add it to the app footer)
All HTTP APIs that are all made to interact with JSON.
https://marketplace.visualstudio.com/items?itemName=humao.re...
Curious if it works in VSCODE terminal, did you try it?