hn-search
Skill0 starsChanged 6 months agoMITView on GitHub
Use when researching what the tech/developer community thinks about a topic, validating SaaS or startup ideas against real discussion, surveying what's trending on Hacker News, digging into the full comment tree of an HN thread, mining recent Ask HN / Show HN / Jobs posts, or finding pain points and unmet needs in a niche. Apply when the user asks "what's trending in X", "is anyone shipping Y", "what are people complaining about regarding Z", "what does HN think of …", or links to a news.ycombinator.com URL.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- dylanfeltus/skillstheir own version, first seen Feb 26, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- dylanfeltus/skills★ 179same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Files
hn-search
Two commands. Compact JSON by default; pass --pretty for a human-scannable view.
Invoke as hn … (after uv tool install . / pipx install .). For zero-install use uv run /path/to/hn.py … instead.
search [QUERY] — find stories or comments
| Flag | Purpose |
[QUERY] | Optional full-text query. Omit for pure tag/filter browsing. |
--tag X | Repeatable. Values: story, comment, ask_hn, show_hn, poll, job, front_page, author_<user>, story_<id>. |
--sort relevance|date | Default: relevance if query given else date. |
--since / --until | Time bounds. 7d, 24h, 2w, 1y, or YYYY-MM-DD. |
--min-points N / --min-comments N | Engagement thresholds. |
--limit N | 1–100, default 20. |
--page N | 0-indexed. |
--fields a,b,c | Trim the hit object. Default already trims to the useful fields; pass all for the full Algolia payload. |
--pretty | Human output. |
Examples
# What's on the front page right now
hn search --tag front_page --limit 10
# Is "claude code plugin" a thing people are shipping? Last 30 days, ≥5 points
hn search "claude code plugin" --since 30d --min-points 5
# Pain points: recent Ask HN with real discussion
hn search --tag ask_hn --since 14d --min-comments 30
# What did this author post recently
hn search --tag author_dang --since 30d --limit 20
# Mine comments (not stories) mentioning a competitor
hn search "vercel" --tag comment --since 90d --limit 50thread <ID_OR_URL> — fetch a full discussion
Accepts either a numeric item ID (e.g. 48243293) or any news.ycombinator.com/item?id=N URL.
Returns the story with the complete nested comment tree in a single request (Algolia's /items/{id} pre-builds the tree — no N+1 fetching needed).
| Flag | Purpose |
--depth N | Prune past nesting depth N. --depth 1 = story + top-level only. |
--max-comments N | BFS cap on total comments returned. Useful for huge threads. |
--top N | Keep only the top-N branches by descendant count (the "biggest" conversations). |
--min-score N | Drop comments with points<N. HN hides comment scores so most are null — those are kept unless --strict. |
--strict | With --min-score, also drop points: null comments. |
--pretty | Indented tree rendering. |
Examples
# Just the story and top-level reactions
hn thread 48243293 --depth 1 --pretty
# Big thread, take the 3 most-discussed branches only
hn thread "https://news.ycombinator.com/item?id=48242959" --top 3 --pretty
# Bounded sample for token budget
hn thread 48242959 --max-comments 50Gotchas
- Result cap. Algolia caps at ~1000 hits (
nbPages×hitsPerPage). For long retrospectives, narrow with--since/--untilrather than paginating deep. - Comment scores are mostly null. HN hides comment points, so most
pointsfields on comments arenull.--min-scorekeeps null-score comments unless you also pass--strict. --tag front_pageis "currently on the front page", not "ever was". For historical front-page stories, search with--min-points 100 --since 1yinstead.- Use
--sort datewhen freshness matters. Relevance sort buries new posts under older high-engagement ones. - Text is HTML-stripped by default. Pass
--no-strip-htmlif you specifically need the raw markup. - Errors are structured. On failure: non-zero exit and a single-line JSON
{"error":"...","status":N}on stderr (stdout stays clean for piping).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

