- Category
- Productivity
- Rank
- No. 1606Tools index
Previous survey · No. 1615 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- ggerganov
- GitHub
- 322 stars
- Latest release
- v0.4
- Date
About
Browse Hacker News from your terminal with a fast C++ TUI.
What it does
HNTerm presents Hacker News story lists and comment threads in an interactive console interface. It reads the official API, requests only visible content, and can place multiple story or comment views side by side.
Why it's ranked here
Worth trying for terminal-centered readers because it combines selective fetching, split views, comment browsing, and external link opening in a small native application. The browser port adds an easy trial route, though mobile use is explicitly discouraged.
What's good
Selective fetching avoids requesting every item before showing useful content. Multiple panes support comparing story lists or following separate comment sections at once. Top, Show, Ask, and New feeds are represented, alongside stories, jobs, polls, and nested comments.
Tradeoffs
The browser build is not suitable for mobile devices. Native builds depend on ncurses, curl, and the ImTui rendering layer. JSON and HTML handling use small custom parsers, so their supported input behavior is narrower than full standards-oriented parsing libraries.
How to use it well
Pick it when Hacker News reading already fits beside shells, editors, and other terminal work. Use split panes to watch different feeds or comment threads. It is an executable reader, not an embeddable Hacker News client library.
Technical notes+
CMakeLists.txt requires C++17, adds third-party dependencies, finds CURL for native builds, and exposes optional sanitizers. src/CMakeLists.txt builds either an ncurses executable from src/main.cpp, src/hn-state.cpp, and src/impl-ncurses.cpp, or an Emscripten target using src/impl-emscripten.cpp. src/hn-state.cpp polls feed and update endpoints, requests visible item IDs, parses supported item variants, and refreshes changed cached items. src/impl-ncurses.cpp uses curl multi with MAX_PARALLEL set to 5, while src/impl-emscripten.cpp uses Emscripten Fetch. src/json.h contains bespoke array and object parsing.
Observed
- License
- MIT License
- Primary language
- C++17
- Interface
- Interactive terminal application, plus an Emscripten browser port
- Install surface
- Snap on Linux, Homebrew on macOS, or a CMake source build
- Platform support
- Linux, macOS, and web browsers through Emscripten
- Data source
- Official Hacker News API
- Native dependencies
- ImTui with ncurses rendering and libcurl networking
Read from README.md, src/main.cpp, src/json.h, src/hn-state.h, src/hn-state.cpp, src/impl-ncurses.cpp, src/impl-emscripten.cpp, LICENSE, CHANGELOG.md, CMakeLists.txt, src/style.css, src/CMakeLists.txt, cmake/GitVars.cmake, snap/snapcraft.yaml, src/index-tmpl.html.
What it can do
Browse Hacker News stories
Terminal interface commands → Display of Hacker News stories and posts
Navigate through Hacker News content
Keyboard navigation commands → Move between different stories and sections
View story details and comments
Story selection command → Full story content and comment threads
Search Hacker News content
Search terms and keywords → Filtered list of matching stories
Display real-time Hacker News feed
Terminal session → Live updated list of current stories
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
