dsh-rss:在 DeepSeek Harness 里读 RSS,并同步 FreshRSS 与 BYOK AI

前言

在 DSH(DeepSeek Harness)里做智能体或日常对话时,信息源往往分散在浏览器标签、独立 RSS 客户端和自托管 FreshRSS 之间。把订阅、阅读、已读状态和 AI 辅助放在同一宿主里,可以减少切换成本,也方便模型通过只读工具引用本地缓存的文章摘要。

下面介绍社区插件 dsh-rss(维护者 weixshaw),它在 DSH 内提供 RSS/Atom 阅读工作台,支持分组订阅、FreshRSS(Google Reader API)双向同步、图片本地代理,以及自带 Key 的 AI 摘要/翻译/问答。产品交互参考了开源项目 qiaomu-ai-rss(GPL-3.0-only);本插件为独立实现,代码许可为 MIT。当前 package 版本为 0.6.1。

这是什么

dsh-rss 是 DSH 的 联网工具 类插件:在宿主侧解析订阅、缓存文章、代理媒体与对接 FreshRSS/AI 接口;在客户端侧提供三栏阅读 UI,并与 DSH 导航集成。

  • 主入口:左侧主导航「RSS 阅读」,在中央内容区打开完整阅读器。
  • 设置入口:设置 → RSS 阅读(仅含订阅管理、FreshRSS、AI 设置三个分区,不嵌完整工作台)。
  • 可选:安装 dsh-better-sidebar(≥0.24)时,右侧栏会出现「RSS 阅读」tab。

面向对象:已使用 DSH Desktop 或 CLI、需要 RSS 阅读或 FreshRSS 同步的开发者;AI 能力采用 BYOK,不占用 DSH 内置模型配置。

核心功能

订阅与阅读

  • 自定义订阅:添加 RSS 2.0 / Atom 地址,重命名、按 组/子组 路径分组、退订;自带独立解析器。
  • 阅读工作台:订阅分组栏 + 文章列表 + 阅读栏;支持未读/收藏筛选、搜索、分页「加载更多」、键盘快捷键(如 / 搜索、J/K 上下篇、R 已读、S 收藏、F 专注模式)。
  • 阅读增强:可按原文链接抓取全文(readability 式提取,临时展示、不落盘);正文字号可调;复制原文链接。
  • OPML:嵌套分组导入(先预览再写入)、标准 OPML 导出。

刷新与缓存

  • 手动刷新采用 5 路有界并发;支持 ETag/Last-Modified,服务端返回 304 时跳过下载与解析。
  • 阅读页可开「自动」:约每 10 分钟静默刷新(仅阅读页打开时生效)。
  • 若配置了 FreshRSS 且账号可用,「⟳ 刷新」在独立订阅刷新后会继续账号同步。

FreshRSS

  • 通过 Google Reader 兼容 API 连接自托管 FreshRSS(建议 FreshRSS ≥ 1.20,并在服务端开启 API、使用专用 API 密码)。
  • 增量同步文章;本地已读/收藏通过 edit-tag 写回服务端,失败保留队列重试。
  • 账号变更保护:换账号须显式「重置 FreshRSS 数据」,避免 A 账号状态写到 B 账号。

图片、播客与视频

  • 默认 不向远程图床发请求(占位文本)。阅读栏开启「图片」后,经宿主路由 /dsh-rss/media 本地代理加载(图床看不到你的 IP/UA/Referer);魔数校验类型,SVG 拒绝,单图 8MB 上限等。
  • 播客 enclosure:点击后才直连音频源。
  • YouTube / B 站链接:点击后在阅读器内嵌入官方播放器 iframe;其余站点不嵌入。

AI(BYOK)

在 设置 → RSS 阅读 → AI 设置 配置 OpenAI 兼容接口(如 DeepSeek、OpenAI、本地 Ollama/LiteLLM)、模型名与 API Key 并启用。

  • 仅在阅读页点击「AI 摘要 / AI 翻译 / 提问」时发送对应正文;Key 存本机 0600 配置文件。
  • 模型工具 rss_recent_digest、rss_article_digest 只读本地缓存,不联网、不调用 AI、不接触密钥。

安全与数据位置

  • 正文白名单渲染(不用 innerHTML);对外请求协议、体积、超时均有界;FreshRSS 与 AI 请求 拒绝重定向(防凭据被转发)。
  • 本地数据目录:~/.dsh/dsh-rss/(含 config.json、按订阅分的文章缓存等)。

安装与启用

前提:DSH Desktop(0.2.0-rc 线)或 DSH CLI,Node.js ≥ 20。

DSH Desktop(推荐)

桌面 profile 由 Electron 独占管理,不能用 CLI 向 desktop profile 装插件:

dsh plugin --profile desktop add github:weixshaw/dsh-rss
error: profile "desktop" is managed exclusively by the Electron application

正确步骤:

  1. 打开 DSH Desktop(GUI 常见地址如 http://127.0.0.1:19387),进入侧边栏 Plugins(插件)。
  2. 点击 添加插件 / Add plugin,粘贴仓库地址:
   https://github.com/weixshaw/dsh-rss
  1. 确认信任提示后 安装 / Install;若提示需重启,则退出并重开 DSH Desktop,再在 GUI 中 硬刷新(Cmd/Ctrl+Shift+R)。
  2. 在同一页面可启用/停用/卸载;勿手动改 ~/.dsh/profiles/desktop/ 下文件。

CLI(自建 profile,如 web)

dsh plugin --profile web add github:weixshaw/dsh-rss

安装后硬刷新浏览器即可;headless/web profile 可热应用 patch。

更新与卸载

  • Git 安装:Plugins 页卸载后重新添加以拉取最新代码。
  • CLI:dsh plugin --profile web remove dsh-rss。

宿主与客户端版本由插件启动时比对;仅更新客户端而宿主未重启时,界面顶部会提示重启(避免图片代理等新路由无声 404)。

典型用法

添加独立 RSS 订阅

  1. 打开 RSS 阅读。
  2. 在订阅栏底部粘贴 Feed URL,点 + 或回车。
  3. 使用顶栏 ⟳ 刷新 拉取条目;需要看图时在阅读栏打开 图片 开关(走本地代理)。

接入 FreshRSS

  1. FreshRSS:设置 → 认证 → API 访问,允许 API 并生成 API 密码。
  2. DSH:设置 → RSS 阅读 → FreshRSS,填写站点根地址或 .../api/greader.php、用户名与 API 密码 → 保存并测试连接。
  3. ⇅ 立即同步 或阅读页 刷新(在独立订阅刷新后继续同步);本地标记已读/收藏会排队写回,失败下次重试。

内网可用 http://,插件会提示明文 HTTP 风险;API 密码仅存本机,不会出现在浏览器响应或模型工具输出中。

配置 AI 并阅读

  1. 设置 → RSS 阅读 → AI 设置:填写兼容接口 Base URL(示例:https://api.deepseek.com/v1)、模型名(如 deepseek-chat)、API Key,勾选启用。
  2. 在阅读页打开文章,按需点 AI 摘要 / AI 翻译 / 提问;结果可持久化(绑定文章,上限 200 条)。
  3. 正文在提示词中按不可信数据处理并截断;输出仅作参考,重要结论请对照原文。

给智能体用的只读工具

在 DSH 工具链中可挂载 rss_recent_digest(最近文章摘要列表)与 rss_article_digest(单篇缓存与已有 AI 结果),用于基于已缓存内容的上下文,而不会触发联网或 AI 计费。

适用场景与注意

适合:已在 DSH 内工作、希望统一 RSS 与(可选)FreshRSS;需要隐私友好的图片代理;希望 BYOK 做摘要/翻译/单篇问答的用户。

注意:

  • 插件以 当前 DSH 进程权限 运行,会发起对外 HTTP(S) 请求(订阅、FreshRSS、AI、图片代理)。安装前请查看 GitHub 源码 与 MIT 许可证,并自行评估信任边界。
  • AI 与全文抓取会把选定正文发往你所配置的第三方接口;FreshRSS API 密码与 AI Key 均在本机配置文件中,需保护好 ~/.dsh/dsh-rss/。
  • 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,目录为独立站点。

结尾

dsh-rss 把 RSS 阅读、FreshRSS 同步、本地图片代理和 BYOK AI 收进 DSH 同一界面,并暴露只读 digest 工具供智能体引用缓存。若你要在 Harness 里维护订阅而不是再开一个客户端,可按上文安装路径接入。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜