编者按

heartleo/hn-cli#hacker-news

用于获取 Hacker News 榜单、讨论串、搜索和用户资料的工具。

这是一个 DeepSeek Harness(DSH)插件。本站汇总其 GitHub README、安装信息、维护状态与公开安全信号。

上游未提供中文 README,当前展示仓库原始内容。

hn

A terminal client for Hacker News.

Go version CI Release Downloads License

demo

Features

  • 📰 Story browser — Top, New, Best, Ask HN, Show HN with tab switching
  • 💬 Comment threads — navigate with j/k, fold/unfold, lazy-load reply trees
  • 🌐 Translation — translate a title with t, all visible titles with T, or a selected comment
  • 🔄 Soft refresh — refresh stories or comments without restarting
  • 🎨 Themes — hn, mocha, dracula, tokyo, nord, gruvbox
  • Progressive loading — visible range loads first, more fetched as you scroll

Install

Homebrew (macOS / Linux):

$ brew install heartleo/tap/hn

winget (Windows):

$ winget install heartleo.hn

curl (macOS / Linux):

$ curl -fsSL https://raw.githubusercontent.com/heartleo/hn-cli/main/install.sh | sh

No sudo needed — the binary is installed under your home directory. The install directory is picked from the first of these that is set:

SourceValue
HN_INSTALL_DIRused as-is
XDG_BIN_HOMEused as-is
XDG_DATA_HOME$XDG_DATA_HOME/../bin
(default)$HOME/.local/bin

To install somewhere else:

$ curl -fsSL https://raw.githubusercontent.com/heartleo/hn-cli/main/install.sh | HN_INSTALL_DIR=~/bin sh

The script warns if the install directory is not on your $PATH, and prints the export PATH=... line to add to your shell profile.

The script never calls sudo. To install system-wide, run it as root yourself:

$ curl -fsSL https://raw.githubusercontent.com/heartleo/hn-cli/main/install.sh -o install.sh
$ sudo env HN_INSTALL_DIR=/usr/local/bin sh install.sh

Prebuilt binaries — download from GitHub Releases

Go install (requires Go 1.25+):

$ go install github.com/heartleo/hn-cli/cmd/hn@latest

Build from source:

$ git clone https://github.com/heartleo/hn-cli
$ cd hn
$ go build -o hn ./cmd/hn

Claude Code Plugin

This repo also ships hn, a Claude Code plugin that brings Hacker News to Claude.

/plugin marketplace add heartleo/hn-cli
/plugin install hn@hn-cli
SkillWhat it does
hn-digestScan the front page — today's themes, hot discussions, industry mix

Then just ask: what's on HN today. Ask in any language and the digest comes back in that language. See the plugin README for details.

The digest is also published daily at hndigest.heartleo.dev.

DeepSeek Harness Plugin

For DeepSeek Harness there is hacker-news, a plain-ESM plugin that reads the public Hacker News APIs directly. It needs neither an HN API key nor a local terminal client.

Install from npm

The published package is dsh-hacker-news. It is also listed in the awesome-dsh-plugin community registry. DSH profiles are pnpm workspace roots, so keep the -w flag:

dsh plugin --profile <name> add -w dsh-hacker-news

If your npm mirror has not indexed the latest release, run the installation against the public registry:

$env:npm_config_registry = 'https://registry.npmjs.org/'
dsh plugin --profile <name> add -w dsh-hacker-news

Start or restart the same profile, then verify that the composed configuration includes dsh-hacker-news:

dsh --profile <name>
dsh --profile <name> --dump-config

Install from source

This form follows the repository's main branch and is intended for development or trying unreleased changes:

dsh plugin --profile <name> add -w github:heartleo/hn-cli#path:/plugins/hacker-news

After installation, ask naturally, for example: what's popular on HN?, search HN for sqlite, or read HN item 49322107 and summarize the discussion.

ToolWhat it does
hn_storiesRanked feeds — top / new / best / ask / show / job
hn_itemAn item plus its reply tree in reading order
hn_searchAlgolia search, by relevance or date
hn_userKarma, account age, bio, submission count

See the plugin README for configuration.

Quick Start

$ hn        # top stories
$ hn new    # new stories
$ hn best   # best stories

Commands

Browse

browse demo

Opens the interactive TUI. Defaults to Top stories; switch tabs with ←/→.

$ hn        # top stories (default)
$ hn top
$ hn new
$ hn best
$ hn ask
$ hn show

Comments

comments demo

Press Enter on any story to open its comment thread.

  • navigate with ↑/↓ or k/j
  • press Enter to expand or collapse a reply tree
  • press Space to fold or unfold the selected comment
  • press C / E to fold or unfold all
  • press r to jump to the root comment
  • press R to soft refresh
  • press Esc to go back

Translation

Translates via any OpenAI-compatible chat completions API. See Configuration to set up an API key.

t   translate selected story title (toggle cached translation)
T   translate all visible titles in one batch request
t   translate selected comment (in comment view)

theme

$ hn theme          # show current
$ hn theme nord     # set globally

Available: hn · mocha · dracula · tokyo · nord · gruvbox

Keys

Story List

KeyAction
EnterOpen comment thread
oOpen in browser
tTranslate selected title
TTranslate all visible titles
/ Switch tab
rRefresh
?Toggle help
q / Ctrl+CQuit

Comment Thread

KeyAction
j / Next comment
k / Previous comment
ggBack to top
rJump to root comment
EnterExpand / collapse replies
SpaceFold / unfold selected comment
C / EFold / unfold all
tTranslate selected comment
RSoft refresh
oOpen story in browser
EscBack to list
?Toggle help
Q / Ctrl+CQuit

Configuration

hn reads ~/.config/hn/config.json. A .env file in the working directory is also loaded automatically; environment variables take precedence over the config file.

Translation

VariableDefaultDescription
HN_TRANSLATE_API_URLhttps://api.openai.com/v1API base URL
HN_TRANSLATE_API_KEYAPI key
HN_TRANSLATE_MODELgpt-4o-miniModel name
HN_TRANSLATE_LANGChineseTarget language

Example .env:

HN_TRANSLATE_API_KEY=sk-...
HN_TRANSLATE_LANG=Chinese

Theme

VariableDescription
HN_THEMEOverride theme without editing config

Example ~/.config/hn/config.json:

{
  "theme": "mocha",
  "translate": {
    "api_url": "https://api.openai.com/v1",
    "api_key": "sk-...",
    "model": "gpt-4o-mini",
    "language": "Chinese"
  }
}

Contributing

Issues, bug reports, feature suggestions, and general feedback are very welcome:

注意

This project is maintained in my spare time, and I currently do not have enough capacity to properly review external pull requests. See CONTRIBUTING.md for details. Thank you for your understanding!

REPOSITORY SIGNALS

安全与安装证据

该分数只基于公开仓库元数据与本站登记的安装证据,不等同于代码安全审计。

来源可追溯

来自公开插件目录,并链接到公开 GitHub 仓库。

许可证

仓库声明 MIT 许可证。

维护活跃度

最近 180 天内有代码更新。

安装证据

尚未登记可复验的精确安装元数据,请按仓库说明手动检查。

安装生命周期脚本

已检查的包元数据未声明安装生命周期脚本。