Install
$ agentstack add skill-cyranob-web-forager-news-monitor ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
News Monitor
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.
Design principle: search results first, fetch sparingly
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.
Tools available
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.10,=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.
News monitoring workflow
Step 1 — Determine scope
Before searching, clarify:
- Topic: what exactly are we monitoring?
- Time frame: did the user specify "this week", "last month", "since X"? If not,
default to the last 2–4 weeks.
- Angle: are they interested in everything, or a specific aspect (e.g., "funding
news about X", "regulatory updates on Y")?
Step 2 — Search
Run 1–2 news searches with different angles to get good coverage:
"[topic]"as the base query- A second query with a more specific angle if relevant (e.g., "[topic] announcement",
"[topic] policy", "[topic] release")
Include the current year in queries to bias toward recent results.
Step 3 — Deduplicate and filter
From the combined news results:
- Group articles about the same event (multiple outlets covering the same story)
- Pick the best source for each event (prefer the one with the most informative snippet)
- Discard anything outside the relevant time frame
- Discard duplicates or near-duplicates
- Aim for 3–7 distinct events
Step 4 — Selective fetch (only if needed)
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.
Step 5 — Deliver the briefing
Organize chronologically (most recent first) and present as a news briefing.
Output format
# [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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: CyranoB
- Source: CyranoB/web-forager
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.