From forager-skills
Searches for recent news on a topic and delivers a chronological briefing using MCP or CLI tools, with instructions to maximize news search results and minimize page fetches.
How this skill is triggered — by the user, by Claude, or both
Slash command
/forager-skills:news-monitorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill finds recent news and developments on a topic and delivers a chronological
This skill finds recent news and developments on a topic and delivers a chronological briefing. The focus is on what's new — not a general overview.
The news search tool already returns titles, snippets, dates, and sources for each result. That's enough to build most of the briefing without fetching any pages. Only fetch a page when a snippet is too vague to understand what actually happened and you need the full article to write a useful summary. Most of the time, 0–2 fetches is plenty. Never fetch more than 3 pages.
News search — the primary tool. Returns results sorted by date with timestamps and source outlets.
If an MCP news search tool is available (e.g., mcp__web_forager__duckduckgo_news_search
or mcp__duckduckgo__duckduckgo_news_search), prefer it:
mcp__web_forager__duckduckgo_news_search(query="your query", max_results=10)
Each result includes title, url, snippet, date, and source.
Without MCP, run the packaged Web Forager CLI with uvx:
uvx --python '>=3.10,<3.14' web-forager news "your query" --max-results 10 --output-format json
If uvx cannot run the packaged CLI, use a direct ddgs fallback through uv without
touching the current project environment:
uv run --no-project --python '>=3.10,<3.14' --with 'ddgs>=9.5.2' python - <<'PY'
from ddgs import DDGS
results = DDGS().news(query="your query", max_results=10)
for r in results:
print(r["date"], r["title"], r["url"], r["source"])
PY
General search — use an MCP search tool, web-forager search via uvx, or
DDGS().text() via uv run --no-project only if news search returns too few results.
Fetch — use an MCP fetch tool or curl -s "https://r.jina.ai/URL"
only when a snippet is too vague to summarize the event. Cap fetches with
max_length=3000 to avoid pulling giant pages.
Before searching, clarify:
Run 1–2 news searches with different angles to get good coverage:
"[topic]" as the base queryInclude the current year in queries to bias toward recent results.
From the combined news results:
Look at your filtered results. For each event, ask: "Can I write a useful 2–4 sentence
summary from the title + snippet alone?" If yes, don't fetch. If the snippet is cryptic
or you need key details (numbers, names, outcomes), fetch that one page with
max_length=3000.
Organize chronologically (most recent first) and present as a news briefing.
# [Topic] — News Briefing
**Period**: [time frame covered]
**Last updated**: [today's date]
## Headlines
- [One-line summary of event 1] — [date]
- [One-line summary of event 2] — [date]
- [One-line summary of event 3] — [date]
## Details
### [Event 1 title] — [date]
[2–4 sentences: what happened, why it matters, what's next]
Source: [Title](url)
### [Event 2 title] — [date]
[2–4 sentences]
Source: [Title](url)
### [Event 3 title] — [date]
[2–4 sentences]
Source: [Title](url)
## What to watch
[1–2 sentences about upcoming events, expected announcements, or unresolved threads
that the user might want to follow up on]
Keep it tight. The user wants to catch up quickly, not read essays. If there's genuinely no recent news, say so — "No significant developments found in [time frame]" is a valid and useful answer.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub cyranob/web-forager --plugin forager-skills