Preface

The DeepSeek Harness (DSH) plugin ecosystem supports encapsulating specific features as modules. When processing daily information feeds, traditional RSS aggregators are often too broad, while directly calling an LLM to process RSS sources requires an additional API key. The dsh-rss-daily plugin addresses both pain points: it reuses the model already configured in DSH for editing, delivers daily reports to instant messaging tools via Webhook, and finally inserts them into the conversation as pure front-end rendering without consuming any context.

Core Features

The plugin provides production-grade daily news summarization services with the following core capabilities:

  1. Curated Source Coverage: Built in 46 curated RSS sources, covering technology, science, international affairs, finance, humanities, and development.
  2. LLM Editing: Uses DSH’s existing model (ctx.llm) to perform editor-in-chief-level editing on fetched content, supporting scoring, deduplication, merging the same events, and balancing topic selection. If model calls fail, it automatically falls back to rule mode.
  3. Webhook Delivery: Supports delivery via ServerChan, PushDeer, WeCom, Telegram, Bark, Gotify, or custom Webhook.
  4. Zero Context Consumption: The daily report is rendered in the conversation via pure front-end rendering, is not written to conversation logs, and does not consume context tokens.
  5. Production-Grade Pipeline: Includes adaptive timeouts, garbled-text repair, hard budget control, and an idempotent two-phase delivery mechanism (fetch → outbox → delivery → confirm).
  6. Flexible Delivery: Supports standalone Python script mode and Model Context Protocol (MCP) support, and can be invoked by tools such as Claude Code.

Installation and Enablement

The plugin is installed via npm, without cloning the repository locally or building it.

dsh plugin --profile web add dsh-rss-daily

After installation, restart the dsh web process. A 📰 button appears in each conversation header, and the scheduled task takes effect immediately.

Configuration and Usage

Interface Configuration

The plugin supports zero YAML configuration. All settings can be completed in the 📰 button at any conversation header:
1. Settings: Configure the run time (default 08:00), delivery targets (ServerChan / PushDeer / WeCom / Telegram, etc.), and the source list.
2. Get Today’s Daily Report: Immediately generate, deliver, and insert it into the conversation.
3. Source Management: Add or delete sources freely; sources that fail 3 consecutive times are automatically downgraded for 24 hours.

Conversation Tools

In the conversation, you can use the following commands to interact with the plugin:
* rss_daily run: Generate today’s news daily report
* rss_daily status: View the current status
* rss_daily redo: Regenerate
* rss_daily deliver: Execute delivery

Standalone Script Mode

Without relying on the DSH runtime, you can run it standalone using a Python script:

RSS_LLM_ENDPOINT=https://api.deepseek.com/v1 RSS_LLM_KEY=sk-... \
  python py/daily.py --state-dir ~/.rss-daily

MCP Integration

In tools such as Claude Code, you can invoke the plugin through the MCP protocol:

claude mcp add --scope user rss-daily -- python /path/to/dsh-rss-daily/mcp/server.py

Notes

  • Dependency Environment: Requires running dsh (web profile recommended), Python 3.9+, and Node.js >= 18.
  • Deduplication Mechanism: Confirmed delivered entries enter a 14-day deduplication window.
  • Context Protection: Inserted content in the conversation is only rendered on the front end and is not provided to the model as context input.
  • Fault Tolerance: If the scheduled time is missed, the system will automatically run it within 12 hours of startup.