# Hacker News Scraper

Pulls titles, points and comment counts from the Hacker News front page.

- Repository: https://github.com/garrytan/gstack (138584 stars)
- Category: Data and ML
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add garrytan/gstack --skill hackernews-frontpage -g -a claude-code -y`
Codex: `npx skills add garrytan/gstack --skill hackernews-frontpage -g -a codex -y`
Cursor: `npx skills add garrytan/gstack --skill hackernews-frontpage -g -a cursor -y`
Gemini CLI: `npx skills add garrytan/gstack --skill hackernews-frontpage -g -a gemini-cli -y`

## Description

Scrape the Hacker News front page (titles, points, comment counts).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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.

