Updated Sep 21, 2026

Utilities

Fetch public RSS or Atom items into JSONL

Public RSS or Atom items, plus enclosure URLs, as JSONL.

Agent

overview

What rss-read does

You have a public feed URL or a file of feed URLs, and the next node needs items, not a browser session. Set --url for one feed or --feeds for a file. The wrapper writes items.jsonl, items.json, digest.md, and results.jsonl into --outdir. Enclosure URLs stay on each item so yt-dlp can download audio later.

--max-per-feed caps how many items each feed contributes. --max-age-hours drops older entries. --section labels the batch. --feeds-text is an inline list when you do not want a file. --fail-fast exits on the first feed error; leave it disconnected so a single dead feed does not fail the node.

rss-read fetches public feeds only. It does not log in, bypass a paywall, or invent items. Cloud fetches can still be rate-limited. Pair it with yt-dlp on enclosure URLs when you need the audio file, then whisper when you need speech as text.

source github.com/kurtmckee/feedparser

use cases

Where rss-read fits

Read one podcast feed

Set --url and --max-per-feed 2. items.jsonl holds the newest entries and their enclosure URLs.

Read a file of feeds

Pass --feeds a JSON array or one URL per line. --section labels every item from this run.

Drop stale items

Set --max-age-hours when you only want the last day or week.

Hand enclosures to yt-dlp

Read enclosure URLs from items.jsonl. yt-dlp downloads the media. whisper transcribes it.

reference

rss-read inputs and flags

10 inputs
NameTypeFlagDescription
urlSTRING--urlSingle RSS or Atom feed URL.
feedsFILE--feedsFile of feed URLs (JSON array or one per line).
max-per-feedSTRING--max-per-feedMax items kept per feed. Default 25.
inFOLDER--indirUpstream folder with a feeds file.

Showing key inputs. rss-read exposes 10 inputs in total.

Full flag reference (10 inputs)
NameTypeFlagDescription
inFOLDER--indirUpstream folder with a feeds file (JSON / JSONL / one URL per line)
urlSTRING--urlSingle RSS/Atom feed URL
feedsFILE--feedsFile of feed URLs (JSON array preferred; avoid shell-special chars in inline values)
feeds-textSTRING--feeds-textInline feed list body (prefer JSON). Avoid unquoted '|' in values.
sectionSTRING--sectionDefault section label applied to items from this run
max-per-feedSTRING--max-per-feedMax items kept per feed (default: 25)
max-age-hoursSTRING--max-age-hoursDrop items older than N hours (0 = keep all)
summary-charsSTRING--summary-charsMax summary length per item (default: 500)
user-agentSTRING--user-agentOverride HTTP User-Agent
fail-fastBOOLEAN--fail-fastExit non-zero on the first feed failure (default continues)

example

Run rss-read

rss-read · command
rss-read --url https://example.com/feed.xml --max-per-feed 2 --outdir /hive/out
sample output
{"title":"Example briefing","link":"https://example.com/ep/1","enclosure":"https://example.com/ep/1.mp3"}{"title":"Second item","link":"https://example.com/ep/2","enclosure":"https://example.com/ep/2.mp3"}

guidance

Choosing rss-read

Use rss-read when the source is a public RSS or Atom URL and you need items plus enclosures. Use yt-dlp when you already have a media URL. Use wget when you only need to download a file.

yt-dlp

Downloads media from a URL or enclosure. Run it after rss-read when you need the audio file.

wget

Downloads one HTTP file. It does not parse a feed into items.

trafilatura

Extracts article body text from a page URL. Use it when the source is HTML, not a feed.

faq

rss-read questions

Set --url and optionally --max-per-feed. The folder holds items.jsonl, items.json, digest.md, and results.jsonl.

Run rss-read yourself

A public feed URL feeds rss-read. items.jsonl and digest.md come from a completed run. Sample lines use example.com hosts.

Facts on this page come from the live Trickest tool library.