Slumber a TUI HTTP Client

https://slumber.lucaspickering.me

Comments

ananthakumaranMay 22, 2026, 7:52 AM
For those who are using Emacs, https://github.com/federicotdn/verb provides similar UX, I have been using it as a postman alternative for quite some time.
wing-_-nutsMay 22, 2026, 2:58 PM
Postman has turned from something that's bad, that I put up with, to something that's god awful that I simply refuse to engage with. Now days, I just do everything with curl, shell functions and history
tracker1May 22, 2026, 4:23 PM
A couple years ago, around when Deno hit 1.0, I started using it for a LOT of my shell scripting scenarios... I can write TypeScript files with a shebang that pretty much just work, and can reference repository packages that load to a cache directory at runtime if missing.. no separate npm install step.

This has been extremely helpful... I'm as inclined to copy as fetch then paste and tweak in a TS file as I am to use curl or anything else... I've pretty much stopped using things like postman altogether.

JoeBOFHMay 22, 2026, 9:58 PM
I ran from Postman to Insomnia. Then that was ruined. Now I am onto Bruno. We will see how long that lasts.
moralestapiaMay 22, 2026, 10:56 PM
Bruno ftw!
moribvndvsMay 23, 2026, 3:06 AM
Same except insert some insomnia forks/clones. Silver lining: if/when Bruno goes, I’ll finally be annoyed enough write my own.
vladdeMay 22, 2026, 7:30 AM
looks nice when you want to quickly get something up and running! i'm trying to move away from GUI-based, and i haven't really found a nice workflow with just using curl

https://justuse.org/curl/

aitchnyuMay 22, 2026, 7:49 AM
I used to write Python scripts with Requests or run from terminal. It has a nicer syntax, all LLMs know it, and we all used Python in the backend.

https://docs.python-requests.org/en/latest/index.html

WorldMakerMay 22, 2026, 4:58 PM
If you already have Python installed, I'm still a big fan of the httpie CLI [1]. It's a CLI wrapper for Requests that provides a very friendly CLI DSL.

[1] https://httpie.io/cli

ranger_dangerMay 26, 2026, 2:07 AM
Unfortunately it appears unmaintained, and still doesn't support HTTP/2, which is a non-starter for me.
NoSaltMay 22, 2026, 4:06 PM
Oh, man, that write-up is hilarious! Hilarious and true. The KISS principle is the way to go.
hunter2_May 22, 2026, 6:42 AM
TUI stands for "Text User Interface" not "Terminal User Interface" considering that the point of TUI vs GUI is to distinguish text mode from graphical mode. The word "terminal" isn't really meant to imply text even if quite a few terminal emulators are, indeed, text mode; rather it typically means that the UI is drawn by some other machine than the one you're touching. For example, a very popular Windows Server feature formerly named "Terminal Services" is for GUI terminals, not TUI terminals. A likely source of confusion is the MacOS app named Terminal, which only becomes a terminal in the real sense of the word once you decide to let some other machine draw your UI (ssh, telnet, rlogin, etc.).

But it looks very cool!

hombre_fatalMay 22, 2026, 11:26 AM
TUI also means terminal user interface.

But this is wrong:

> it typically means that the UI is drawn by some other machine than the one you're touching

I guess you're conflating thin-client terminal in the networking sense vs vt100 hardware terminal lineage (where "terminal" comes from here), but it means a text mode interface that runs in the terminal emulator and uses, say, ansi escape sequences.

Rather, when you see TUI, it just means the app runs in one of your kitty panes.

Btw, your "Terminal Services" example doesn't show that "terminal" implies remote drawing. It shows Microsoft extended the word to cover remote GUI sessions, which is a later, broader usage.

fc417fc802May 23, 2026, 1:59 AM
> Btw, your "Terminal Services" example doesn't show that "terminal" implies remote drawing. It shows Microsoft extended the word to cover remote GUI sessions, which is a later, broader usage.

They didn't. It implies remote drawing and that has at least occasionally included arbitrary graphics. See plan 9 for example.

hunter2_May 22, 2026, 3:45 PM
> I guess you're conflating thin-client terminal in the networking sense vs vt100 hardware terminal lineage

Yes, I didn't really think to separate the two. While my examples of ssh/telnet/rlogin are all of the networking variety, I didn't mean to exclude RS-232 (which the VT100 used). Regardless of whether the wire is for serial or packet data, if you're at a terminal (including any of the thin/dumb/smart varieties), you're not at the box doing the heavy lifting because that's on the other end of a wire representing an important demarcation, a demarcation that doesn't really apply to a local app running a text-mode user interface (or if the mental gymnastics are performed that does introduce such demarcation even within a local app -- think backend vs frontend -- then all local apps are terminals).

joshkaMay 22, 2026, 5:11 PM
Historically, “TUI” referred to “Text User Interface”, but language evolves and “Terminal User Interface” has been common usage in terminal-app/tooling communities for at least the last decade (probably more).

The distinction we (Ratatui) draw is that the rendering surface is a terminal: historically sometimes a physical hardware terminal (someone got Ratatui running on a Minitel a while back), more commonly today a terminal emulator/PTY environment.

That framing also better captures the kinds of constraints and capabilities Ratatui apps actually deal with: terminal escape sequences, cell-based rendering, alternate screen buffers, mouse handling, resize behavior, scrollback interaction, etc.

In addition, these apps don't only do text only these days as modern terminals support various graphics protocols (Sixel, Kitty, iTerm graphics) and other extensions that can allow for weird and wonderful things that are not just text.

hunter2_May 22, 2026, 11:49 PM
Thanks! As I think about terminals in quite different contexts (credit card terminal, battery terminal, train terminal, etc.) I'm realizing that it's really just any kind of endpoint at all, so pretty much any human interface device (HID) should probably be called a terminal. But when taken to that level, using the acronym TUI (in the "terminal" sense) to mean "not a GUI/CLI" (as if big old consoles or emulators/PTYs thereof are the only type of terminals) seems questionable.
wolvoleoMay 23, 2026, 11:28 PM
Sixels are far from modern :) They were introduced in the VT240 (special purpose version of the 220) and became mainstream on DEC terminals with the 320.
_fluxMay 22, 2026, 7:14 AM
On the other hand, there are many elements in the user interface that are not text. In fact, I think it would be quite understandable if one even separated REPLs like bash or octave to be "text user interfaces" while applications that make use of character placement and border special characters "terminal user interfaces", because they use means beyond text stream to communicate with the user. One might even render straight up graphics to a terminal [emulator application].

Even X had a separate application called xterm 42 years ago: the complete X system was not to my knowledge called a terminal system, except perhaps when discussing the dedicated client devices, such as VT1300. Also the term "virtual terminal" as far as I know has always referred to a the kind of interface this application is making use of.

So I think we can just accept that the term is overloaded such that "terminal" refers to both of these situations, as there is no historical precedent to have it exclude the other situation, and the term "terminal-based application" is completely clear to a rational listener.

wjholdenMay 22, 2026, 8:29 AM
Moreover, I'll appeal to authority and point out that Ratatui's motto is "Cook up delicious terminal user interfaces" (https://ratatui.rs).
mentalgearMay 22, 2026, 9:11 AM
Doesn't make it in any form a valid argument for Terminal instead of Text.
rustyminnowMay 22, 2026, 1:23 PM
> character placement and border special characters

These characters _are_ text though. They can be copy pasted like text, I can use them in my text editor, you can stick em in a string.

nine_kMay 22, 2026, 7:22 AM
A REPL like bash already is not a pure text stream, since readline is used. Zsh, even less so.
_fluxMay 22, 2026, 8:30 AM
But they are just convenience features, not in my opinion the defining property. They basically work just the same without them.
nine_kMay 22, 2026, 7:51 PM
Try running plain sh / ash interactively without readline, and notice how much pain it is.

But I agree that having multiple windows, etc is a whole new step; it's just a limited GUI accessible easily via SSH. Could involve sixel graphics as well.

_fluxMay 23, 2026, 9:06 AM
Virtual terminal is surprisingly capable, it even has word delete feature! And shells have some nice history features which I'm sure would become even more familiar if one had to use them (as I suppose was the case a long time ago), such as !$ that expands to the last argument of previous entry.
dual_dingoMay 22, 2026, 7:17 AM
I would argue that a local only session with terminal.app is still a real terminal session because the app is just a terminal for the connection to the MacOS version of getty. In principle, this is not different from having a serial cable between the host and an old-style terminal or encapsulating that connection over a different network like with SSH and telnet etc.
embedding-shapeMay 22, 2026, 10:34 AM
macOS also call their log viewer "Console" for what I'm sure are obvious reasons to some, but seemingly confuses every beginner developer at least initially, while "console" is what many have come to understand "Text-like entry system to run computer commands".
skydhashMay 22, 2026, 12:28 PM
Unix has a dedicated console concept which is the system output. This is more likely to be the hardware console (and maybe synonyms). I think there’s a lot of steps to get to a log viewer named console, though.
mentalgearMay 22, 2026, 9:15 AM
Very much agree - "Text User Interface" is also a much clearer descriptor for non-technical users to understand. Normal people have an immediate idea of 'text' but not of that 'strange nerdy terminal thing' - and that's important because often times a good 'Text User Interface' is all that even regular people need !

(plus custom theme customize-able & much less work for the devs to build & maintain, and way less dependencies)

gcgbarbosaMay 22, 2026, 11:19 AM
If it is just an acronym, they can define it as they wish in my opinion.

As long as they defines it first (and they did)

marcuskazMay 22, 2026, 2:41 PM
These small utilities are great, now so quick and easy to create. I made a TUI version and then grew tired of it and ported it to Electron, took less than an hour for each. For those complaining about YAML format, you can create your own in less than an hour using whatever format you want.

The potentially disheartening thing about the ability to create apps like this, they are just low effort are they even worth sharing anymore? I have personal clones of Postman, Teux Deux, Goodreads and a few other utilities. Previously I would clean them up, document, and share out, but now I don't bother with most of it. Just not worth it, when people can make their own customized to their whims.

RAZKOMMay 22, 2026, 3:30 PM
Being able to make apps like these so quickly with AI now has actually let me learn more than anything. I agree that most are not worth sharing, but as primarily C# developer, I've been making it a point to try out different languages that I would have otherwise never have touched like Rust and Go. That being said, I think with enough polish and a little bit of passion like this Slumber app, they do become worth sharing.
voidfuncMay 22, 2026, 3:29 PM
Yea I don't bother trying to share my personal tools anymore. Many are just quickly slopped out by Claude and work well for me but they're not passion projects or polished to be consumable by others.
throwaway613746May 22, 2026, 4:23 PM
[dead]
jhyMay 22, 2026, 7:47 AM
> Slumber is a terminal-based HTTP client, built for interacting with REST and other HTTP clients

I wonder what that means -- I looked around the docs but didn't see that it interacts with other clients. I thought maybe it would show a generated curl command or something along those lines. But perhaps it's just a typo for HTTP servers?

oneeyedpigeonMay 22, 2026, 10:24 AM
Maybe it's referring to the CLI, since you could pipe to/from it? There's an example relating to curl: https://slumber.lucaspickering.me/user_guide/cli/subcommands...
keyleMay 22, 2026, 6:44 AM
If it could import and export postman collections and env, you'd have a customer for life!
voidUpdateMay 22, 2026, 7:10 AM
> "To that end, configuration is defined in a YAML file called the request collection"

Genuine question, why do people use YAML? I've been using it a little bit recently (reading existing documents, not writing my own), and it just seems like a more overcomplicated and less human-readable version of JSON? With potential security vulnerabilities?

kalaksiMay 22, 2026, 7:27 AM
If not using any esoteric features, it's more human readable (imo), easier to write, can have comments and has some useful features like different kind of multi-line values. JSON is valid YAML, by the way.
skywhopperMay 22, 2026, 8:41 AM
There’s lots of overengineered features in YAML that are problematic, but at a high level, it’s much, much more human-friendly than JSON. And if you love JSON, good news: it’s 100% valid YAML.
mystifyingpoiMay 22, 2026, 7:41 AM
> less human-readable version of JSON

Please provide an example, how YAML can be less readable than JSON. I struggle to think of any.

voidUpdateMay 22, 2026, 7:55 AM
Indentation based structure isn't really a good thing in my eyes, where the format of the document encodes semantic meaning. With JSON, you can display it how you want, and because it's bracketed it will still encode the same data.

Also I really don't like the hyphen notation... This is very unreadable to me:

  - a
  - b: c
  - - d
embedding-shapeMay 22, 2026, 10:37 AM
YAML:

  - - "hello"
YAML expanded:

  -
    - "hello"
JSON (typical formatting):

  [
    [
      "hello"
    ]
  ]
And EDN for good measure:

  [["hello"]]
I know which one I prefer :) Silly example perhaps, but once you have X lists nested in Y lists, it does become a lot easier to see why some prefer a bit more visually hierarchically stronger syntaxes
skydhashMay 22, 2026, 12:31 PM
I still prefer ini files for configuration. Easier to grep and sed.
tracker1May 22, 2026, 4:30 PM
You can get a bit more if you use TOML over INI... it's similar at a baseline, but still a bit more rich for advanced configuration than INI is.
beartMay 22, 2026, 3:31 PM
They work wonderfully until you need to do anything more advanced than a key-value store.
skydhashMay 22, 2026, 6:02 PM
My belief is that anything that requires more than that are hiding the fact that what they truly need is a DSL. Instead they force you to write AST (ansible, github actions, docker compose,…)
amazingmanMay 22, 2026, 7:18 AM
People use YAML because a bunch of other people use YAML. Whatever its warts, there's no use resisting it.
t-kalinowskiMay 22, 2026, 3:57 PM
Because YAML is the worst config format, except for all the others.

https://opensource.posit.co/blog/2026-05-21_in-defense-of-ya...

voidUpdateMay 25, 2026, 6:59 AM
Seems like that article is saying that YAML 1.1 is bad, but 1.2 is good? Which would be fine, except I am parsing YAML 1.1 files (as indicated by a directive at the top). I don't control the format of the data
speed_spreadMay 22, 2026, 7:33 AM
Because as long as you stay away from anchors and inline JSON, YAML is a perfectly workable, structured, human-readable format that supports comments.
bschwindHNMay 22, 2026, 7:23 AM
> it just seems like a more overcomplicated

Because people LOVE overcomplicated shit. You see it happen everywhere.

kalaksiMay 22, 2026, 7:30 AM
I don't think that's it
jianshuoMay 24, 2026, 7:02 AM
I wonder why it is still useful? Does it has a CLI that empowers AI agent? Why should we use TUI, instead of GUI for this application?
smetjMay 22, 2026, 6:42 AM
That looks great! Will give it a spin during my daily work. Thanks for making and sharing it.
unkn0wn_rootMay 22, 2026, 9:04 AM
Resterm is also another api TUI client https://github.com/unkn0wn-root/resterm but uses .rest/.http files instead.
guilhasMay 23, 2026, 1:29 PM
Been using https://httpyac.github.io, but that looks quite nice. How have I not seen it before?

.http files is definitely the way

onionyMay 22, 2026, 12:54 PM
I tried to delete the example entries from my newly created collection but seems this is impossible on Mac without remapping the keys?

Delete key does not exist, Fn-Backspace does not work too.

tracker1May 22, 2026, 4:15 PM
Not sure if it's supported, but would be cool to take an openapi spec doc and generate the scaffold for queries, similar to swaggerui but inside this tui.
whittenMay 22, 2026, 5:48 PM
There is some discussion here about text user interface versus terminal user interface.

There is also the term CHUI for Character User Interface that is contrasted with TUI.

ualloMay 22, 2026, 7:19 AM
SwiftyBugMay 22, 2026, 1:09 PM
This is awesome! OpenAPI integration is a great feature.
cafebabbeMay 22, 2026, 12:22 PM
looks very polished and neat. Alas for me 10-20ish lines for the json response is really, really not enough
zdkasterMay 22, 2026, 6:33 AM
Love the support for neovim integration
sgtMay 22, 2026, 8:04 AM
The "Postman" team hates this one app...
Duke64May 26, 2026, 8:14 AM
I've already made the switch. Since then, my family and I have been doing better. My wife and I are having sex more often—and it's better than ever! I've already been offered a pay raise at work—just like that!
rastrojero2000May 22, 2026, 12:33 PM
Doesn't feel particularly accessible, NVDA kept yelling at me all kinds of confusing things for daring using it :(
PikitiDevMay 22, 2026, 6:55 AM
[flagged]
thelookinMay 22, 2026, 9:24 AM
[dead]
dhruv3006May 22, 2026, 7:16 AM
Great to see this space so active.I see this a TUI.

You can also try out Voiden : https://voiden.md/ which has a different approach to this.

Also YAML is a interesting choice - any reasons for this.

PS : I am associated with Voiden.

bmn__May 22, 2026, 11:28 AM
> built for interacting with REST

I just tried it to verify that claim, but the software does not follow a hyperlink. How did you manage to screw up such a basic feature?