Back to marketplace

dsh-rss-daily

Integrations

shangjian2023/dsh-rss-daily

Daily RSS digest plugin: aggregates 46 sources, LLM-edited, delivered via webhook (ServerChan/PushDeer/WxWork/TG/Bark/gotify) and displayed in chat without consuming context.

  • daily-briefing
  • digest
  • dsh-plugin
  • news
  • rss
GitHub Stars
2GitHub
Views
6DSH Plugin Hub
Forks
0GitHub
Open issues
0GitHub Issues
Manifest version
0.5.0dsh-rss-daily
Latest push
Oct 2, 2026GitHub
License
MITJavaScript
Plugin type
Host + ClientRuns in both Host and Web Client

Verification and compatibility

This section shows evidence collected by the catalog. Undeclared information is labeled as unknown.

Static checked
01Exact source: npm · dsh-rss-daily@0.5.002Validated: Aug 26, 202603Verified Harness: 0.1.0-rc.7
Current-version compatibility
Verified on the catalog Harness version
Declared Harness range
Not declared
Declared platforms
Not declared
Profiles
web
Build approval
Unknown
Permissions
Not declared
External services
Not declared
Telemetry
Unknown
No known risk flags found

This is not a security endorsement. Review source, permissions, and configuration before installing.

View evidence and scope

Verification covers only the named source, version, and Harness environment. It does not guarantee future compatibility.

  • dsh-rss-daily@0.5.0
  • The manifest and static structure passed checks; a runtime load check has not completed.

README

View source

📰 dsh-rss-daily

一句话:每天早上 8 点,dsh 自动给你端上一份主编级的要闻日报 —— 用你已经配好的模型编辑、送到你的微信 / Telegram,还会像一条普通回复一样出现在对话里(不占任何上下文)。

npm npm downloads awesome · DSH plugin CI License: MIT

English README

长什么样

日报直接出现在你的对话里,样式和模型回答一模一样 —— 纯 markdown 排版、同样的字体和宽度:

对话内日报

它是纯前端渲染:只显示,不写会话记录、不发给模型,你的上下文干干净净。

为什么值得装

  • 像主编选的,不是聚合器堆的。 ~20 条候选先打分(源等级 × 时效 × 信号词)、去重(Jaccard + 14 天 MD5 历史)、多源事件图谱交叉验证,最后交给 dsh 里你已配好的模型做主编:合并同事件、剔除 PR 通稿、平衡选题(同话题 ≤2 条)、每条浓缩成一句 ≤45 字的具体事实。
  • 零额外 API key。 编辑这步走 ctx.llm,用 dsh 现成的模型,不多花一分钱、不多配一个密钥。
  • 永不断更。 模型调用失败自动降级规则模式照常出稿;错过定时段落,开机 12 小时内自动补跑。
  • 送到你读的地方。 Server酱 / PushDeer / 企业微信 / Telegram / Bark / gotify / 自定义 webhook,任一成功即算送达。
  • 生产级管线。 移植自 2026 年 6 月起每天在生产环境运行、迭代过 9 版的私人脚本:源健康度自适应超时、feed 乱码修复、短摘要抓原文补全、420 秒硬预算(POSIX 用 SIGALRM 硬中断;Windows 无此信号,靠逐请求超时 + 软预算检查兜底)、幂等两阶段送达(fetch → outbox → 投递 → confirm)。

安装(npm 推荐)

# npm(推荐,无 git 克隆、无构建脚本)
dsh plugin --profile web add dsh-rss-daily

# 或 GitHub
dsh plugin --profile web add github:shangjian2023/dsh-rss-daily

重启 dsh web:每个会话头部出现 📰 按钮,定时任务即刻生效。

30 秒配好:

  1. 点任意会话头部的 📰 按钮 → 设置 标签
  2. 改时间、加一个投递目标(Server酱 / PushDeer / 企微 / Telegram / Bark / gotify / 自定义)
  3. 点 获取今日日报 —— 立刻生成、立刻投递、立刻出现在对话里

不用碰任何 YAML —— 时间、目标、源、条数、模型,全部在面板里改,即时生效。

亮点

  • 🖥 三个界面,零上下文消耗:对话内插播、📰 面板(日报 / 源 / 设置)、设置页卡片 —— 全部客户端渲染,永不进会话日志

  • 📝 插播即模型回答的原样:日报正文用宿主同款 MarkdownText 渲染组件(与真实 assistant 消息同一组件、同一套样式),上屏时以打字机节奏渐显、完稿前不显示操作行——看起来就是模型在作答,但一个 token 的上下文都不占

  • 🧰 46 个精选源,覆盖 AI / 科技 / 科学 / 国际 / 财经 / 开发 / 人文 等 15 个类目,从中国大陆实测可达;源标签页里随意增删停启(连续失败 3 次的源自动降级 24 小时,恢复需连续成功 2 次)

  • 🤖 rss_daily 对话工具 —— run / status / redo / deliver,直接吩咐 agent "生成今天的新闻日报"也行

  • 🔌 无界面模式 —— py/daily.py 可脱离 dsh 独立跑,对接任意 OpenAI 兼容端点:

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

配置

默认值开箱即用,面板覆盖一切。主要开关:

键默认含义
time08:00每天本地 HH:MM 运行(错过 <12h 开机补跑)。日报标题日期按北京时间(UTC+8)计算
targets[][]投递目标;≥1 个成功即算送达
digestItems8每日最多条数
llmModeharnessharness(用 dsh 的模型)或 none(仅规则)
broadcasttrue对话内插播开关
stateDir~/.dsh/rss-daily源 / 去重历史 / outbox 目录

进阶用户也可以在 profile 的 cordis.patch.yml 里覆盖配置行;HTTP API 与管线阶段见下文。

工作原理

46 源 ──▶ 抓取(健康度/超时/去重) ──▶ ~20 条候选
                                          │
                        ctx.llm 主编编排(失败→翻译兜底→规则模式)
                                          │
                            日报 ──▶ webhook 投递 ──▶ confirm
                                          │
                          对话内插播(纯前端,零上下文)

py/daily.py 可独立脚本化(--stage fetch|finalize|confirm|status,stdout 输出单行 JSON),插件本体驱动的就是这些阶段。送达成功前绝不 confirm —— 确认过的条目会永久进入 14 天去重窗口。

编辑纪律(蒸馏自 AIHOT)

AIHOT 是卡神开源的"自己找热点、自己写日报"网站框架;本插件的编辑管线是它的插件化蒸馏——信源是综合要闻而非仅 AI,跑在 dsh 内部而非三进程网站:

AIHOT 概念本插件对应
预筛 + 两次独立评分 + 分级门槛规则预打分(信源分级×新鲜度×信号词)排出候选池,选题交给主编
五轴评分 + 噪声压制表主编 prompt 内化:实质份量/信息增量/证据强度/共鸣面/可用性;通稿、营销、例行小版本压分
写作(中文标题/答案先行摘要/防幻觉)一句话铁律:答案前置、标题自洽(必点主体)、防幻觉(不加原文没有的数字版本、相对时间照抄)
聚簇与热度(独立来源计数)同事件合并只出一条;newsflash 多源交叉验证条目带 ✚N家 佐证徽标
花钱的请求有回执 / 预算熔断stateDir/llm-receipts.json 记每笔调用,单日超 8 次熔断
页面不调模型 / 一个读取层outbox JSON 是面板/插播/agent 工具/MCP/webhook 的唯一事实源
日报导语lead 字段:提示词要求 ≤60 字概括当日主线(解析层按 120 字兜底截断),面板与插播都展示

语言不降级:主编调用失败时先做"翻译兜底"(规则选题 + 仅翻译改写),再不行才规则直出并诚实标注"原文标题速览"——日报语言是硬约束。

桌面版(DSH Desktop)适配:默认模型跟随宿主 agentDefaultModel(你聊天用的那个),空回复自动翻倍预算重试(思考型模型会把 max_tokens 烧在推理上);面板自带完整设计系统(实色明暗面板,打开时采样宿主亮度决定),不借宿主 CSS 变量——0.2.0-rc 宿主变量改名曾让面板透明到看不清;宿主没有 settings.register() 时面板配置自持久化到 stateDir/panel-config.json。

HTTP API(进阶)

同源 API /rss-daily/api/*(仅带 webserver 的 profile 注册):GET status、POST run、POST redo、POST redeliver(重投,{"onlyFailed":true} 只投上次失败的目标)、GET/PUT sources、POST config。投递目标里的密钥在响应中打码;写回时带打码值的字段按目标类型回填原值。所有写入要求同源 + Content-Type: application/json(防跨站简单请求改写投递目标),并过字段白名单校验再落盘。

MCP(给其他 Agent 用)

mcp/server.py 把同一条管线暴露成 MCP 工具,Claude Code / Codex / opencode / Cursor 等任何 MCP 客户端都能用:rss_status(查状态)、rss_fetch(抓取出编辑提示词)、rss_finalize(把编辑结果落稿)、rss_confirm(确认送达)。宿主 agent 既是主编(按提示词挑选改写),也是投递渠道(把日报展示给用户)。

状态目录默认与 dsh 插件共享(幂等门互认、抓取锁互斥);定时投递仍由 dsh 插件或 cron 负责,MCP 管交互式操作。

一行配进 Claude Code(用户级,所有项目可用):

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

Codex / opencode 配置、长任务轮询约定见 mcp/README.md。

依赖

  • dsh,使用 web(或任意常驻)profile
  • Python 3.9+ 且装了 feedparser:pip install feedparser(走 MCP 再加 pip install mcp,1.x 与 2.x 均可)
  • Node.js ≥ 22.19(对齐 dsh 宿主自身的 Node 要求;纯 JS 逻辑层兼容 18,但插件只能跑在 dsh 里)

许可

MIT

Comments

0
Newest first