Hacker News 中文摘要

RSS订阅

Show HN:Hntui 终端版 Hacker News 阅读器 -- Show HN: Hntui – A TUI for Hacker News

hntui(hntui)是一个设计简洁且优雅的终端用户界面工具,专门用来在命令行终端中浏览知名科技新闻站点黑客新闻(Hacker News),该站点被认为是优质科技资讯来源之一。获取此工具的方式很简单,只需在终端执行 curl -fsSL https://raw.githubusercontent.com/ahmd-sh/hntui/main/install.sh | sh 完成安装,接着键入 hntui 命令便可进入其交互界面。

正文

一个简洁优雅的终端 UI,用来浏览最佳科技新闻源之一。

hntui——在终端里看 Hacker News

安装命令:curl -fsSL https://raw.githubusercontent.com/ahmd-sh/hntui/main/install.sh | sh,然后运行 hntui。

功能

  • 浏览全部六个 HN 信息流:Top、New、Best、Ask、Show、Jobs。
  • 查看帖子评论。
  • 保存帖子稍后阅读。
  • 支持 Vim 键位和鼠标。
  • 主题。
  • 还有很酷的 Knight Rider 扫描动画加载条(⁠◕⁠ᴗ⁠◕⁠ )。

要求

任何支持真彩、鼠标和 UTF-8 的现代终端都可以。作者在 MacOS 的 Ghostty 中测试过。Linux/Windows 由 OpenTUI 支持但尚未尝试。预编译二进制无依赖。通过 npm 安装或改代码需要 Bun 1.2 以上。

安装

独立二进制(推荐)

curl -fsSL https://raw.githubusercontent.com/ahmd-sh/hntui/main/install.sh | sh 安装自包含二进制到 ~/.local/bin。也可从 releases 页直接下载对应平台二进制。提供 macOS(Apple Silicon)和 Linux(x64、arm64)二进制;Intel Mac 请用下面的 Bun 安装。

使用 Bun

bun add -g @ahmd-sh/hntui,或不安装只运行一次:bunx @ahmd-sh/hntui。

运行

hntui,按 q 或 Ctrl-C 退出。

更新

hntui update 检查最新发布,二进制安装会就地替换自己。Bun 安装需用 bun add -g @ahmd-sh/hntui 更新(hntui update 会提示)。有新版本时状态栏显示安静提示。hntui --version 打印版本。

快捷键

故事列表

| 键 | 动作 | | --- | --- | | j/↓, k/↑ | 移动光标 | | gg, G | 跳到首/末 | | Ctrl-D, Ctrl-U, PgDown, PgUp | 翻半页 | | c, Enter | 打开帖子看评论 | | h/←, l/→ | 上一个/下一个标签 | | Tab, Shift-Tab | 循环切换标签 | | 1–6 | 跳到指定分类 | | S | 跳到已保存列表 | | s | 保存/取消保存高亮帖 | | o | 浏览器打开帖链接 | | r | 刷新当前信息流 | | t | 切换主题 | | q, Ctrl-C | 退出 |

故事详情(评论)

| 键 | 动作 | | --- | --- | | j/↓, k/↑ | 移动评论光标 | | gg, G | 跳首/末评论 | | Ctrl-D, Ctrl-U, PgDown, PgUp | 翻半页 | | Space | 折叠/展开子树 | | Enter | 打开当前评论链接弹窗 | | s | 保存/取消保存此帖 | | o | 打开帖链接 | | Esc, Backspace, h/← | 返回列表 | | t | 切换主题 | | q | 退出 |

链接弹窗

| 键 | 动作 | | --- | --- | | j, k, ↑, ↓ | 移动 | | gg, G | 首/末链接 | | o, Enter | 打开高亮链接 | | Esc, Backspace | 关闭弹窗 |

右键菜单

| 键 | 动作 | | --- | --- | | j/↓, k/↑ | 移动 | | Enter | 激活 | | Esc, Backspace | 关闭 |

鼠标

键盘能做的鼠标基本也能: - 点击标签切换信息流。 - 点击 Y 方块刷新当前流(或在故事内返回列表)。 - 点击故事行选中,再点开评论。 - 右键故事打开含保存、打开 URL、打开评论的菜单。 - 点击评论头部行折叠/展开子树。 - 双击评论正文打开链接弹窗。 - 点击详情头部故事 URL 在浏览器打开。 - 点击弹窗外关闭。 - 滚轮滚动列表和评论树。

选择复制文本

因应用捕获鼠标,终端正常拖选被拦截。常规选择: - macOS(Terminal.app 等)按住 Option 拖选,再 Cmd-C。 - Linux(Kitty 等)按住 Shift 拖选,再 Ctrl-Shift-C。

主题

按 t 切换。暗色黑底橙点缀;亮色仿 news.ycombinator.com:白底、橙顶栏、米色行高亮、经典灰副标题。

保存的文章

任意故事按 s 保存,标题旁显星标,出现在标签栏右侧 Saved 标签。列表跨会话存于 ~/.config/hntui/saved.json(首次运行自动迁移旧配置)。再按 s 移除。S 从任意处跳转到 Saved 列表。

开发

运行 git clone https://github.com/ahmd-sh/hntui.git,cd hntui,bun install,bun dev(热重载)。数据来自公开 Hacker News Firebase API。

发布

推送 v* 标签触发两个工作流: - release.yml 为 macOS/Linux 交叉编译独立二进制(bun build --compile),对 Linux 构建冒烟测试,附加到 GitHub release,即 install.sh 下载的。 - publish.yml 通过 OIDC 可信发布把 @ahmd-sh/hntui 发到 npm,带 SLSA 来源证明,若 npm 已有版本则跳过。

发布新版本:npm version patch(或 minor/major),git push --follow-tags。

致谢

  • OpenTUI(Anomaly)提供原生 TUI 核心。
  • opentui-spinner(Matt Simpson)的 Knight Rider 加载动画改编自其 MIT 示例。
  • Effect 支撑数据层。
  • Hacker News 提供内容和开放 API。

许可证

MIT,Copyright (c) 2026 Ahmed Shaikh。

评论

讨论气氛基本是"又惊又爱":多数人觉得在终端里刷 HN 很酷、也愿意试用,但一看到技术栈就绷不住,忍不住追问为什么要这么干。分歧主轴在于——这究竟是终端浏览器的雏形,还是把最重的工具链套在最轻的任务上的炫技。

认为这是用最重的锤子拧最小的螺丝

  • 用 Zig 加 TypeScript 绑定、再配 React 组件来做 TUI,被反复点名为见过最离谱的组合;为了读 HN 引入这么多依赖、还得拖上 Node.js,性价比存疑;有人顺势建议换 Rust 生态里更对口的 ratatui,也有人拿帧率开玩笑。(较多人) > 用 Zig 配 TypeScript 绑定和 React 组件来写 TUI,是我见过最狂野、最不搭的技术选型。(@sho_hn)

功能还很薄,缺登录、发帖和正文阅读

  • 想要账号登录和发帖的呼声不少;也有人希望直接在终端里读文章正文,输出 Markdown 就够;还有人索性要一个可交互的 SSH 版本。(较多人)

更多人愿意一试,并把它当成极客趣味

  • 有人打算在 cyberdeck 上靠它刷 HN,有人表示马上要试,也有人夸没有那段演示根本看不出它怎么运转;作者本人现身感谢,说会把反馈做进后续版本。(较多人) > 我一直想找个有意思的方式在 cyberdeck 上刷 HN,这个看起来正合适。(@glitchc)

真正值得追问的是网站会不会被专用中介取代

  • 有评论认真发问:这是否预示未来我们主要通过非通用浏览器的专用中介访问网站;还有一条畅想走得更远——让 agent 为你实际常用的那几家网站逐个生成 TUI,于是浏览器不再必需,"Lynx 但更漂亮",顺带省下被广告和网络骂战吃掉的时间。(少数人) > 这会不会预示着,未来我们主要通过专用中介、而不是通用浏览器来访问网站?(@iugtmkbdfil834)

有价值的补充

  • 渲染前先过一道 readability 之类的正文提取:新闻站点的原始 HTML 直接转 Markdown 基本全是导航垃圾,这一步才是可用性的分水岭。(@sparrowidle)
  • 收藏时应记 HN 的 item ID 而不是 feed 里的位置,首页排序一直在变,用 ID 才能真正稳定地回到同一个帖子。(@dhanushnehru)
  • 同类工具已有先行者,有人长期在用 circumflex 并表示体验不错。(@ChaseRensberger)