前言¶
在 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
正确步骤:
- 打开 DSH Desktop(GUI 常见地址如
http://127.0.0.1:19387),进入侧边栏 Plugins(插件)。 - 点击 添加插件 / Add plugin,粘贴仓库地址:
https://github.com/weixshaw/dsh-rss
- 确认信任提示后 安装 / Install;若提示需重启,则退出并重开 DSH Desktop,再在 GUI 中 硬刷新(Cmd/Ctrl+Shift+R)。
- 在同一页面可启用/停用/卸载;勿手动改
~/.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 订阅¶
- 打开 RSS 阅读。
- 在订阅栏底部粘贴 Feed URL,点 + 或回车。
- 使用顶栏 ⟳ 刷新 拉取条目;需要看图时在阅读栏打开 图片 开关(走本地代理)。
接入 FreshRSS¶
- FreshRSS:设置 → 认证 → API 访问,允许 API 并生成 API 密码。
- DSH:设置 → RSS 阅读 → FreshRSS,填写站点根地址或
.../api/greader.php、用户名与 API 密码 → 保存并测试连接。 - ⇅ 立即同步 或阅读页 刷新(在独立订阅刷新后继续同步);本地标记已读/收藏会排队写回,失败下次重试。
内网可用 http://,插件会提示明文 HTTP 风险;API 密码仅存本机,不会出现在浏览器响应或模型工具输出中。
配置 AI 并阅读¶
- 设置 → RSS 阅读 → AI 设置:填写兼容接口 Base URL(示例:
https://api.deepseek.com/v1)、模型名(如deepseek-chat)、API Key,勾选启用。 - 在阅读页打开文章,按需点 AI 摘要 / AI 翻译 / 提问;结果可持久化(绑定文章,上限 200 条)。
- 正文在提示词中按不可信数据处理并截断;输出仅作参考,重要结论请对照原文。
给智能体用的只读工具¶
在 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 里维护订阅而不是再开一个客户端,可按上文安装路径接入。