Feeds & Digests
Subscribing to RSS isn't new. What Scholardo adds on top is this: have an agent read across a pile of sources and write one digest you'll actually read.
For where the UI is and how to add subscriptions, see Feeds — Subscriptions. This page is about how digests are produced and tuned.
Why digests are per-group
Subscribe to eight sources and you open the app to eight separate lists of thirty items each — no better than not subscribing.
Scholardo's unit is the subscription group: every source in a group is fetched together and handed to the agent, which writes one Markdown digest into the project:
sources/feeds/<group>/… ← fetched raw entries
feed-digest-<group>.md ← the agent's digestOne group stands for one direction of interest. "Solid-state batteries" is a group; "ML methods" is another; each gets its own digest.
How a digest gets written
Scholardo ships a digest-writing spec (an agent skill) defining the structural requirements. At generation time the fetched entries and that spec go to your agent, which produces the Markdown.
Two implications:
- Digest quality tracks the model you use — a stronger model gives better synthesis
- The format is stable — you won't get themed sections one week and a flat list the next; the structure is pinned by the spec
Digest pages get their own styling, visibly distinct from ordinary notes.
Digest language
Settings lets you set the digest output language independently of your interface language. Following English-language sources but wanting a Chinese digest is a common combination.
Filters
When a source produces fifty items a day and three matter to you, you want a filter.
Each subscription can carry two keyword sets:
| Effect | |
|---|---|
| keywords | Keep only matching entries |
| excludeKeywords | Drop matching entries |
Filters are set through the agent today — just say "add a filter to this source: keep only items mentioning solid-state electrolyte, drop reviews," and it writes the config with the MCP tool set_feed_filter.
Filter at subscribe time
You can set filter terms when adding a source (add_feed supports it), which is less work than narrowing after the fact.
Auto-refresh
Feeds fetches in the background in batches, with progress in the toolbar. You can Pause auto-refresh, or refresh manually at any time.
Fetching and digesting are two separate things:
| Action | Does | Needs AI |
|---|---|---|
| Refresh this group now | Pull new entries from every source | ❌ |
| Refresh this group's digest now | Regenerate the digest | ✅ |
So without an AI configured, subscriptions still work — you just don't get the digest layer.
Unread indicators
New content puts a small dot on the group and on the Sources tab icon in the left sidebar; it clears once read.
Letting the agent find sources
When adding a subscription you can use Describe mode — describe what you want to follow in a sentence and the agent goes looking. This path needs an active session in the right pane.
What agents can manage
| Tool | Purpose |
|---|---|
add_feed | Add a subscription (optionally with filters) |
remove_feed | Unsubscribe |
refresh_feed | Refresh a given source |
set_feed_filter | Change filter terms |
Combined with list_sources, you can have an agent audit what you're subscribed to, which sources have gone quiet, and what to prune.
Failed fetches
Failing sources carry a warning marker; hovering shows the last failure. Common causes are a changed feed URL or a temporarily unreachable site — one failing source doesn't affect the others or block digest generation.
See also
- Feeds — Subscriptions — the UI and adding subscriptions
- AI API Keys — the AI configuration digests need

