mcpField
H
hackernews-frontpage

hackernews-frontpage

github.com/garrytanData & databases138.1k287 installsUpdated today
Repository

About hackernews-frontpage

hackernews-frontpage is a browser skill that scrapes the Hacker News front page and emits the top 30 stories as JSON. It provides each story's rank, title, URL, points, and comment count in a typed record.

Key features

  1. 01Scrapes the Hacker News front page
  2. 02Returns the top 30 stories
  3. 03Includes rank, title, URL, points, and comments
  4. 04Emits a single JSON document

Use cases

  1. 01Reviewing current top Hacker News stories
  2. 02Collecting story rankings and engagement counts

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/garrytan/gstack --skill hackernews-frontpage

After installing, type/hackernews-frontpagein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

script.test.ts
script.ts
_lib/
browse-client.ts
fixtures/
hn-2026-04-26.html

Details

From the project README

Hacker News front-page scraper

Scrapes the Hacker News (news.ycombinator.com) front page and returns the top 30 stories as JSON. Each story has its rank, title, link URL, point count, and comment count.

Usage

$ $B skill run hackernews-frontpage
{
  "stories": [
    { "rank": 1, "title": "...", "url": "...", "points": 412, "comments": 87 },
    ...
  ],
  "count": 30
}

How it works

  1. Navigates to https://news.ycombinator.com via the daemon.
  2. Reads the page HTML.
  3. Parses each story row (HN's stable tr.athing structure) into a typed Story record.
  4. Emits a single JSON document on stdout.

Why this is the reference skill

hackernews-frontpage is the smallest interesting browser-skill: no auth, stable HTML, deterministic output, file-fixture-friendly. Every Phase 1 component (SDK, scoped tokens, three-tier lookup, spawn lifecycle) is exercised by $B skill run hackernews-frontpage and the bundled script.test.ts.

When the HN HTML rotates and our selectors break, the test fails against the captured fixture before users notice. That's the point.

Comments

Markdown supported