News for hackers. Stuff that matters.

Show HN: Posting v1 – The modern HTTP client that lives in your terminal

https://github.com/darrenburns/posting

Hi HN!

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 | 33 points | on HN )
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by saila on Wednesday July 10, 2024 @12:18PM (#40928511)
This is awesome. Here are a couple bits of feedback:

- 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.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @06:39PM (#40932193)
Great feedback, thank you. I agree “Info” is probably clearer.

There are a couple of UX sharp edges to clear up for sure - a bit more validation, confirmations, etc to be added.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by gregwebs on Wednesday July 10, 2024 @10:24AM (#40927262)
Would be great to be able to use it with the hurl format to have a GUI for hurl: https://hurl.dev/docs/hurl-file.html
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @10:46AM (#40927506)
I'm going to explore integration with other formats in the future. Right now there's experimental (incomplete) support for importing from OpenAPI v3. I'd like to add Postman and Insomnia collection importing too. Some kind of integration with Hurl could be very nice too, but would likely come further down the line.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by pesch3 on Wednesday July 10, 2024 @02:59PM (#40930209)
Please, allow using flat file http messages. IntelliJ has a great build in http client that's using HTTP message files and otherwise has a similar feature set. But having to launch intellij every time is a real PITA.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by dotancohen on Thursday July 11, 2024 @07:35AM (#40935543)
I was going to post almost this exact comment. When I've got an Intellij IDE already open, it's the best tool for this job - and that's saying a lot as we've been developing HTTP clients for decades. But I often find myself banging out a curl command with too many -H clauses if nothing Jetbrains is already running.

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.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by flufluflufluffy on Wednesday July 10, 2024 @11:20AM (#40927907)
I’m going to use this from now on simply because of how much more fun it is xD

edit: omg I didn’t even notice the vim keybinds I’m sold

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by erksa on Wednesday July 10, 2024 @10:34AM (#40927359)
This is great and feels very smooth to use. I really like the UX of it.

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?

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @10:49AM (#40927541)
You'll be able to add custom themes pretty soon. Hopefully within the next couple of weeks.

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.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by erksa on Wednesday July 10, 2024 @11:00AM (#40927670)
Great, appreciate it!

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.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by waiyan13 on Wednesday July 10, 2024 @10:17AM (#40927169)
Kudos to you man. I also had the same idea of developing a similar TUI tool because I'm getting tired of Electron apps for this. Now I can use yours with a peace of mind.

BTW, have you looked at Bruno before deciding to develop yourself?

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @10:30AM (#40927318)
Thank you!

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.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by kbd on Wednesday July 10, 2024 @01:00PM (#40928943)
Textual trending to a new de-facto basis for cross-platform gui apps is a HUGE improvement from every new app being js and Electron!

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/

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by tusharsadhwani on Wednesday July 10, 2024 @09:43AM (#40926839)
This is already the best API testing client that I have found. It's lightweight, it's snappy, it's intuitive, and it can run on a VPS out of the box over an SSH connection, no proxying needed.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @10:55AM (#40927607)
Thank you very much! It's definitely not feature complete yet - but I hope it can be a solid competitor in the space.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by D13Fd on Wednesday July 10, 2024 @09:35AM (#40926739)
Nice. Textual is awesome. I used it to develop a screenshot database app for an online game. It was ridiculously easy and the resulting app is speedy.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @10:56AM (#40927620)
Thank you!
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by lylejantzi3rd on Wednesday July 10, 2024 @11:07AM (#40927747)
Am I the only one who prefers to use nodejs and fetch for this these days? Especially since I need it to work in Windows (and no, I can't install WSL).
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by billowycoat on Wednesday July 10, 2024 @01:07PM (#40929008)
If you prefer writing JavaScript, the more power you, but I suspect Posting works on Windows. Textual, the library Posting is built on top of certainly does.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by 4lejandrito on Wednesday July 10, 2024 @04:57PM (#40931404)
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by lylejantzi3rd on Wednesday July 10, 2024 @05:41PM (#40931802)
Why? It does less than what plain code can do, it's less flexible, and harder to understand. Seriously, what problem is this trying to solve?
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by kbd on Wednesday July 10, 2024 @12:31PM (#40928659)
After never being happy with Postman or Insomnia and defaulting to 'curlie' for http requests, Posting is the first http gui that I'm actually sticking with. I have a terminal tab with it open all the time and it somehow manages to be more efficient than "up arrow+enter" (since you can just hit enter).

Thanks for improving my workflow, Darren!

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @06:40PM (#40932195)
Thanks for your kind words!
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by zorrn on Wednesday July 10, 2024 @12:47PM (#40928807)
Does anyone know which terminal emulator is used in all the examples? Looks very good!
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @01:19PM (#40929130)
It’s iTerm 2
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by zorrn on Sunday July 21, 2024 @04:56PM (#41028037)
Thanks
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by dlvhdr on Wednesday July 10, 2024 @12:54PM (#40928877)
This is amazing
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by connordavenport on Wednesday July 10, 2024 @02:19PM (#40929771)
This is fantastic, I love the jump mode navigation. Will be using this for the foreseeable future. Thanks for making it.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by astrodude on Wednesday July 10, 2024 @02:35PM (#40929943)
This looks great. I love that it's using YAML files that can be version controlled and shared.

I developed Just-API (https://github.com/kiranz/just-api) with YAMLs for automation testing of APIs.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by yoavm on Wednesday July 10, 2024 @03:04PM (#40930255)
this looks really great! since insomnia started requiring an account I never really settled on anything else.

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.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by timvdalen on Wednesday July 10, 2024 @04:07PM (#40930972)
I've switched to the built-in HTTP client in Jetbrains IDEs. The experience is a _little_ worse for one-off requests, but it's a lot nicer for things you do more often, and very easy to version control and include in a project.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @06:31PM (#40932149)
Thanks for the feedback! It is actually intended that you create the collection yourself first, but I should perhaps make that clearer.

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)

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by halfmatthalfcat on Wednesday July 10, 2024 @07:41PM (#40932551)
Give Bruno a look
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by goalonetwo on Wednesday July 10, 2024 @03:59PM (#40930886)
Am I the only one that hates what the internet became?

All HTTP APIs that are all made to interact with JSON.

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by bartvk on Wednesday July 10, 2024 @04:59PM (#40931420)
Well as soon as it gets interesting, JSON goes out of the window. No firmware engineer would send me JSON over HTTP, for example.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by joseangel_sc on Wednesday July 10, 2024 @05:43PM (#40931832)
what would you suggest?
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by rochak on Wednesday July 10, 2024 @04:00PM (#40930887)
Everything looks great except for it being written in Python. I’ll work on developing something similar with Go.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by timetraveller26 on Wednesday July 10, 2024 @08:16PM (#40932724)
You dropped an /s I hope
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by sibeliuss on Wednesday July 10, 2024 @05:30PM (#40931680)
This thing is cool. How did you do the visual terminal layout?
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by billowycoat on Wednesday July 10, 2024 @05:49PM (#40931879)
That would be Textual https://textual.textualize.io/
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by sprobertson on Wednesday July 10, 2024 @05:47PM (#40931861)
This is great, I could see myself using it daily. The only hindrance I've found so far is navigating large responses. Would be cool to have some way to collapse chunks of JSON (a la https://github.com/antonmedv/fx), or even just more vim key navigation, like G/gg, %, {/}, and search.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Wednesday July 10, 2024 @06:37PM (#40932170)
I agree that could be improved! The extra Vim keys you suggested should be simple enough to add.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by sandreas on Thursday July 11, 2024 @12:56PM (#40938495)
Maybe have a look at jless, a terminal json viewer with folding support.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by tills13 on Wednesday July 10, 2024 @07:08PM (#40932362)
We've strayed so far from God
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by eigenvalue on Wednesday July 10, 2024 @08:06PM (#40932674)
Looks cool. Would be really nice if you could automatically generate the yaml files from an openapi.json file like the kind that are automatically generated by FastAPI.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Thursday July 11, 2024 @07:04AM (#40935374)
There's an experimental OpenAPI import function.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by leetrout on Wednesday July 10, 2024 @08:25PM (#40932770)
This looks pretty cool! I have yet to find something to pull me away from the Rest Client extension for VS code. I will give this a try and see how it shakes out but at a glance on my phone I am not seeing support for variables.

https://marketplace.visualstudio.com/items?itemName=humao.re...

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by Iwan-Zotow on Thursday July 11, 2024 @09:02PM (#40941940)
yeah, REST vscode client is golden, just for the integration part.

Curious if it works in VSCODE terminal, did you try it?

Re:Show HN: Posting v1 – The modern HTTP client that lives i... by CodeWriter23 on Wednesday July 10, 2024 @10:00PM (#40933165)
Does it support OAuth2 authentication/ token acquisition? I’d love to not have to put my access token / secret key into Postman. Happy to be a tester.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by nsdarren on Thursday July 11, 2024 @07:04AM (#40935377)
It doesn't support OAuth2 yet, but I do plan to add more auth schemes in the future.
Re:Show HN: Posting v1 – The modern HTTP client that lives i... by CodeWriter23 on Thursday July 11, 2024 @01:32PM (#40938820)
I’ll keep my eye on your progress. Thanks.