hackernews

vm0-ai's avatarfrom vm0-ai

Hacker News API via curl. Use this skill to fetch top stories, new posts, comments, and user profiles from Hacker News.

⭐8stars🔀0forks📁View on GitHub🕐Updated Jan 3, 2026

When & Why to Use This Skill

This Claude skill provides a powerful interface to the official Hacker News API, enabling real-time access to the pulse of the developer community. It allows users to programmatically fetch top stories, track trending tech topics, analyze discussion threads, and retrieve user profiles directly through curl commands. By simplifying data extraction from one of the most influential tech aggregators, it serves as an essential tool for staying updated on industry shifts, emerging technologies, and community sentiment without the need for manual browsing.

Use Cases

  • Trend Monitoring: Automatically identify and filter high-scoring stories (e.g., 100+ points) related to specific keywords like 'AI', 'LLM', or 'Rust' to stay ahead of tech trends.
  • Content Curation: Fetch the daily top 10 'Show HN' or 'Ask HN' posts to generate summaries for newsletters, tech blogs, or internal team briefings.
  • Recruitment & Networking: Research user profiles and submission histories to identify influential developers or active contributors in specific technical domains.
  • Market Intelligence: Monitor the 'Jobs' and 'Show HN' sections to track hiring patterns and new product launches within the startup ecosystem.
  • Sentiment Analysis: Retrieve full comment threads from popular discussions to analyze community feedback and sentiment regarding specific tools or industry news.
namehackernews
descriptionHacker News API via curl. Use this skill to fetch top stories, new posts, comments, and user profiles from Hacker News.

Hacker News API

Use the official Hacker News API via direct curl calls to fetch stories, comments, and user data.

Official docs: https://github.com/HackerNews/API


When to Use

Use this skill when you need to:

  • Fetch top/best/new stories from Hacker News
  • Get story details including title, URL, score, comments
  • Retrieve comments and discussion threads
  • Look up user profiles and their submissions
  • Monitor trending tech topics and discussions

Prerequisites

No API key required! The Hacker News API is completely free and open.

Base URL: https://hacker-news.firebaseio.com/v0


Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.

bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"'

How to Use

1. Get Top Stories

Fetch IDs of the current top 500 stories:

bash -c '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 -c 'curl -s "https://hacker-news.firebaseio.com/v0/beststories.json"' | jq '.[:10]'

3. Get New Stories

Fetch the newest stories:

bash -c 'curl -s "https://hacker-news.firebaseio.com/v0/newstories.json"' | jq '.[:10]'

4. Get Ask HN Stories

Fetch "Ask HN" posts:

bash -c 'curl -s "https://hacker-news.firebaseio.com/v0/askstories.json"' | jq '.[:10]'

5. Get Show HN Stories

Fetch "Show HN" posts:

bash -c 'curl -s "https://hacker-news.firebaseio.com/v0/showstories.json"' | jq '.[:10]'

6. Get Job Stories

Fetch job postings:

bash -c '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:

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 -c '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:

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:

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:

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:

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):

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):

curl -s "https://hacker-news.firebaseio.com/v0/updates.json"

Practical Examples

Fetch Today's Top 10 with Scores

bash -c '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 -c 'curl -s "https://hacker-news.firebaseio.com/v0/topstories.json"' | jq '.[:30][]' | while read id; do
  curl -s "https://hacker-news.firebaseio.com/v0/item/${id}.json" | jq -r 'select(.score >= 100) | "\(.score) | \(.title)"'
done
bash -c 'curl -s "https://hacker-news.firebaseio.com/v0/topstories.json"' | jq '.[:50][]' | while read id; do
  curl -s "https://hacker-news.firebaseio.com/v0/item/${id}.json" | jq -r 'select(.title | test("AI|GPT|LLM|Machine Learning|Neural"; "i")) | "\(.score) | \(.title)"'
done

API Endpoints Summary

Endpoint Description
/v0/topstories.json Top 500 stories
/v0/beststories.json Best stories
/v0/newstories.json Newest 500 stories
/v0/askstories.json Ask HN stories
/v0/showstories.json Show HN stories
/v0/jobstories.json Job postings
/v0/item/{id}.json Item details
/v0/user/{id}.json User profile
/v0/maxitem.json Current max item ID
/v0/updates.json Changed items/profiles

Guidelines

  1. No rate limits documented: But be respectful, add delays for bulk fetching
  2. Use jq for filtering: Filter JSON responses to extract needed data
  3. Cache results: Stories don't change frequently, cache when possible
  4. Batch requests carefully: Each item requires a separate API call
  5. Handle nulls: Some fields may be null or missing (e.g., url for Ask HN)
  6. Unix timestamps: All times are Unix timestamps, convert as needed