9Router Web Search
decolua/9router
Runs web, news and public X searches through a 9Router gateway's search endpoint, choosing among providers such as Tavily, Exa, Brave and Perplexity.
Searches and monitors Hacker News stories, comments and users through the free Algolia HN Search API, with tag, points and date filters.
$ npx skills add dylanfeltus/skills --skill hn-search -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dylanfeltus/skills hn-search --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/dylanfeltus/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/hn-search .claude/skills/hn-search && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "hn-search" agent skill from https://github.com/dylanfeltus/skills/tree/main/hn-search into .claude/skills/hn-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hn-search", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/dylanfeltus/skills/tree/main/hn-searchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add dylanfeltus/skills --skill hn-search -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dylanfeltus/skills hn-search --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dylanfeltus/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/hn-search .agents/skills/hn-search && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "hn-search" agent skill from https://github.com/dylanfeltus/skills/tree/main/hn-search into .agents/skills/hn-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hn-search", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dylanfeltus/skills --skill hn-search -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dylanfeltus/skills hn-search --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dylanfeltus/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/hn-search .cursor/skills/hn-search && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "hn-search" agent skill from https://github.com/dylanfeltus/skills/tree/main/hn-search into .cursor/skills/hn-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hn-search", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/dylanfeltus/skills.git --path hn-search--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add dylanfeltus/skills --skill hn-search -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dylanfeltus/skills hn-search --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dylanfeltus/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/hn-search .gemini/skills/hn-search && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "hn-search" agent skill from https://github.com/dylanfeltus/skills/tree/main/hn-search into .gemini/skills/hn-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hn-search", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dylanfeltus/skills hn-searchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dylanfeltus/skills --skill hn-search -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dylanfeltus/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/hn-search .github/skills/hn-search && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "hn-search" agent skill from https://github.com/dylanfeltus/skills/tree/main/hn-search into .github/skills/hn-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hn-search", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dylanfeltus/skills --skill hn-search -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dylanfeltus/skills hn-search --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dylanfeltus/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/hn-search .opencode/skills/hn-search && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "hn-search" agent skill from https://github.com/dylanfeltus/skills/tree/main/hn-search into .opencode/skills/hn-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hn-search", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
hn-searchSearches and monitors Hacker News stories, comments and users through the free Algolia HN Search API, with tag, points and date filters.
Hacker News stories, comments and users are searched through the free Algolia HN Search API, which needs no API key. The agent builds a URL against hn.algolia.com, fetches the JSON with a web fetch tool, and chooses between two endpoints: one sorted by relevance for finding topics and one sorted by date for monitoring recent activity.
Queries can be filtered by tag, such as stories, comments, Show HN, Ask HN, front page posts, a given author or the comments on one story, and the tags combine with AND or OR. Numeric filters set minimum points or comment counts and bound results by Unix timestamps, with the agent calculating the current time before subtracting a window such as the last 24 hours. Up to 1000 results per page are allowed, and the stated rate limit is 10,000 requests per hour.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b97a48f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
hn.algolia.comnews.ycombinator.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Hacker News Search loads about 1.7k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 569 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from dylanfeltus/skills at commit b97a48f, republished under its MIT licence (© dylanfeltus). 569 words, ~1,692 tokens.
.claude/skills/hn-search/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Search and monitor Hacker News stories, comments, and users via the Algolia HN Search API. No API key required.
Base URL: https://hn.algolia.com/api/v1
Two search endpoints:
/search — Relevance-sorted (best for finding specific topics)/search_by_date — Date-sorted (best for monitoring / recent activity)Rate Limits: 10,000 requests/hour (generous, no auth needed)
https://hn.algolia.com/api/v1/search?query=QUERY&tags=TAG&hitsPerPage=N&numericFilters=FILTERSweb_fetchUse web_fetch to call the API. Response is JSON.
| Parameter | Description | Example |
|---|---|---|
query | Search terms (URL-encoded) | query=openai+gpt |
tags | Filter by type (see below) | tags=story |
hitsPerPage | Results per page (max 1000) | hitsPerPage=20 |
page | Page number (0-indexed) | page=0 |
numericFilters | Numeric filters (see below) | numericFilters=points>100 |
Use tags to filter by content type:
| Tag | Description |
|---|---|
story | Stories only |
comment | Comments only |
show_hn | Show HN posts |
ask_hn | Ask HN posts |
front_page | Currently on front page |
author_USERNAME | Posts by a specific user |
story_ID | Comments on a specific story |
Combine tags with commas (AND) or parentheses with commas (OR):
tags=story,show_hn → Show HN stories (AND)tags=(story,comment) → Stories OR comments| Filter | Description |
|---|---|
points>N | Minimum points/upvotes |
num_comments>N | Minimum comments |
created_at_i>TIMESTAMP | After Unix timestamp |
created_at_i<TIMESTAMP | Before Unix timestamp |
Combine with commas: numericFilters=points>100,num_comments>50
To search within a time window, use Unix timestamps with created_at_i:
Calculate the current Unix timestamp first (e.g., via exec: date +%s), then subtract:
| Window | Subtract from now |
|---|---|
| Last 24 hours | - 86400 |
| Last 7 days | - 604800 |
| Last 30 days | - 2592000 |
Example: if now is 1705312200, last 7 days = numericFilters=created_at_i>1704707400
Each hit contains:
{
"objectID": "12345",
"title": "Story Title",
"url": "https://example.com/article",
"author": "username",
"points": 150,
"num_comments": 42,
"created_at": "2024-01-15T10:30:00Z",
"created_at_i": 1705312200,
"story_text": "Text for Ask HN / Show HN (HTML)",
"_tags": ["story", "author_username", "story_12345"]
}For comments, hits also include:
{
"comment_text": "The comment body (HTML)",
"story_id": 12345,
"story_title": "Parent Story Title",
"story_url": "https://example.com",
"parent_id": 12344
}The response wrapper includes:
{
"hits": [...],
"nbHits": 1000,
"page": 0,
"nbPages": 50,
"hitsPerPage": 20
}https://news.ycombinator.com/item?id={objectID}https://news.ycombinator.com/item?id={objectID}https://news.ycombinator.com/user?id={author}https://hn.algolia.com/api/v1/search?query=YOUR_QUERY&tags=story&hitsPerPage=10https://hn.algolia.com/api/v1/search?query=YOUR_QUERY&tags=story&numericFilters=points>50,created_at_i>TIMESTAMP&hitsPerPage=10https://hn.algolia.com/api/v1/search?tags=comment,story_STORYID&hitsPerPage=20/search_by_date instead of /searchhttps://hn.algolia.com/api/v1/search_by_date?query=YOUR_QUERY&tags=(story,comment)&hitsPerPage=20https://hn.algolia.com/api/v1/search?tags=author_USERNAME,story&hitsPerPage=20tags=author_USERNAME,commentPresent results as a clean list:
### HN Results for "query" (N total)
1. **Story Title** (150 pts, 42 comments)
By username · Jan 15, 2024
🔗 https://example.com/article
💬 https://news.ycombinator.com/item?id=12345
2. ...For comments:
### HN Comments on "Story Title"
1. **username** (12 pts) · Jan 15, 2024
> First ~200 chars of the comment text...
💬 https://news.ycombinator.com/item?id=12345Fetch: https://hn.algolia.com/api/v1/search?query=rust+programming&tags=story&hitsPerPage=5&numericFilters=points>50# Calculate timestamp for 30 days ago, then:
Fetch: https://hn.algolia.com/api/v1/search_by_date?query=ai+agents&tags=show_hn&numericFilters=created_at_i>TIMESTAMP&hitsPerPage=10Fetch: https://hn.algolia.com/api/v1/search_by_date?tags=author_pg&hitsPerPage=10Algolia HN Search API — Free, no authentication required. Indexes all public Hacker News content in near real-time.
© dylanfeltus, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in hn-search of dylanfeltus/skills.
Open the folder on GitHubat commit b97a48f
Hacker News Search next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Hacker News Search this skilldylanfeltus/skills | 179 | — | ~1.7k | Automated safety check: Pass | MIT | |
| 9Router Web Searchdecolua/9router | 31k | — | ~1k | Automated safety check: Pass | MIT | |
| YouTube Channel ToolsZeroPointRepo/youtube-skills | 1k | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Brave Local Place Descriptionsbrave/brave-search-skills | 183 | — | ~1k | Automated safety check: Pass | MIT | |
| Brave Local Place Searchbrave/brave-search-skills | 183 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Hacker News Summarizerykdojo/claude-code-tips | 10k | — | ~942 | Automated safety check: Pass | Custom licence |
decolua/9router
Runs web, news and public X searches through a 9Router gateway's search endpoint, choosing among providers such as Tavily, Exa, Brave and Perplexity.
ZeroPointRepo/youtube-skills
Browses YouTube channels through TranscriptAPI: resolves handles to channel IDs, lists recent uploads and pages through a channel's videos.
brave/brave-search-skills
Fetches AI-written text descriptions for local places from the Brave Search API, using place IDs returned by an earlier local search.
brave/brave-search-skills
Looks up businesses, points of interest, addresses and streets through the Brave Search place endpoint, returning contact details, ratings and hours in one call.
ykdojo/claude-code-tips
Fetches Hacker News top stories, a chosen story with its comment thread and the linked article through the official APIs, then summarizes them.
BuilderIO/skills
A skill your agent uses when implementing, integrating, upgrading, debugging, or answering anything involving third-party APIs, libraries, frameworks, CLIs, cloud services, model/provider SDKs…
dylanfeltus/skills
Looks up app details, ratings and reviews and searches the iOS and Mac App Stores through Apple's free iTunes APIs, with a web-search fallback for Google Play.
dylanfeltus/skills
Gives prompt templates, a model-selection guide and anti-generic rules for AI-generated visuals: hero images, feature illustrations, OG cards, icons and backgrounds.
dylanfeltus/skills
Generates type scales, color palettes, spacing systems, WCAG contrast checks and dark mode palettes from formulas, as CSS custom properties, a Tailwind config or JSON tokens.
dylanfeltus/skills
Framer Motion (Motion) patterns for React: spring presets, staggers, layout animations, micro-interactions, scroll effects and page transitions, with performance rules.
dylanfeltus/skills
Creates, updates, and monitors Privacy.com virtual payment cards with spending limits for an agent making controlled purchases.
dylanfeltus/skills
Looks up Product Hunt launches, products and makers through its GraphQL API: daily top posts, topic browsing and per-post details, using a free developer token.
Works with
Categories
Searches and monitors Hacker News stories, comments and users through the free Algolia HN Search API, with tag, points and date filters. Hacker News stories, comments and users are searched through the free Algolia HN Search API, which needs no API key.com, fetches the JSON with a web fetch tool, and chooses between two endpoints: one sorted by relevance for finding topics and one sorted by date for monitoring recent activity.
Hacker News Search fits situations like: finding Hacker News discussions about a company, product or technology; seeing what is on the front page or trending on HN; monitoring HN for new mentions of a topic; looking up Show HN, Ask HN or Launch HN posts.
Run `npx skills add dylanfeltus/skills --skill hn-search -a claude-code`. Or copy the skill folder (hn-search in dylanfeltus/skills) into .claude/skills/hn-search in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dylanfeltus/skills --skill hn-search -a codex`. Or copy the skill folder (hn-search in dylanfeltus/skills) into .agents/skills/hn-search in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dylanfeltus/skills --skill hn-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hn-search, .gemini/skills/hn-search, .github/skills/hn-search and .opencode/skills/hn-search in your project.
SKILL.md names no scripts, command-line tools or credentials: Hacker News Search is instructions for the agent only. Our summary lists: Network access to hn.algolia.com.
SKILL.md names 2 domains. In commands or code: hn.algolia.com and news.ycombinator.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Hacker News Search is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Hacker News Search: 9Router Web Search (decolua/9router, 31k stars), YouTube Channel Tools (ZeroPointRepo/youtube-skills, 1k stars), Brave Local Place Descriptions (brave/brave-search-skills, 183 stars) and Brave Local Place Search (brave/brave-search-skills, 183 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dylanfeltus (a GitHub user) maintains it in dylanfeltus/skills, which has 179 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on September 17, 2026.
Source: dylanfeltus/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.