Skip to content
Agentmart
Submit a tool

news-digest

Create an automation that reads a list of public RSS and Atom feeds on a schedule - daily by default - keeps what is new and matches the configured topics…

Skill by OpenHands

IndexedMIT★ 173
Write a review

Chalk Labs

Need help deploying news-digest?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/openhands-news-digest

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Create an automation that reads a list of public RSS and Atom feeds on a schedule - daily by default - keeps what is new and matches the configured topics, and has an agent write a short digest of it. It needs no credentials: the feeds are public URLs and, on a local Agent Canvas, the conversation is started with no secrets and no MCP servers.

Use cases: design, security, writing, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/news-digest

What's inside

Skill name
news-digest
Description
Create an automation that reads a list of public RSS and Atom feeds on a schedule - daily by default - keeps what is new and matches the configured topics, and has an agent write a short digest of it. It needs no credentials: the feeds are public URLs and, on a local Agent Canvas, the conversation is started with no secrets and no MCP servers.
License
MIT
Instructions
284 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions call the network

Files (8)

  • .claude-plugin
  • .codex-plugin
  • plugin.json · .plugin/
  • README.md
  • SKILL.md
  • news-digest-setup.md · commands/
  • state-schema.md · references/
  • main.py · scripts/

SKILL.md (first lines)

# Daily News Digest Automation

Create a cron automation that turns a list of feeds into something worth
reading: a few hundred words a day on what happened in the topics you care
about, with a link under each item.

**It connects to nothing.** There is no token to issue, no account to link, no
OAuth screen. That makes it the automation to run first - it exercises the
schedule, the conversation, the model and the run log end to end while nothing
of yours is at stake, and it is useful in its own right afterwards.

The script is deterministic: the schedule, the once-a-day claim, fetching,
parsing, the freshness window, and remembering what has already been covered
are all Python. The LLM is invoked only for the part that
is judgement - reading the shortlist and writing something that is not just the
headlines pasted back. **When nothing new matches, no conversation is started
at all**, so a quiet day costs no tokens.

---

## Prerequisites

None. That is the point.

The runtime needs outbound HTTPS to the feed hosts, which it already has if it
can reach the model. Nothing is read from **Settings -> Secrets**, and nothing
needs to be added there.

---

## Setup Workflow

Follow these steps in order.

### Step 1 - Collect the feeds

Ask: *"Which feeds should the digest read? (One RSS or Atom URL per line. Press
Enter for a general technology set.)"*

Default:

```
https://news.ycombinator.com/rss
https://feeds.arstechnica.com/arstechnica/index
https://www.theverge.com/rss/index.xml
```

Check each one before accepting it, because a URL that returns a web page
rather than a feed is the most common setup mistake:

```bash
curl -sSL --max-time 20 -A "OpenHands-News-Digest/1.0" "{feed_url}" \
  | python3 -c "
import sys
from xml.etree import ElementTree
try:
    root = ElementTree.fromstring(sys.stdin.buffer.read())
except ElementTree.ParseError as exc:
    print('ERROR: not valid XML:', exc); raise SystemExit
name = root.tag.rsplit('}', 1)[-1]
items = [e for e in root.iter() if e.tag.rsplit('}', 1)[-1] in ('item', 'entry')]
print(f'OK: <{name}> with {len(items)} entries' if name.lower() in ('rss', 'feed', 'rdf')
      else f'ERROR: root element is <{name}>, which is not a feed')
"
```

Record every accepted URL into `FEEDS = ["...", ...]`. A feed that fails at
runtime is reported and skipped, so one bad URL does not cost you the digest -
but it is better to find out now.

### Step 2 - Collect the topics

Ask: *"What should the digest be about? (One topic per line, or comma
separated. Press Enter for `artificial intelligence, open source, developer
tools`. Leave it blank to summarise everything the feeds carry.)"*

Record as `TOPICS`. Two things are worth telling the user:

- The agent decides which stories are about them, reading each headline and
  excerpt. So write topics the way you would explain your interests to a
  colleague - `artificial intelligence` works even though almost every headline
  says `AI`, and a story about a company releasing its model weights counts as
  `open source` without using the phrase.
- An empty list means "cover whatever is most significant". That is right for a
  handful of narrow feeds and vaguer for a firehose.

### Step 3 - Collect the schedule

Ask: *"When should the digest be written? (Press Enter for the default: every
day at 08:00 UTC, `0 8 * * *`.)"*

Default: `0 8 * * *`. Record as `CRON_SCHEDULE`, and the timezone as
`CRON_TIMEZONE` (default `UTC`).

A schedule more frequent than daily is allowed and is not wasteful: work is
keyed by UTC date, so extra runs stop at a state read once the day is done, and
before that they cost one HTTP request per feed and no tokens. It is a
reasonable way to say "write the digest as soon as there is anything to write".

### Step 4 - Confirm the secret scope

Do **not** ask which secrets to forward. `AGENT_SECRET_NAMES` is empty and
should stay empty: the conversation summarises text fetched from the open web,
which is written by strangers, and a credential handed to it would make every
feed on the list an instruction channel into the deployment's secret store.

If the user asks for a digest posted to Slack, Notion or a repository, that is a
different automation - it needs that integration connected, and it should be
built from the skill for it rather than by widening this one.

### Step 5 - Generate the automation script

Read `scripts/main.py` from this skill's directory. Apply exactly two constant
substitutions near the top of the file:

> The script also reads a `config.json` shipped beside it, if there is one, over
> these constants. That is how the catalog entry
> (`automations/catalog/news-digest/`) configures an unmodified copy, since a
> declarative host cannot rewrite Python. This setup path substitutes the

From OpenHands/extensions, MIT.

More from OpenHands/extensions

Signals

Stars
173
Forks
118
Open issues
84
Last commit (this folder)
Oct 2, 2026 (29 days ago)
Last release
Oct 23, 2026 (8 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from OpenHands

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get news-digest running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying news-digest?

CallGet help
Cite this page

news-digest skill. Agent Mart. https://agentmart.dev/skills/openhands-news-digest (last updated 2026-10-24)