📰 hn-brief
A Claude Code plugin that gives you a daily Hacker News brief filtered to your interests, and learns from the links you click.
🐍 Python standard library only. No API key, no account, no external service, nothing to sign up for.
## HN Brief · 28 Jul 2026 · 9 for you, 2 big, 3 new
Learned since last brief: powershell +2, new interest nix.
### Rust
1. **How is the Bun rewrite in Rust going?**
lockwood.dev · 440 pts · 331 comments
Benchmarks both builds and concludes the rewrite is real but the timeline was not.
### PowerShell
2. **PSResourceGet 2.0 ships**
devblogs.microsoft.com · 90 pts · 31 comments
Replaces PowerShellGet.
### Big on HN today · outside your interests
9. **Kimi-K3 on HuggingFace**
huggingface.co · 1299 pts · 505 comments
Open weight multimodal model, 2.8T parameters. Would add `open-weight-models`.
### New to you · click to add, or `/hn-brief keep 11`
11. **Formal verification of Ada in industry**
adacore.com · 210 pts · 64 comments
Adjacent to `rust`. Would add `formal-methods`.
🖥️ Two ways to run it
| Claude Code runs on | You read the brief on | It learns from | |
|---|---|---|---|
| Local | your machine | the same machine | clicking links |
| Remote | one machine you leave running | your phone, or any device you connect from | /hn-brief keep N |
Local. The default, nothing to configure. Links point at a small redirect on 127.0.0.1, so
clicking one records the click and forwards you to the page.
Remote. Keep the session on one machine, connect to it from your phone or another device, and
set HN_BRIEF_REMOTE there:
// ~/.claude/settings.json
{ "env": { "HN_BRIEF_REMOTE": "1" } }
Links become Hacker News links that open from anywhere, and /hn-brief keep 4 11 tells it what you
liked, counting exactly the same as clicking those two items. One profile either way. See
Settings.
🚀 Install
/plugin marketplace add ArchitektApx/HackerNews-Brief
/plugin install hn-brief@hn-brief
🔑 Approve it once
Every phase of a run is a single hn-brief command, so one rule covers the whole plugin. Add it
to ~/.claude/settings.json and the approval prompts stop for good:
{ "permissions": { "allow": ["Bash(hn-brief *)"] } }
User settings apply in every directory, unlike approving in a session, which is saved per repository and would have to be repeated wherever you next run a brief. The rule names no path and no version, so a plugin update never invalidates it.
No hook ships with this plugin to grant itself permission. Nothing runs without a rule you wrote or an approval you gave.
✨ First run
/hn-brief setup
Tell it what you are interested in, in one message, in plain words. It proposes match terms, checks each one against today's front page so you can see which are too broad to be useful, and saves the ones that survive. Takes a minute, once.
📅 Daily use
/hn-brief today's brief
/hn-brief explore ten stories outside your profile
Locally, open a link the way your terminal opens links: ⌘-click on macOS, Ctrl+click on Linux and Windows, Ctrl+Shift+click in the VS Code terminal. That click is what teaches the plugin, so open what you actually find interesting and the brief follows you.
Three sections, every run:
- 🎯 Your topics. Matched against your interests with a deliberately low point floor. A 16 point post about what you work on beats a 300 point post about what you do not.
- 🔥 Big on HN today. Genuinely large stories that match nothing you follow, shown anyway, each tagged with the topic a click would add.
- 🌱 New to you. Adjacent picks chosen for fit rather than size.
The strongest few get a real summary written from the article itself. Comments are never fetched.
Time ranges work in plain language, and are calendar aware:
/hn-brief yesterday
/hn-brief this week
/hn-brief since monday
🧠 How it learns
Open a "New to you" pick about PowerShell and powershell becomes an interest without you typing
anything. Open stories in a topic you already follow and its weight rises, which wins ties later.
In a remote session /hn-brief keep 4 11 says the same thing in words.
An interest only loses weight after it was shown to you repeatedly and you ignored it every time. Elapsed time costs nothing, so a niche topic HN covers twice a month is judged on those two chances, never on the silence in between.
Stories you have already been shown do not come back.
🔒 Privacy
Everything lives in ~/.claude/plugins/data/hn-brief-hn-brief/ and survives plugin updates. The
only network traffic is the public HN search API, plus direct page fetches for the handful of
articles that get summarized, which honor robots.txt. Your profile is never transmitted.
📚 Docs
| Guide | What is in it |
|---|---|
| Commands | Every command, time range grammar, managing interests |
| Settings | Tuning thresholds and sizes, the click tracker, reading on another device |
| How it works | Ranking, term matching, decay, the tracker, known limits |
License
MIT
No comments yet
Be the first to share your take.