首页
/ Folo 开源 AI RSS 阅读器全解析:产品特性、多端生态与仓库架构

Folo 开源 AI RSS 阅读器全解析:产品特性、多端生态与仓库架构

2026-09-08 21:24:26作者:瞿蔚英Wynne

Folo 是一个以“把所有内容聚合进同一条时间线”为核心设计理念的开源 AI RSS 阅读器,配套桌面端、移动端与浏览器 Web 端,并支持列表(List)共享、收藏集与创作者经济等社区化玩法。本文以仓库根目录 README.md 为骨架,结合源码目录与工程配置,系统梳理 Folo 的产品定位、安装方式、核心功能模块、代码签名策略与许可证边界,供开发者快速评估项目并理解其技术全貌。

Folo 是什么:一款“去噪”的聚合阅读器

仓库根目录 package.json 对项目的描述是 “Follow everything in one place”,README 则用一句话点出了产品哲学:“As they say, your thoughts are what you read——we’ve been consuming noisy feeds for too long!”(你的想法取决于你读了什么,而我们已经忍受嘈杂的订阅源太久了)。

Folo 的核心价值在于把分散在各类网站、RSS 源、视频与音频平台上的内容统一收进一条信息流,并通过以下手段实现“无噪音”(noise-free):

  • 将订阅内容组织为单一时间线(one timeline),只更新你真正关心的事物;
  • 支持分享列表(Share lists)收藏集(Explore collections),形成公开的信息发现机制;
  • 提供无干扰浏览(distraction-free browsing) 体验。

值得注意的是,README 明确提示 Folo 目前处于活跃开发阶段(under active development),遇到任何问题都可以在项目的 Issues 中反馈。这也是评估该项目状态时的重要前提:功能和 API 仍在快速演进。

从仓库结构看,Folo 并非单端应用,而是一个由 pnpm workspaces + Turbo 管理的 monorepo(见 AGENTS.md),apps/ 下并存着多套客户端与服务端应用:

应用目录 形态 依据
apps/desktop Electron 桌面应用(渲染层同时是主 Web 应用) apps/desktop/AGENTS.md
apps/mobile 基于 Expo 的 React Native 移动应用 apps/mobile/README.md
apps/ssr 面向外部分享的最小 SSR 站点 AGENTS.md
apps/landing 产品落地页(Next.js,含 discover-sources.json 等资源) 目录结构与 next.config.mjs
apps/cli 面向终端与 AI Agent 的命令行客户端 apps/cli/skill.md
apps/ota 多端版本与更新相关的服务接口 apps/ota/src/routes 目录结构

其中桌面端的渲染进程是一个 Vite + React 的 SPA(apps/desktop/AGENTS.md),既可以跑在 Electron 壳内,也可以独立作为 Web 应用运行——这正是“一套 UI、多端分发”的基础。

获取与安装:多端分发渠道一览

README 给出了覆盖主流平台的官方获取渠道,整理如下:

操作系统/平台 获取渠道
任意平台(Web) 官方 Web 端(浏览器直接使用,无需安装)
iOS App Store(应用名 Folo - Follow everything)
Android Google Play 等应用商店分发
macOS Mac App Store + GitHub Releases 安装包
Windows Microsoft Store + GitHub Releases 安装包
Linux GitHub Releases 安装包

除此之外,社区还维护了多种包管理器安装方式(README 中分别注明了维护者):

  • Arch Linux:AUR 软件包 folo-appimage
  • Nix:nixpkgs 中的 follow 包;
  • macOS:Homebrew Cask folo(命令形如 brew install --cask folo);
  • Windows:Scoop 清单 folo

开发者视角:从源码构建运行

如果你想在本地启动任一客户端进行开发,可参考仓库根目录 AGENTS.md 中记录的标准流程(前提:已启用 Corepack,Node.js/pnpm 环境就绪):

# 1) 安装全部依赖(workspaces 会按依赖关系构建 packages)
pnpm install

# 2a) 桌面端 —— 推荐:浏览器渲染模式(更快,无需 Electron 壳)
cd apps/desktop && pnpm run dev:web

# 2b) 桌面端 —— 完整 Electron 模式
cd apps/desktop && pnpm run dev:electron

# 2c) 移动端 —— Expo 开发服务器 / 指定平台
cd apps/mobile && pnpm run dev      # 或 pnpm run ios / pnpm run android

# 2d) SSR 站点
cd apps/ssr && pnpm run dev

构建面向 Web 的分发包则可在根目录执行 pnpm run build:web。仓库的质量门禁也定义在 AGENTS.md 中:提交前需依次通过 pnpm run typecheckpnpm run lint:fixpnpm run test

此外,若你是 AI Agent 或希望用脚本化方式操作 Folo(管理订阅、读时间线、标注已读、导入导出 OPML 等),仓库在 apps/cli/skill.md 中给出了完整的命令行工作流(例如通过 npx folocli@latest timeline --limit 10 拉取时间线、以 entry mark-read 标记已读),可作为二次开发与自动化集成的参考。

核心功能特性详解

README 的 Features 章节归纳了四大能力支柱,本仓库的源码模块划分与之高度对应。

1. 个性化信息中枢(Customized Information Hub)

Subscribe to a vast range of feeds and curated lists. Curate your favorites and keep track of what matters most to you.

Folo 支持订阅海量 Feed 与经过策展的列表(List),并可对收藏内容做精细化管理。在桌面渲染层源码 apps/desktop/layer/renderer/src/modules 中,可以看到与该能力直接对应的模块:

  • discover/trending/:内容发现与趋势榜单;
  • rsshub/:对接 RSSHub 生态、扩充订阅源(仓库常量包中亦单独导出 rsshub 相关常量,见 packages/internal/constants/src/index.ts);
  • feed/subscription-column/entry-column/:订阅源管理与时间线列;
  • list/collection 相关的列表/收藏集能力。

移动端同样具备 discover/rsshub/spotlight/subscription/ 等平行模块(见 apps/mobile/src/modules),印证了信息中枢能力是跨端一致的。

2. AI 触手可及(AI At Your Fingertips)

A smarter and more efficient browsing with AI-powered features like translation, summary, and more.

README 将 AI 能力定位为“让浏览更聪明、更高效”,典型能力包括翻译与摘要。源码层给出了直接证据:

  • 桌面端存在完整的 ai-chat/ai-chat-session/ai-task/ai-onboarding/ 模块群(见上文的 modules 目录),并在 ai-chat/components/welcome/EntrySummaryCard.tsx 等组件中实现“文章摘要卡片”类 UI;
  • 移动端在 apps/mobile/src/modules/ai/summary.tsxentry-content/EntryAISummary.tsx 提供摘要渲染,列表模板中还包含 EntryTranslation.tsx(翻译入口)等组件;
  • 在客户端状态层 packages/internal/store/src/modules/action/constant.ts 中,定义了一组以 summarytranslation 为代表的 action 常量与对应的翻译选项,说明“AI 摘要/翻译”是一套被状态管理、任务调度与 UI 共同引用的正式动作体系,而非一次性实验功能。

可以推断,这些动作会进一步对接任务队列与 AI 服务,构成“读原文 → AI 摘要/翻译 → 沉淀到会话”的完整链路;具体模型接入细节随版本演进,建议以 apps/desktop/layer/renderer/src/modules/ai-chatapps/mobile/src/modules/ai 下源码为准。

3. 动态内容支持(Dynamic Content Support)

From articles to videos, images to audio — Folo gets it all covered.

Folo 明确“内容不止是文本”,将文章、视频、图片与音频一并纳入支持范围。仓库证据包括:

  • 桌面端 modules/ 中存在 player/(播放器)与 download/(下载)模块;
  • 移动端同样存在 player/ 模块;
  • 移动端条目列表模板按内容形态拆分渲染,例如 EntryListContentArticle.tsxEntryListContentPicture.tsxEntryListContentVideo.tsxEntryListContentSocial.tsx 以及模板目录下的 EntryVideoItem.tsx 等(见 apps/mobile/src/modules/entry-list)。

这使 Folo 既能处理传统 RSS 文本,也能承载 YouTube 类视频订阅、图片流与播客/音频场景,从而贴近“Follow everything”的产品名与 package.json 中 “Follow everything in one place” 的描述。

4. 不止于应用:社区与开放生态(More Than Just An App)

Folo is a community — introducing a new era of openness and community-driven experience.

这一部分是 Folo 与普通 RSS 阅读器拉开差异的地方。README 强调其“社区驱动”属性,源码中也能找到支撑性模块:

  • 桌面端存在 claim/(认领)、power/wallet/ 等模块,指向面向创作者/订阅经济的权益体系(移动端 apps/mobile/README.md 中亦提到 $POWER 创作者经济集成);
  • list/ 相关的共享列表能力允许用户把精选订阅源整理成列表公开分享,配合收藏集形成“人人为我”的发现网络;
  • integration/command/spotlight/ 等模块提供扩展与快捷操作入口。

从这些目录命名可以推断,Folo 试图把阅读行为、内容策展与创作者激励连接起来,形成闭环生态。不过具体经济模型与激励规则的细节,仍需以实际产品与后续版本文档为准。

贡献指南

README 鼓励开发者加入开源社区共建,并指向根目录 CONTRIBUTING.md(其中包含行为准则与协作流程的进一步说明,仓库另见 CODE_OF_CONDUCT.md)。

若你计划为 Folo 提交代码,请务必先阅读各层级的 AGENTS 指南,它们约定了工程约定:

  • 根目录 AGENTS.md:monorepo 全局规则(TypeScript 严格模式、Jotai/Zustand/TanStack Query 分工、Drizzle + SQLite 数据库、i18next 扁平 key 国际化、质量门禁顺序等);
  • apps/desktop/AGENTS.md:Apple UIKit 色板与 Tailwind 令牌、MingCute 图标(i-mgc- 前缀)、Framer Motion 的 m.* 用法、玻璃拟态深度设计系统等;
  • apps/mobile/AGENTS.md:React Native 侧的颜色令牌与 Expo 开发流程。

组件放置也有明确约定:通用可复用组件放入 packages/internal/components 并从包索引导出,业务相关组件则留在各 App 的 modules/ 下。

代码签名与安全策略

README 明确说明了三端产物的签名与来源验证方式,适用于所有官方发布的二进制:

  • Windows:使用 SignPath.io 提供的免费代码签名,证书来自 SignPath Foundation;
  • macOS / iOS:经 Apple Developer Program 签名并由 Apple 公证(notarized);
  • 全平台发布产物:均通过 GitHub artifact attestations 进行校验,用于保证文件来源与完整性(防篡改/防投毒)。

这一点对安全敏感的企业用户尤为重要:下载安装包后可核对官方的产物签名与 attestation 记录。

许可证与法律边界

Folo 采用 GNU Affero General Public License version 3(AGPL-3.0),这一点同时体现在根目录 LICENSEpackage.json"license": "AGPL-3.0-only" 字段上,并附带了以下特殊例外条款(README 明确声明):

All content in the icons/mgc directory is copyrighted by https://mgc.mingcute.com/ and cannot be redistributed.

icons/mgc 目录内的图标资产版权归 MingCute(mgc.mingcute.com)所有,禁止再分发。这意味着若你在其他项目中复用本仓库代码,AGPL-3.0 的开源义务并不覆盖这批图标素材,须注意将二者区分处理。

小结

从这份 README 出发可以看到,Folo 是一个典型的产品驱动型开源项目:它用“单条时间线 + AI 辅助 + 全内容形态支持 + 社区列表/激励”的组合来重新定义聚合阅读,并在工程上通过 pnpm/Turbo monorepo 把 Electron 桌面端、Expo 移动端、SSR 站点、CLI 与 OTA 服务统一管理。对想评估其技术实现的开发者,建议从 AGENTS.md 入手理解架构约定,再按 apps/desktop/layer/renderer/src/modulespackages/internal 的实际代码逐模块深入;对只想试用产品的用户,则可根据上文渠道选择 Web、移动端或桌面端快速开始。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.76 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
858
1.35 K
docsdocs
暂无描述
Markdown
899
5.82 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
923
1.85 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.83 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
532
596
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.03 K
524
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.37 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
393