
Hackernews
Pull top, best, new, Ask HN, Show HN, and job listings from the public Hacker News Firebase API when researching tech trends or launch angles.
Overview
Hacker News is an agent skill for the Idea phase that fetches stories, comments, and jobs from the public Hacker News Firebase API using curl and jq.
Install
npx skills add https://github.com/vm0-ai/vm0-skills --skill hackernewsWhat is this skill?
- curl recipes for top, best, new, Ask HN, Show HN, and job story ID lists
- Item endpoint pattern for full story, comment, job, and poll field payloads
- Documented response fields: id, type, by, time, title, url, score, descendants
- No API key—public Firebase JSON endpoints suitable for agent shell steps
- Top stories endpoint exposes up to 500 story IDs
- 6 curated list endpoints: top, best, new, ask, show, job
Adoption & trust: 2.9k installs on skills.sh; 64 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want HN launch and discussion data in the agent loop but do not have a documented, repeatable API workflow.
Who is it for?
Solo builders who research trends and competitor launches via HN and want shell-ready API commands in Claude Code, Cursor, or Codex.
Skip if: Users who need authenticated posting, rate-limit-heavy crawling at scale, or non-HN news sources.
When should I use this skill?
User mentions "Hacker News", "HN", "Y Combinator", or asks about tech news.
What do I get? / Deliverables
Your agent returns current HN story lists and item-level JSON you can summarize for research, competitive scans, or distribution planning.
- Ranked story ID lists
- Per-item JSON story or comment payloads
- Agent-ready summaries of HN threads
Recommended Skills
Journey fit
Idea-phase research is where builders scan what developers are discussing before committing to a product direction. Research subphase covers market signal gathering; HN is a primary indie-builder source for launches, tooling debates, and hiring demand.
How it compares
Lightweight curl integration skill—not a bundled HN MCP server or browser scraper.
Common Questions / FAQ
Who is hackernews for?
Agent users and indie hackers who monitor developer community news and want the official HN JSON API spelled out for automated fetch steps.
When should I use hackernews?
During idea research for trend scans, before validate when checking Show HN competition, and at launch when tracking how similar products were discussed on HN.
Is hackernews safe to install?
The skill only documents public read endpoints; confirm scope on the Security Audits panel on this Prism page before granting network/shell permissions to your agent.
SKILL.md
READMESKILL.md - Hackernews
## How to Use ### 1. Get Top Stories Fetch IDs of the current top 500 stories: ```bash curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | jq '.[:10]' ``` ### 2. Get Best Stories Fetch the best stories (highest voted over time): ```bash curl -s "https://hacker-news.firebaseio.com/v0/beststories.json" | jq '.[:10]' ``` ### 3. Get New Stories Fetch the newest stories: ```bash curl -s "https://hacker-news.firebaseio.com/v0/newstories.json" | jq '.[:10]' ``` ### 4. Get Ask HN Stories Fetch "Ask HN" posts: ```bash curl -s "https://hacker-news.firebaseio.com/v0/askstories.json" | jq '.[:10]' ``` ### 5. Get Show HN Stories Fetch "Show HN" posts: ```bash curl -s "https://hacker-news.firebaseio.com/v0/showstories.json" | jq '.[:10]' ``` ### 6. Get Job Stories Fetch job postings: ```bash curl -s "https://hacker-news.firebaseio.com/v0/jobstories.json" | jq '.[:10]' ``` ## Item Details ### 7. Get Story/Comment/Job Details Fetch full details for any item by ID. Replace `<item-id>` with the actual item ID: ```bash curl -s "https://hacker-news.firebaseio.com/v0/item/<item-id>.json" ``` **Response fields:** | Field | Description | |-------|-------------| | `id` | Unique item ID | | `type` | `story`, `comment`, `job`, `poll`, `pollopt` | | `by` | Username of author | | `time` | Unix timestamp | | `title` | Story title (stories only) | | `url` | Story URL (if external link) | | `text` | Content text (Ask HN, comments) | | `score` | Upvote count | | `descendants` | Total comment count | | `kids` | Array of child comment IDs | ### 8. Get Multiple Stories with Details Fetch top 5 stories with full details. Replace `<item-id>` with the actual item ID: ```bash curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | jq '.[:5][]' | while read id; do curl -s "https://hacker-news.firebaseio.com/v0/item/${id}.json" | jq '{id, title, score, url, by}' done ``` ### 9. Get Story with Comments Fetch a story and its top-level comments. Replace `<story-id>` with the actual story ID: ```bash curl -s "https://hacker-news.firebaseio.com/v0/item/<story-id>.json" | jq '{title, score, descendants, kids}' ``` Then for each comment ID in the `kids` array, replace `<comment-id>` with the actual comment ID: ```bash curl -s "https://hacker-news.firebaseio.com/v0/item/<comment-id>.json" | jq '{by, text, score}' ``` ## User Data ### 10. Get User Profile Fetch user details. Replace `<username>` with the actual username: ```bash curl -s "https://hacker-news.firebaseio.com/v0/user/<username>.json" ``` **Response fields:** | Field | Description | |-------|-------------| | `id` | Username | | `created` | Account creation timestamp | | `karma` | User's karma score | | `about` | User bio (HTML) | | `submitted` | Array of item IDs submitted | ### 11. Get User's Recent Submissions Fetch a user's recent submissions. Replace `<username>` with the actual username: ```bash curl -s "https://hacker-news.firebaseio.com/v0/user/<username>.json" | jq '.submitted[:5]' ``` ## Real-time Updates ### 12. Get Max Item ID Get the current largest item ID (useful for polling new items): ```bash curl -s "https://hacker-news.firebaseio.com/v0/maxitem.json" ``` ### 13. Get Changed Items and Profiles Get recently changed items and profiles (for real-time updates): ```bash curl -s "https://hacker-news.firebaseio.com/v0/updates.json" ``` ## Practical Examples ### Fetch Today's Top 10 with Scores ```bash curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | jq '.[:10][]' | while read id; do curl -s "https://hacker-news.firebaseio.com/v0/item/${id}.json" | jq -r '"\(.score) points | \(.title) | \(.url // "Ask HN")"' done ``` ### Find High-Scoring Stories (100+ points) ```bash curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | jq '.[:30][