# News Monitor

> >

- **Type:** Skill
- **Install:** `agentstack add skill-cyranob-web-forager-news-monitor`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [CyranoB](https://agentstack.voostack.com/s/cyranob)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [CyranoB](https://github.com/CyranoB)
- **Source:** https://github.com/CyranoB/web-forager/tree/main/skills/news-monitor

## Install

```sh
agentstack add skill-cyranob-web-forager-news-monitor
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## 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:
```bash
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](https://github.com/CyranoB)
- **Source:** [CyranoB/web-forager](https://github.com/CyranoB/web-forager)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-cyranob-web-forager-news-monitor
- Seller: https://agentstack.voostack.com/s/cyranob
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
