hackernews
okou-ai/okou-skills
Access Hacker News stories, comments, and user data via the official API.
What is hackernews?
Skill for querying the Hacker News API to fetch top, best, new, Ask HN, Show HN, and job stories, retrieve full item and user details, and monitor real-time changes. Use when a user asks about tech news, specific HN stories, or wants to analyze Hacker News data.
- Fetch top 500, best, newest, Ask HN, Show HN, and job stories
- Retrieve full details for any story, comment, or job posting by ID
- Get user profiles and submission history
- Access real-time updates via max item ID and changed items endpoint
- Filter and search stories by score, title keywords, or other criteria
- Batch fetch multiple stories with details using curl and jq
How to install hackernews
npx skills add https://github.com/okou-ai/okou-skills --skill hackernews- curl and jq installed for running API queries
- Basic familiarity with JSON and command-line tools
How to use hackernews
- 1.Choose a story category endpoint (topstories, beststories, newstories, askstories, showstories, or jobstories)
- 2.Fetch the list of story IDs using curl and the appropriate endpoint
- 3.For each story ID, call the /item/{id}.json endpoint to get full details (title, score, URL, author, comment count)
- 4.Optionally fetch comment details by iterating through the kids array for each story
- 5.Use jq to filter results by score, title keywords, or other fields
- 6.For user data, call /user/{username}.json to get profile and submission history
Use cases
- Find today's top-scoring tech stories and their discussion threads
- Search for AI/ML-related posts across recent Hacker News submissions
- Monitor a specific user's recent submissions and activity
- Build a real-time feed of new stories above a certain score threshold
- Analyze comment threads on a particular story
- Developers building news aggregators or tech dashboards
- Researchers analyzing Hacker News trends and discussions
- Tech enthusiasts wanting programmatic access to HN data
- Content curators filtering stories by topic or engagement
hackernews FAQ
No official rate limits are documented, but the skill recommends being respectful and adding delays for bulk fetching to avoid overloading the service.
Fetch the story with /item/{story-id}.json, which returns a kids array of comment IDs. Then fetch each comment ID individually with /item/{comment-id}.json.
topstories are the current top 500 stories by ranking algorithm, while beststories are stories with the highest votes over a longer time period.
The API doesn't have a built-in search endpoint. You must fetch stories and filter them client-side using jq with regex patterns like test("keyword"; "i").
Call /maxitem.json to get the current highest item ID, then periodically poll /updates.json to see recently changed items and profiles.
Full instructions (SKILL.md)
Source of truth, from okou-ai/okou-skills.
name: hackernews description: Hacker News API for stories and comments. Use when user mentions "Hacker News", "HN", "Y Combinator", or asks about tech news.
How to Use
1. Get Top Stories
Fetch IDs of the current top 500 stories:
curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | jq '.[:10]'
2. Get Best Stories
Fetch the best stories (highest voted over time):
curl -s "https://hacker-news.firebaseio.com/v0/beststories.json" | jq '.[:10]'
3. Get New Stories
Fetch the newest stories:
curl -s "https://hacker-news.firebaseio.com/v0/newstories.json" | jq '.[:10]'
4. Get Ask HN Stories
Fetch "Ask HN" posts:
curl -s "https://hacker-news.firebaseio.com/v0/askstories.json" | jq '.[:10]'
5. Get Show HN Stories
Fetch "Show HN" posts:
curl -s "https://hacker-news.firebaseio.com/v0/showstories.json" | jq '.[:10]'
6. Get Job Stories
Fetch job postings:
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:
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
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)
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
Get Latest AI/ML Related Stories
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
- No rate limits documented: But be respectful, add delays for bulk fetching
- Use jq for filtering: Filter JSON responses to extract needed data
- Cache results: Stories don't change frequently, cache when possible
- Batch requests carefully: Each item requires a separate API call
- Handle nulls: Some fields may be null or missing (e.g.,
urlfor Ask HN) - Unix timestamps: All times are Unix timestamps, convert as needed
Related skills
More from okou-ai/okou-skills and the wider catalog.

earn-hunter
Automatically monitor OKX earn opportunities and send notifications for Flash, Fixed, and Flexible Earn.

okx-cex-auth
Authenticate with OKX CEX via OAuth 2.0 device flow or API key.

okx-cex-bot
Manage Grid and DCA Martingale bots on OKX with create, amend, stop, and P&L monitoring.

okx-cex-earn
Manage OKX earn products: Simple Earn, Flash Earn, On-chain Earn, Dual Investment, and AutoEarn via CLI.

okx-cex-market
Read-only market data for crypto, forex, commodities, metals, and bonds on OKX—no credentials required.

okx-cex-portfolio
View OKX account balances, positions, P&L, fees, and transfer funds.