一个 2014 年的 Python 小工具,12 年后突然登上了 Hacker News 首页

3 分钟阅读

2026 年 4 月,Hacker News 首页出现了一条看起来再普通不过的投稿——一个用 Python 写的 Hacker News 命令行工具。点进去一看,评论区第一条就有人标注了一个意味深长的标签:[12 years ago]

没错,这个项目诞生于 2014 年。

被时间遗忘的工具

HackerNews CLI 是开发者 Kamil Chmielewski 在 2014 年写的一个演示项目,GitHub 仓库的 README 只有寥寥几行,写着 “For presentation purpose”——它大概率只是某次技术分享的 demo,从来没打算被认真使用。

项目托管在 kamilchm/developer-experience,依赖 Python 2.7,总共 9 次 commit,4 颗 star。文档发布在 pythonhosted.org,甚至连安装方式都没有写。

它提供一个 hn 命令,功能也极其朴素:

1
2
3
4
$ hn stories        # 列出热门故事
$ hn comments <id>  # 查看评论
$ hn go <id>        # 浏览器打开原文
$ hn comment <id>   # 发表评论

就这些。没有 TUI 界面、没有配色方案、没有花哨的交互——2014 年的一个周末项目该有的样子。

12 年后,有人按下了"提交"

2026 年 4 月,用户 rolph 把这个项目的文档页面提交到了 Hacker News。没人知道 rolph 是怎么找到它的,但帖子很快收获了 55 个点赞和 25 条评论,登上了首页。

一个 12 年前、只有 9 次 commit 的 Python 2.7 项目,竟然在 2026 年引发了讨论。 这件事本身就比这个工具有趣得多。

评论区的化学反应

HN 社区对此的反应,堪称一场微型技术考古现场。

最先引爆笑点的是用户 basilikum 的一句话:

“I already use a HN CLI called w3m.”

紧接着,lynx、links2、elinks 等上古文本浏览器的拥趸纷纷冒出来表态,仿佛一场"终端原教旨主义者"的集会。

有人敏锐地指出了问题——这个项目依赖的是 Python 2.7。在 Python 2 已经于 2020 年正式 EOL 的今天,这基本意味着它无法直接运行。用户 rovr138 简洁地点破了这一点:“Python 2.7 as a requirement”。

更有趣的是,还有人发现项目文档里的 GitHub 链接都是错的——写的是 .con 而不是 .com。用户 israrkhan 忍不住吐槽:“lol, even the link is not correct.”

不过 HN 社区最擅长的事情就是"边吐槽边动手"。用户 kristopolous 直接 fork 了项目,用现代工具做了一版更新:kristopolous/developer-experience

还有人借此分享了自己做的类似项目:

  • hnterm — C++ 写的 HN 终端客户端
  • hn-cli — Go 写的 TUI 版本
  • nitpick — 最近被"vibecoded"出来的新版本

一个实习生的故事也颇为经典:用户 nerptastic 回忆说,自己当年做实习生时在终端里刷 Reddit,黑底青字的配色让经过的非技术经理以为他在卖力写代码。

真正有趣的不是工具本身

坦白说,HackerNews CLI 作为一个工具,在 2026 年已经没有实用价值。Python 2.7、缺失的安装说明、错误的链接——这些都让它无法开箱即用。

但这个事件本身折射出开源世界一个有意思的现象:你写的代码,哪怕只是一个周末的 demo,可能在十年后被完全陌生的人翻出来,放到聚光灯下。

对作者 Kamil Chmielewski 来说,这大概是一次意料之外的"考古发掘"。对社区来说,这条帖子与其说是在讨论一个 CLI 工具,不如说是在借题发挥——关于终端文化、关于 Python 2 的时代落幕、关于"什么样的工具值得存在"。

如果你确实想在终端里刷 HN,hnterm 或 Go 版 hn-cli 是更现实的选择。但如果你想感受一下"2014 年的开发者是怎么写 CLI 的",翻翻这个只有 9 次 commit 的仓库,也别有一番滋味。

参考资料