Skip to content

hanabiovo/mediarium-synthesis

v0.1.0

通过已连接的灵媒 MCP 复盘新闻脉络、梳理积压未读并整理收藏兴趣。

灵媒 · Mediarium

一间自己打理的数字报刊亭。

灵媒是一款可自行部署的个人阅读器。它把散落在网站、媒体和播客里的内容收集起来,整理成适合慢慢阅读的报刊。

报刊架上,每个信源都是一本杂志;信息流里,文章按时间自然排列。点开一篇文章,看到的是经过誊写、清理、重新排版,必要时也经过翻译的正文。

这里没有猜你喜欢的推荐算法,没有每日阅读指标,也不催促你清空未读。

世界每天发生很多事。你决定看什么,也决定略过什么。

从找到信源开始

RSS 本来是一种开放、自由的订阅方式,却不应该要求每位读者都懂得寻找订阅地址、配置路由或排查服务器故障。灵媒试着把这些麻烦留给后台。

  • 自然地寻找订阅源:输入站点名、网页地址或 RSSHub 路由,自动搜索和匹配可用信源,无须手动寻找 XML 地址。
  • RSSHub 实例优选:实时探测多个公共实例及自建实例的可用性,帮助选择可用的订阅路线。
  • 信源体检:检查订阅源的抓取状态和异常情况。对于出现问题的信源,可以重新抓取、更换实例、寻找替代源,或确认无须处理。
  • 跨地区订阅中转:针对限制特定地区服务器访问的网站,通过其他地区的服务器转发请求,让原本难以订阅的内容也能顺利送达。

把文章好好送到读者面前

找到文章只是第一步,能否完整、舒服地读完它,是另一回事。

灵媒在后台配备了前置誊写服务,提前获取文章正文与图片,修复格式,尽可能减少网页广告、缺失图片、截断正文和混乱排版带来的干扰。阅读时,还有一套为长文章准备的排印系统:

  • 报刊架与信息流:按类别陈列信源,支持报纸、杂志和列表三种视图;文章也可以按时间汇入统一的信息流。
  • 正文整理:处理标题重复、标点、中西文混排、小标题、图片与图注,清理部分无关的网页元素。
  • 自由排版:分别设置中文正文、标题和西文字体,调整字号、行距与缩进;支持导入外部字体,也可以直接预览效果。
  • 多种阅读方式:未读、全部、收藏,以及「不看的」;可选择滚动标记已读,让浏览更轻松。

力气花在文章本身,而不是要求读者适应网站原来的样子。

读懂不同语言的世界

订阅不必受语言限制。

灵媒支持整篇翻译、逐段翻译和划词翻译,也支持标题双语对照。可以选用 DeepL、火山等机器翻译服务,也可以连接自己的 AI 模型接口,使用自定义翻译预设。不同翻译服务的调用次数、字数与 Token 用量都有记录,方便了解使用情况和成本。

翻译是一种阅读辅助。原文依然在那里。

不只有文字

播客天然依靠 RSS 分发,也理应在报刊亭里有自己的位置。

灵媒内置播客播放器,支持后台播放、悬浮控制、倍速、进度拖动与快进快退。对于带有时间标记的节目介绍(shownotes),可以识别时间点并直接跳转到相应位置。

听到一半,可以去读文章;读完文章,也可以回来继续听。

把读到的东西带走

文章不应该只能留在阅读器里。

  • Markdown:将文章导出为 Markdown,方便保存到个人知识库、整理笔记,或交给 AI Agent 继续处理。
  • EPUB:把网页文章转换成独立的电子书,附上带有寒鸦印记的封面,放进自己喜欢的阅读器。
  • 段落摘录:单独分享文章片段,支持纯文本、保留 Markdown 格式及附带出处的引用。
  • 读书卡片:把喜欢的段落排成精致的图片,保存到相册或分享给朋友。

内容从哪里来,最终又要去哪里,都由读者决定。

一点关于选择的坚持

灵媒提供一个叫作「不爱看」的功能。

遇到不感兴趣的文章,可以轻轻划掉。系统会记录这些反馈;当某个信源积累了较高比例的负面反馈时,会提醒你重新考虑是否继续订阅。但它不会据此自动建立内容过滤规则,也不会替你决定下一篇文章是否值得出现。

即使是不想读的内容,从眼前经过一次,也有那一次的意义。

报刊架上也不刻意展示未读数量。阅读不是一项需要完成的任务。

一间有自己模样的报刊亭

灵媒的界面借用了报纸、杂志与旧式书籍的排版语言,尽量让内容成为视觉中心。

  • 多套界面字体:从老派书刊到现代杂志,提供不同的排印气质。
  • 寒鸦衔色:在预设的协调性与可读性约束下随机生成配色,为每种色调匹配自己的名字。
  • 个性化阅读:界面保持统一的设计规范,文章字体、排版与颜色则可以按自己的喜好调整。
  • 墨水屏适配:网页能认出 Android 墨水屏设备上的灵媒外壳,自动减少动画、支持实体翻页按键、换页时清除残影,并提供字迹加深。(外壳 APK 暂未收录在本仓库。)

还有一些寒鸦藏在不太显眼的地方。它们送信、休息、偶尔说两句话。点得太多,有的会飞走。

接入 AI 助手(MCP)

灵媒自带一个 MCP 服务。在「设置 › 接入 AI 助手」生成专属链接,填进支持 MCP 的客户端(如 Claude、ChatGPT、Cursor),就可以在对话里:

  • 找到你读过的文章,读灵媒整理过的全文
  • 让它推荐相似的站点,由灵媒当场体检,确认后按你的习惯一次订好
  • 按「报刊 → 栏目」管理订阅:列出一个网站在 RSSHub 上的全部栏目,挑合口味的并进已有报刊,给外文刊填上中文别名
  • 让它替你给源医生排障:看报错原文、重新抓取、换 RSSHub 实例;判定是老毛病的,可以让源医生不再为这类问题提醒(网页上能看到理由、随时撤销)。退订、换源这类事会先问你

链接分只读和可管理订阅两档,只能碰自己的账号。传输方式是 Streamable HTTP,不需要 OAuth:添加时认证方式选「无」,链接本身就是钥匙。

信息整合技能

仓库附带 灵媒 · 信息整合(mediarium-synthesis):让 AI 串联指定时段的新闻进展、为积压未读建立阅读方向,或从收藏中整理有依据、可修正的兴趣档案。新闻复盘可以包含已读文章,其他分类也可以按问题和观点组织。

技能需要使用者先连接自己的灵媒 MCP;只读权限即可。安装、插件入口和调用示例见 docs/SKILLS.md,技能源码在 skills/mediarium-synthesis/。

部署与使用

灵媒以 Miniflux 作为订阅管理后端,是一款可自行部署的 PWA 应用。支持桌面与移动浏览器,手机上可以添加到主屏幕使用。可以一个人使用,也支持管理员通过邀请链接邀请朋友注册。

RSSHub、全文誊写、翻译及跨地区中转等服务共同构成了灵媒的内容处理能力。

部署步骤见 docs/DEPLOY.md。需要一台 Linux 服务器(1 GB 内存够用)、Docker 和一个域名。

目录与开发

web/            灵媒界面(Vite + React + TypeScript)
server/scribe/  誊写服务(Node):修补订阅源、翻译、图片中转、邀请注册
deploy/         docker-compose、.env 示例、Nginx 配置
docs/           部署说明
skills/         信息整合等 AI 阅读技能
plugin.json     阅读技能的插件入口

本地开发前端:cd web && npm ci && npm run dev。开发时需要一个能访问的灵媒后端,/miniflux/ 和 /scribe/ 两个路径要能反代到它。

誊写服务的测试:cd server/scribe && npm ci && npm test。

许可

  • 代码:GNU AGPL-3.0。你可以自由使用、修改、分发;如果把改过的版本发布出去,或者部署成网站给别人用,需要用同样的许可公开你修改后的源码。
  • 「灵媒 / Mediarium」的名字、logo 和寒鸦形象不在这个许可里,见 BRAND.md。

致谢

共创者:Hana、Claude、ChatGPT(小鸮)。

产品设计:Hana。代码由 Hana 和 Claude 一起完成;信息整合技能及相关文档由 Hana 和 ChatGPT(小鸮)共创。

建立在这些项目之上:Miniflux、RSSHub、Lucide,以及 Fontsource 上的各款开源字体。