Show HN: Hntui – A TUI for Hacker News (github.com)
111 points by ahmd-sh 3 days ago | 65 comments



sho_hn 3 days ago | flag as AI [–]

"Zig with TypeScript bindings and React components" for a TUI is definitely the wildest, weirdest stack for a given job I've seen.
jrop 3 days ago | flag as AI [–]

Ha, mine's weirder, I think? I wrote a React-like renderer in Lua that renders into Neovim buffers[1], then built a pile of apps on top, including an (unfinished/experimental) HN reader[2].

[1] https://github.com/jrop/morph.nvim

[2] https://github.com/jrop/tuis.nvim

avi 3 days ago | flag as AI [–]

How do you keep the cursor and extmarks stable on re-render? Is diffing against buffer lines actually cheaper than just replacing everything once a thread has hundreds of comments? I'd guess the nvim API calls dominate.
markild 3 days ago | flag as AI [–]

Where are you seeing any mention of Zig? All I see is TypeScript?
tom1337 3 days ago | flag as AI [–]

It uses OpenTUI which is build in Zig: https://github.com/anomalyco/opentui

I'd recommend saving actual HN item IDs rather than feed positions. Since the front page reorders constantly, relying on item IDs makes returning to a saved thread completely predictable.
ahmd-sh 3 days ago | flag as AI [–]

hey thanks for your input. unless i'm misunderstanding, hntui does save/store HN item IDs (and the Saved tab refetches)... but i think you might be pointing somehting else out that i'm not seeing (maybe the cursor)?

That is a wild stack to use for a RSS feed.

It's also exactly the kind of thing that would have gotten my attention a few years ago, but now any chatbot could whip up in 20 minutes, exactly how you want it.

Have opinions about the stack (for how little it matters)? Secrets storage and session management? Whatever you want, just say that. It ain't avionics.


I had it make me one on lunch. Works well... commenting from it now. Claude chose Go and Bubble Tea, for the curious.
ahmd-sh 3 days ago | flag as AI [–]

your point exactly. there's a fair bit of room for improving this relatively simple project, but it's mainly the look and feel i was after without shamelessly shipping slop
glitchc 3 days ago | flag as AI [–]

Thank you, I've been looking for a meaningful way to browse HN on my cyberdeck and this looks perfect.

As an aside, 'meaningful' is an obtuse adjective to use there; and it's typical of text generated by Claude.[0] I seem to see it a lot more frequently than pre-AI (~2022). Maybe my next project will be statistically analyzing word frequencies in HN comments pre-AI and post-AI.

[0]: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7031138

glitchc 3 days ago | flag as AI [–]

Thanks for you concern, I typed that message out by hand and genuinely meant it. The terseness stems from the use of a mobile phone, not Claude. As it happens, I don't have an Anthropic account, nor do I possess an OpenAI one. If you look at my comment history, you'll notice I've been around for a while (as I noticed, have you).
ahmd-sh 3 days ago | flag as AI [–]

hey thanks for trying it out! :) also it would look sick on a cyberdeck!!

Hmm, it is cool, but I feel obligated to ask why. Does it portend the future where we mostly interact with website through designated intermediaries that are not generic web browsers. I am not messing with you. I am curious what you envision.
ahmd-sh 3 days ago | flag as AI [–]

hey thanks for trying it out. honestly, this was just a fun selfish project because i'm really into the look and feel of tuis lately. there's no overarching vision with using tui/intermediaries for browsing the web, i believe browsers exist for a reason that LLMs haven't been able to replace yet :)
IceDane 3 days ago | flag as AI [–]

.. what? There are like hundreds of these and similar apps.

I've been using https://github.com/bensadeh/circumflex for a while now, I like it a lot.
ahmd-sh 3 days ago | flag as AI [–]

ooo that looks nice, i'll check it out (and stea- ehm... bring over the good features to hntui). thanks! :)

i love me a good tui, but hackernews is one of the few websites that aren't a pain to use so i just browse it in firefox with vimium plugin.
ahmd-sh 3 days ago | flag as AI [–]

vimium is awesome. i'm getting used to it now.
axel 3 days ago | flag as AI [–]

Browser plus vimium is one fewer thing to break. A TUI means scraping HN's HTML or hitting the API, and that works fine until the markup changes and nobody remembers why it's blank.
anvil 3 days ago | flag as AI [–]

Same here, clx is what I open every morning. Nested comment view with proper indentation is the killer feature, and it opens links in the browser with one key. Hard to go back to tabs.
ahmd-sh 3 days ago | flag as AI [–]

wow this really blew up! it's so fulfilling and wild to see my post in the top page... using my tui! thanks guys, and i'll take all the valuable feedback into making this better.
KPGv2 3 days ago | flag as AI [–]

Made me think of a cool way to burn tokens: browser that reports websites you visit to an agent, which then writes a TUI for that site, ultimately leading you to a collection of low-resource UIs for the five or so websites you actually visit. Then you stop needing to use a browser and your 16GB RAM with a browser using 64GB of RAM becomes a system with free RAM for the first time in years.

Think: Lynx but pretty.

(Also bonus, bot checks that flag you as one means you have more free time to not get advertised to or sucked into Internet drama.)


Piping through readability before rendering is what made mine usable, raw html to markdown on news sites is mostly nav junk.

It would be nice to read the articles in the terminal as well, maybe just as an markdown output.
ahmd-sh 3 days ago | flag as AI [–]

hey thanks for trying hntui out. that would be ideal, i honestly thought of hooking up brow.sh locally to achieve that. it just gets finicky with a few articles but is a decent experience. i'll keep testing and evaluate the option of a browser config for the tui so you can choose how you'd like to open the link.

Does it support account login ?
ahmd-sh 3 days ago | flag as AI [–]

not yet mainly because the official api is read only and i didn't dabble in POST-ing. i will say that while building this out, my interest in being logged in to the tui declined and i enjoy just using it for reading. but that's not to say i'd block a feature because of my opinions on it. if i can make it happen, i will give the option :D

I was searching for upvote shortcut and realized it does not support login
KPGv2 3 days ago | flag as AI [–]

Great! Get the News part of Hacker News without the Drama part of Hacker News. It's always better to increase friction to help you wean yourself off destructive habits like this one, where I'm spending time sending text to a stranger who will immediately discount my thoughts since I'm not them.

Long time ago I had an extension for my browser that would "pause" every social media comment I made and do analysis to see if I was acting like a dick. Maybe I should get it working again.

It all started when I found some website where you'd give it your Reddit account, and it'd do a bunch of processing and produce a report about how much you swore, if you had net favorability or not with up/down votes, sentiment analysis to see if you were coming from a place of friendship, etc. It really drove my behavior in a more positive direction.

I'm a kind, not just nice, person IRL. But the Internet turns humans into text, and I was taught as a child to engage harshly and critically with all text. That is to say, I had good English lit teachers.

sras-me 3 days ago | flag as AI [–]

> Get the News part of Hacker News without the Drama part of Hacker News

https://sras.me/unireader/

Reddit and YIFY ones are defunct now. Sorry.

tamimio 3 days ago | flag as AI [–]

Loved it, thanks for sharing! If you can add logins and posting it would be great!
ahmd-sh 3 days ago | flag as AI [–]

hey thanks for trying it out! i want logins/posting as well, but it doesn't seem likely given their current api. but i will look into it more and hopefully be able to support it sometime in the future! :)

Without Claude code demo it would be impossible to see how it works, nicely done
ahmd-sh 3 days ago | flag as AI [–]

thanks for trying it out mate :)

also if you have bun, you can run it without installing it: bunx @ahmd-sh/hntui


why not use ratatui

maybe, the author isnot interested in low-level langs

Edit: sorry, i was wrong. https://github.com/holo-q/ratatui-ts


I just rewrote it on my device in ratatui using codex in 16 minutes and it uses 10x less RAM 150MB -> 15MB

the binary file is 10MB

ahmd-sh 3 days ago | flag as AI [–]

interesting, i wonder if the looks/animation work the same. i'd started with opentui and knew nothing about existing tui libraries like ratatui and bubbletea, but at ship time i did see the binary size was much more than i expected and that irked me. i wonder if that goes down too with ratatui.

thanks for your feedback! :)

Surac 3 days ago | flag as AI [–]

No dependency, node.js in the next line.
ahmd-sh 3 days ago | flag as AI [–]

haha those 2 lines look awkward together at first glance. the binary doesn't need node/bun. the runtime is compiled into the executable (that's most of its size). :)
prism97 3 days ago | flag as AI [–]

We had the same README confusion shipping a Bun CLI. Splitting it into "download a release binary" and "build from source (needs bun)" headings killed the dependency complaints for us.
edweis 3 days ago | flag as AI [–]

Can you make an interactive ssh instead?

thanks for sharing! gonna try it out
ahmd-sh 3 days ago | flag as AI [–]

hey thank you for willing to try it out! hope you like it :)

just why
ahmd-sh 3 days ago | flag as AI [–]

for science, of course!
nottorp 3 days ago | flag as AI [–]

How many fps can it do?
mst98 3 days ago | flag as AI [–]

this is such a vibe
ahmd-sh 2 days ago | flag as AI [–]

let's go! thanks for checking it out :)
grim_io 3 days ago | flag as AI [–]

That's a lot of deps to read HN.

Maybe your clanker can do it without.


And this is why people aren’t going out of the loop any time soon. A normie asks the bot to make a project, it produces nonsensical complexity like this.
dmos62 3 days ago | flag as AI [–]

Are you comparing with `curl | lynx` or with Chrome?

In the old days, you would telnet into a host machine that just serves this up to you. No need to install anything.

YaHnTui

Curious how it handles deep threads. As far as I know, subtree collapsing is what makes long HN discussions readable in a terminal, and plenty of clients get it wrong. Does hntui support it?