JohnXu22786/rss-digest
dsh-rss-digest
RSS/Atom digest plugin for DeepSeek Harness (dsh bundle): subscribe, fetch on schedule, dedupe, LLM summaries, daily Markdown briefings.
Install
npx @deepseek-ai/dsh plugin --profile demo add ./path/to/dsh-rss-digestRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/rss-digest)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from JohnXu22786/rss-digest, cleaned of badges and images.
dsh-rss-digest
English · 简体中文
RSS/Atom aggregation, smart summarization, and daily Markdown briefings — a first-party-style dsh bundle (DeepSeek Harness, "everything is a plugin").
The plugin manages feed subscriptions with local persistence, polls feeds on a schedule, deduplicates stories (exact + near-duplicate), summarizes them with the harness's LLM (with a deterministic extractive fallback when the model is unavailable), and delivers a daily Markdown digest into live conversations and/or files. It also ships a standalone CLI that shares the same core.
- dsh integration: bundle spec (
dsh.bundle+cordis.patch.yml), model-facing tools viactx.tools, scheduling via the harness timer seam, delivery via agent follow-up messages. See Architecture. - Zero-friction core: the fetch/parse/dedupe/store/digest core has no dependencies at all — only the dsh integration layer imports dsh packages.
Features
- Subscriptions — add / remove / list / enable / disable RSS 2.0, Atom, and RSS 1.0 (RDF) feeds; persisted in a single versioned JSON document with atomic writes and corruption quarantine.
- Scheduled fetching — configurable poll interval, startup cycle, per-request timeout, size cap, retries, and an item retention cap.
- Deduplication — exact-match hashing plus token-Jaccard near-duplicate detection (CJK-aware bigrams), configurable threshold.
- LLM summaries — one batch call per digest or per-item summaries, Chinese or English, bounded output length; automatic degradation to extractive summaries on any model failure.
- Daily digest — Markdown briefing at a wall-clock time (optional IANA
timezone) delivered to live sessions (
Agent.followup) and/or written todigests/<day>.mdfiles. - Two entry points — the same
RssServicepowers both the dsh plugin (ctx.tools+ scheduler) and the standalone CLI.
Installation (dsh)
A bundle is an npm package that ships a configuration layer. Install this
package into a dsh profile; the loader picks up the dsh.bundle declaration
and applies cordis.patch.yml automatically:
# from inside a dsh profile (or with --profile <name> from anywhere)
dsh plugin --profile demo add ./path/to/dsh-rss-digest
# or from a registry: dsh plugin --profile demo add dsh-rss-digest
The profile manifest now lists dsh-rss-digest in dsh.profile.bundles, and
the bundle's patch inserts the plugin row:
- insert:
- id: rss-digest
name: 'dsh-rss-digest'
Optional: tune the plugin from your profile's own
$DSH_HOME/profiles/demo/cordis.patch.yml (a bare row by id replaces the
row's config; every omitted field keeps its default). A fully annotated
example lives in examples/profile.cordis.patch.yml:
- id: rss-digest
config:
fetch:
intervalMinutes: 60
summary:
language: zh
mode: batch
digest:
time: '08:30'
timezone: Asia/Shanghai
deliverTo: both
The plugin starts with sensible defaults even with no configuration at all;
use rss_add in a conversation or dsh-rss-digest add in a shell to register
feeds at runtime.
…
