A fast terminal Hacker News reader with threaded comment folding, score-coloured story lists, three themes, and AI-powered thread summarization via DeepSeek V4 Flash.
Built in Go on Bubbletea v2. Left panel browses stories across all six HN feeds (Top / New / Best / Ask / Show / Jobs) with pagination. Right panel renders nested comments with collapsible threads, coloured depth indent, and summary panel streaming live from DeepSeek.
Ask · Show · Jobs
Zinc cyan
streaming thread summary
What it is #
cwnews is a full-screen Bubbletea TUI for reading Hacker News on the terminal. It fetches stories and comments from the official HN Firebase API, caches everything in SQLite for instant re-opening, and provides real-time AI summaries of comment threads with word-by-word streaming.
The left panel is a dense story browser: six feed tabs, pagination with
n
/p
, and score- and comment-count coloured metadata. Titles truncate cleanly to fit. The right panel shows a threaded comment view with collapsible nesting, coloured depth bars, and a cursor that highlights the active comment in accent orange.
Press s
on any thread and DeepSeek V4 Flash streams a detailed summary — sentiment, key points, standout quotes, consensus & debate — formatted with markdown headings, bullet points, and italicized blockquotes. Summaries are cached in SQLite, so switching back to a thread is instant. Language is configurable (Chinese or English).
The three themes cycle with t
: a dark HN-inspired palette with orange accents, a classic cream-background HN look matching the real website, and a cyan-accented zinc theme from cwmail's design system.
Why it’s different #
Enter
or ←
to collapse
any thread, →
to expand, [
/]
to fold by depth level, n
/N
to jump
between top-level comments. Vim-style j
/k
navigation moves a highlighted cursor through the visible list.
s
and the right panel switches to an AI summary
view. DeepSeek V4 Flash streams text word-by-word with a braille
spinner in the status bar. Summaries cover overall sentiment, key
points, standout comment quotes, consensus & debate breakdowns,
and meta-observations. All cached in SQLite — reopen any thread
and the summary appears instantly without another API call.
h
/l
or direct
1
-6
keys. Each feed loads 50 stories per
page from the 500-item HN ID pool. n
/p
paginates; the page indicator shows 1/17
in the tab
bar. Switching feeds resets to page one.
'
, <p>
).
cwnews decodes all HTML entities and strips tags before rendering,
so you never see '
or raw <p>
markers in comment text.
~/.local/share/cwnews/cwnews.db
.
Re-opening a previously viewed thread shows comments immediately
while a background refresh fetches any new replies. Cached summaries
mean the AI panel is instant on the second press of s
.
What it looks like #
Install #
Download a pre-built binary from the
Google Drive release folder
(current build: v0.1; macOS arm64 / amd64 and Windows amd64). Drop it
somewhere on your PATH
and make it executable:
curl -L <download-url> -o ~/.local/bin/cwnews
chmod +x ~/.local/bin/cwnews
Invoke-WebRequest <download-url> -OutFile cwnews.exe
Create a config file at ./config.json
or
~/.config/cwnews/config.json
:
{
"theme": "hn",
"ai": {
"api_key": "sk-...",
"model": "deepseek-v4-flash",
"summary_language": "zh"
},
"ui": {
"sidebar_width_ratio": 0.40
},
"cache_ttl_minutes": 5
}
Set "summary_language"
to "en"
for
English summaries or "zh"
for Chinese. The AI API key is the same DeepSeek key used by cwcode and cwmail.
Run it.
cwnews
FAQ #
s
for a summary.t
to cycle through three themes: hn(dark, orange accents),
hn-classic(cream background, matches real HN), and
zinc(cyan-accented dark). The active theme shows in the footer.
j
/k
to
navigate, g
/G
for top/bottom,
d
/u
for half-page scroll,
h
/l
to switch feeds,
Enter
to open a story and focus comments,
Tab
to switch between panels, q
to quit. The footer bar in each view shows the context-relevant keys.Google Drive. Source currently private. Reach out at
haojng@gmail.comfor access.