Rinwa 产品概览#
更新时间:2026-07-31
当前应用内名称仍为 Luma;Rinwa / 页间 是已确定的下一阶段品牌。
一句话#
Rinwa 是一款本地优先的个人信息阅读器:把 RSS、网页与公开视频整理成安静的 阅读流,让原文、翻译、摘录、笔记和自己的知识长期留在手中。
它不是“给 RSS 加一个 AI 聊天框”,也不以制造更多未读数字为目标。产品真正要 完成的是三个闭环:
- 重要信息可以被持续组织成自己的阅读流;
- 划下和写下的内容能长期保存、搜索并回到 Obsidian;
- 无论来源是 RSS、JSON Feed、网页还是 Connector,都服从同一套安静、 可解释的阅读方式。
两项明星能力#
Rinwa 不把“AI”作为一个独立入口贴在阅读器旁边。真正需要被做深、也最能形成 产品辨识度的是两项直接改善阅读的能力。
一、本地语义搜索与新闻聚合#
同一个 Embedding 层同时服务于“回头找”和“减少重复”:
- 语义搜索让用户不必记住原词,可以用模糊概念、另一种语言或自然问题找到 曾经读过的段落、文章和知识;
- 新闻聚合用文章表示之间的语义距离,在近期时间窗内识别不同来源对同一事件 的重复报道,将它们折叠为一个可展开的 Story Cluster;
- 相关内容把正在阅读的段落连接到过去的文章、划线、笔记和引用;
- 有依据的问答先从本地找出有限证据,再交给用户选择的 AI Provider。
新闻的语义归类本身由 Embedding 完成,不需要让生成式模型逐篇阅读、分类或生成 主题。时间窗只负责避免跨时期的相似事件被误合并;来源列表、相似度说明和“拆分 聚合”让结果可检查、可纠正。搜索则保留 SQLite FTS,与向量召回通过 RRF 合并, 因为代码、日期、人名和 URL 仍需要精确匹配。
用户感受到的不应该是“我们运行了一个向量模型”,而应该是:重复新闻安静地收拢, 记不清关键词也找得到,任何结果都能回到原文。
二、原文优先的沉浸式翻译#
翻译不是生成一份替代原文的中文副本,而是在原有阅读结构中增加第二条语言层:
- 原文立即出现,译文按段异步到达,不阻塞阅读;
- 段落、标题、列表、引用、链接和强调关系尽量保持对应;
- 中文、代码、日期、纯数字、URL 和纯符号不送去翻译;
- 用户可以翻译整篇,也可以只选择一个句子;
- 原文与译文始终可以对照,失败时保留可读的原文和上一份成功缓存;
- 翻译 Provider、数据发送范围和消耗对用户可见,并可完全关闭。
它借鉴沉浸式翻译的低打扰对照方式,但服从 Rinwa 的阅读排版,而不是把网页变成 两份相互争夺注意力的文本。
共同底座#
两项能力共享同一组约束:默认本地、原文可返回、结果可解释、派生数据可重建、 离线与无 Provider 时仍能阅读。它们是 Rinwa 的明星能力,本地数据所有权和安静 阅读体验则是不能被牺牲的产品底座。
能力一的技术命题:Embedding 是阅读系统的记忆层#
Rinwa 可以用一句有技术辨识度的话解释自己的底层方向:
Embedding Is All You Need — to find your way back through what you read.
Embedding 是阅读系统的记忆层,不是阅读本身。
“Embedding Is All You Need for Reading”适合作为内部技术命题或技术文章标题, 但不适合作为没有解释的产品总口号。用户需要的是更好的阅读、理解和回想,不需要 先理解向量、模型或 RAG。对外仍然先讲“安静地读、把重要的留下”,再把本地 Embedding 作为这种体验能够成立的技术证明。
这句话在 Rinwa 中意味着什么#
文章段落、标题、划线、笔记、引用和用户查询都可以在本地获得一个可重建的语义 表示。它们因此不只靠相同关键词相遇,也能因为“意思接近”重新连接起来:
- 找到:用 FTS 的精确匹配加本地向量召回,跨语言找到读过的内容;
- 关联:把当前段落与过去的文章、划线、笔记和引用连接起来;
- 回到:从搜索结果、相关内容或 AI 引用准确返回原文位置;
- 组织:为 Story Cluster、保存搜索和知识主题提供候选关系;
- 提问:先在本地选择有限、可引用的证据,再交给用户选择的 AI Provider。
这让 Embedding 成为来源、阅读、知识和 AI 之间的共同“意义坐标系”。它不是一个 单独的搜索功能,而是 Rinwa 从“文章收件箱”变成“可返回的个人阅读记忆”的基础层。
它不意味着什么#
- 不以向量替代原文。 原始文章、来源、时间、作者和用户知识才是事实来源; Embedding 只是可以删除并重建的派生缓存。
- 不做 vector-only 搜索。 专有名词、代码、日期、URL 和精确短语仍由 SQLite FTS、过滤器和规则处理;dense 与 sparse 通过 RRF 合并。
- 不让黑盒排序接管阅读流。 时间线、未读状态、订阅边界和用户规则保持明确; 语义信号默认用于找回与解释,不偷偷决定“你应该看什么”。
- 不默认上传阅读库。 本地模型和本地索引是默认路径;远端 Embedding 若未来 提供,必须独立说明会发送哪些内容并获得明确同意。
- 不把每次阅读变成 AI 对话。 用户可以只读、翻译、划线和离线搜索;生成式 AI 始终是可选的下一步。
设计判定#
一个新的智能功能只有同时满足下面条件,才算符合这条命题:
- 能指出使用了哪段原文或哪条用户知识;
- 没有 Embedding 或模型尚未就绪时,基本阅读仍然成立;
- 结果可以解释、返回原位置,并允许用户纠正;
- 派生索引有独立版本,可以后台重建而不清空正文和知识;
- 默认留在本机,不把“更智能”偷换成“上传更多”。
产品原则#
原文先出现#
打开文章时先渲染已经缓存的原文。翻译随后异步落在对应段落之下,不替换原文, 也不阻塞阅读。中文、代码、链接、日期、纯数字和纯符号不会被送去翻译。
本地是主场#
每台设备以 SQLite 保存自己的订阅、文章、媒体缓存、搜索索引和知识数据。普通 阅读不要求注册账户或连接托管数据库;断网时已经保存的内容仍可阅读。
AI 默认不越界#
翻译、摘要和问答可以连接用户选择的提供商,但外部发送需要明确的数据共享同意。 密钥在打包客户端中进入系统安全存储。没有配置 AI 时,阅读、搜索、摘录和本地 确定式回退仍然可用。
阅读结果属于用户#
笔记、标签、划线、引用和用户编辑过的摘要不是可随版本清空的缓存。Obsidian 是 双向知识表面:Rinwa 只管理明确标记的区块,并保留用户在 Vault 中写下的 Markdown。
当前已经具备#
阅读与来源#
- RSS、Atom、JSON Feed;
- OPML 预览、选择、导入、导出和重复合并;
- 礼貌的异步全文抓取、媒体保留、失败重试和来源健康状态;
- RSS Connector 与公开 YouTube 频道 Connector;
- Today、未读、收藏、单订阅视图和保存搜索;
- 每个订阅可选择是否进入聚合首页;
⌘K命令面板与常用列表操作;- 图片放大、原文链接与 URL 复制。
双语与 AI 阅读#
- 原文优先的结构化逐段翻译;
- 自动跳过中文、代码、日期、数字、链接与符号行;
- 翻译、摘要和正文使用独立缓存版本,普通应用升级不会让它们整体失效;
- 可编辑、可删除的摘要;
- 带引用的文章问答和流式回答;
- 可选的 OpenAI-compatible、DeepL 与自建代理接入;
- 本地多语言向量模型、FTS 与 RRF 混合检索,可在不可用时自动回退全文搜索;
- 模型下载、索引进度、暂停和重建状态。
知识与自动化#
- 笔记、标签、划线、译文、引用和文章收藏;
- 标签聚合与知识面板;
- Obsidian 受控区块写入和双向回读;
- 阅读文章、订阅、搜索、统计和知识的本地 MCP;
- 受令牌保护的 MCP 写入:添加订阅、标记状态、保存笔记、添加划线和导出 Obsidian;
- Connector SDK 的类型契约、权限描述、网络白名单和速率限制基础。
数据、同步与退出保证#
- 每台设备独立 SQLite;
- 基于 operation log 与字段时钟的可选多端同步,不复制整个数据库文件;
- Miniflux Provider 基础;
- 阅读统计、翻译与 AI token 使用统计;
- 订阅明文备份;
- 全量 AES-256-GCM 加密备份;
- 合并/替换恢复、定时桌面备份和保留份数;
- 应用升级与内容缓存版本分离;
- 抓取或派生内容更新失败时保留上一份成功结果。
多端#
同一套 React 界面通过 Tauri 2 进入 macOS、Windows、iOS/iPadOS 和 Android, 不为四个平台分别维护四套 UI。桌面端已经具备窗口、目录选择、外部链接、原生网页 窗口、SQLite 桥和安全存储基础。
开源与商业边界#
Rinwa 由 kappain 以公司产品的方式持续开发,客户端以开源方式发布。基础阅读、 本地 SQLite、导入导出与自托管边界不以托管服务作为前提。
计划中的主要商业服务是可选的托管 Rinwa Sync:用户为持续运行的同步基础设施、 账号、监控、备份与运维便利付费,而不是为取回自己的本地内容库付费。单设备用户 不需要购买同步;希望自己维护服务器的用户仍可沿既有协议自托管。
产品网站必须把“开源客户端”“可选托管同步”“当前仍在开发预览”三件事同时说清楚, 不能把尚未上线的订阅方案写成已可购买的服务。
仍需诚实标注#
- macOS 是当前主要品质目标,但尚未提供签名、 notarized 的正式安装包;
- Android 有开发预览包,仍需真实设备上的本地 SQLite、Keystore 与后台刷新验证;
- iOS/iPadOS 与 Windows 需要对应平台的构建、签名和设备验收;
- 移动端本地 SQLite Repository 已实现阅读路径基础,但 React 主流程仍在逐步从 开发 API 切换;
- iOS
BGTaskScheduler与 AndroidWorkManager尚未接入; - Connector 运行时目前以受控内置来源为主,第三方沙箱与完整插件目录仍在演进;
- MCP 当前面向桌面和本地开发环境,不在移动端直接运行。
官网、商店文案和发布说明必须区分“已经可用”“开发预览”和“计划中”,不能用平台 矩阵制造虚假的完成感。
产品结构#
来源
RSS / Atom / JSON Feed / 网页 / YouTube / Connector
↓
本地内容层
原始 payload / 全文提取 / 媒体 / 缓存版本 / 健康状态
↓
阅读表面
原文 / 逐段翻译 / 图片与视频 / 阅读偏好 / 手势与键盘
↓
个人知识
收藏 / 划线 / 笔记 / 标签 / 引用 / Obsidian
↓
可选能力
本地混合搜索 / AI 问答 / MCP / Luma Sync / Provider
官网应该传达什么#
官网首屏不再用“巨大的光球”解释阅读。它应让用户第一眼看到一张真正安静的阅读 页面,并在首屏回答四件事:
- 这是什么:本地优先的个人信息阅读器;
- 为什么不同:原文优先、跨语言、知识可带走;
- 数据在哪里:默认留在自己的设备;
- 现在能不能用:Android 开发预览可下载,其余平台如实标注状态。
首屏之后应优先展示两项明星能力,而不是立即铺开功能矩阵:
- 语义整理:用真实的多来源新闻折叠和自然语言搜索,展示“同一件事,只读 一次;记不住原词,也找得到”;
- 沉浸翻译:用真实文章展示原文立即出现、译文逐段跟随和选句翻译,表达 “原文不退场,译文自然出现”。
再往后才展开 Obsidian、本地数据、同步、多端、AI Provider 与来源支持。功能不应 被堆成企业软件仪表盘,而应围绕“读进来、读明白、留下来、带得走”组织。
“Embedding Is All You Need”可以出现在技术页、开发日志或架构说明中,用来解释 搜索、关联、知识和 AI 为什么共用一层本地语义基础;它不应取代首页面向普通用户 的主标题。
品牌表达#
- 中文名:页间
- 英文名:Rinwa
- 英文含义:来自 read inward
- 中文标语:把重要的,读进自己。
- 英文标语:Read quietly. Keep what matters.
- 英文说明:A quiet, local-first reader for the open web.
- 技术命题:Embedding Is All You Need — to find your way back through what you read.
- 技术短句:Embeddings are the memory layer for reading.
- 语义聚合:同一件事,只读一次。 / One story, not ten.
- 语义搜索:记不住原词,也找得到。 / Search by meaning.
- 沉浸翻译:原文不退场,译文自然出现。 / The original stays. Translation follows.
图标中的两片纸页代表原文与译文,中间的负空间代表阅读路径。墨绿、暖纸白和克制 的陶土色是主要品牌颜色;图标不需要额外加入 RSS 波纹,RSS 能力由产品说明和来源 界面清楚表达。
适合公开发布的定位#
Rinwa 的竞争位置不是“功能最多的 RSS 服务”或“带聊天框的 RSS”,而是:
安静、原生的阅读体验 + 本地语义整理 + 沉浸式双语阅读 + 数据所有权。
它适合重视独立博客、技术文章、跨语言阅读、长期笔记和数据可迁移性的用户。收费 价值可以来自同步、托管便利和持续服务,但本地阅读、导出和用户数据所有权不应被 人为锁住。