Skip to content
Back to skills

Hackernews

ASecurity

View Hacker News from inside Claude Code — top stories and other feeds (new/best/Ask/Show/jobs), the comment thread for any story, and keyword search. Use whenever the user wants to read or browse Hacker News, including when they just say "HN", name a feed, or follow up with "read the comments", "show more", or "open #3" while browsing.

  • 19 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
developmentpythonrustgonode

Works with

  • claude code
  • terminal
  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add mthli/skills --skill hackernews --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hackernews?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hackernews
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mthli-hackernews/badge)](https://www.skillsdirectory.com/skills/mthli-hackernews)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hackernews
description: >-
  View Hacker News from inside Claude Code — top stories and other feeds
  (new/best/Ask/Show/jobs), the comment thread for any story, and keyword
  search. Use whenever the user wants to read or browse Hacker News, including
  when they just say "HN", name a feed, or follow up with "read the comments",
  "show more", or "open #3" while browsing.
---

# Hacker News

Browse Hacker News in the terminal. A bundled Python script (`scripts/hn.py`,
standard library only — no install) does the fetching and formats results as
Markdown; your job is to map what the user asked for to the right command, run
it, and present the output.

`<SKILL_DIR>` below is the directory containing this `SKILL.md` — substitute its
absolute path when running.

## Commands

```
# List a feed (default: top, 10 stories). Feeds: top, new, best, ask, show, job
python3 <SKILL_DIR>/scripts/hn.py list [feed] -n <count>

# Show a story's comment thread (needs the numeric id from a listing)
python3 <SKILL_DIR>/scripts/hn.py comments <id> -n <top-level> -d <max-depth>

# Search stories via Algolia (--sort date for newest-first instead of relevance)
python3 <SKILL_DIR>/scripts/hn.py search "<query>" -n <count> [--sort date]
```

Every command takes `--json` if you need structured data instead of Markdown
(e.g. the user wants you to filter, rank, or summarize rather than just list).

## Mapping requests to commands

The default — bare `/hackernews`, "what's on HN", "top stories" — is
`list` with the default top feed and 10 stories. Honor an explicit count
("top 25", "show me 30") with `-n`. Map feed words directly: "new" / "newest"
→ `new`, "best" → `best`, "Ask HN" → `ask`, "Show HN" → `show`, "jobs" / "who's
hiring" → `job`.

"Read the comments on #3" / "open that thread" / "what are people saying about
the SpaceX one" → `comments <id>`, using the id shown in the listing you just
produced (each line ends with `` `id <n>` ``). If the user names a story by
topic rather than rank, pick the matching id from the most recent listing.

**Superlative-across-the-front-page requests** — "which story has the most
comments", "the top discussion right now", "the highest-ranked one" — need a
wider pull than the 10-story default, or you'll pick the max of the wrong set.
The HN front page is ~30 stories, so `list <feed> -n 30` first, choose the
extremum from those 30, then act (e.g. `comments <id>`). Keep ordinary browsing
at the 10-story default; only widen when the user's request hinges on a
"most/highest/biggest" comparison.

"Search HN for Rust async" / "has HN discussed <X>" → `search`. Use
`--sort date` when they want what's *recent* ("latest HN posts about …")
rather than the most-upvoted all-time.

## Presenting results

The script already emits clean, link-rich Markdown. Relay it to the user
largely as-is — don't re-fetch each item or rewrite every line; that wastes
time and adds nothing. A short framing line is welcome ("Here's the HN front
page right now —"), and so is a one-line offer of the natural next step ("Want
me to pull the comments on any of these?"). Keep the clickable links and the
`id` markers intact so follow-ups work.

If the user asked a question *about* the stories (e.g. "anything about AI
infra?", "summarize the top discussion") rather than just to see them, go ahead
and read/summarize — fetch comments or use `--json` as needed, then answer.

## Notes

- Stories carry an article link **and** a `discussion` link (the HN comment
  page); keep both — readers often want one or the other.
- Ask HN / Show HN text posts have no external URL, so the title links to the HN
  item and the post body shows at the top of its `comments` view.
- Comment fetching defaults to a focused view (8 top-level threads, depth 2, 30
  nodes total) — enough to read the room without burying the user in a 300-reply
  megathread. When they want more ("go deeper", "show all comments", "the full
  thread"), widen with `-n` (more top-level), `-d` (deeper nesting), and
  `--limit` (raise the node budget, e.g. `--limit 150`).
- Hacker News data is public and read-only here; the script never posts,
  votes, or logs in.

Files in this skill

  • SKILL.md4.1 KB
  • scripts/hn.py12.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…