newsnook
# NewsNook(有所闻)
本地优先的 Android 新闻阅读客户端:无账号、无后端、无推荐算法。订阅源由你配置,列表与正文由客户端直连上游获取,并在应用内阅读。
软件定位是工具,不是内容平台。不生产新闻,不做观点输出,不试图留住你的注意力。以 Apache License 2.0 开源。
界面预览
![]() 首页信息流 |
![]() 对照翻译 |
![]() 切换场景 |
![]() 分类与信源 |
![]() 外观 |
![]() 夜读信息流 |
更多界面截图见 docs/screenshots。
特性
- 本地优先:偏好、稍后读、阅读记录、场景预设与正文缓存只存在本机,不上传到任何服务器
- 无推荐、无广告:只展示你启用的源与类别,不做热度或算法强推
- 内置源 + 场景预设:网易、知乎日报、BBC、财联社、晚点、煎蛋、Google News 聚合及科技/国际/AI 媒体等;支持分类组织与一键切换场景
- 自建订阅 + OPML:可添加标准 RSS / Atom / JSON Feed,并导入导出 OPML;不做网页爬虫规则编辑器
- 站内全文与媒体:应用内渲染正文;通用媒体嗅探从静态内容及 Android 原页运行时发现 Progressive / HLS / DASH,交给自定义播放器;支持跟贴、图片放大 / 保存 / 分享
- 翻译:云端(Google / Azure / DeepL / DeepLX / OpenAI 兼容)两变体均可用;可翻译正文与列表外文标题;Android ML Kit 与 Bergamot 离线仅完整版(
local包) - 墨水屏模式:关闭动画与装饰,文章改为左右点击分页阅读,音量键亦可翻页;配色仍跟随昼读/夜读主题
- 网络与代理:App 内支持智能分流、全局代理与直连;国际源可经用户自备代理访问
- 应用内更新:检测 GitHub Release;轻量版与完整版可覆盖安装切换
- 双构建变体:轻量版(cloud,~2 MB,无本地翻译引擎)与完整版(local,含 ML Kit / Bergamot)
安装
发布文件见 Releases。两个变体包名与签名相同,同一设备安装其中一个即可。安装时可能需允许「安装未知应用」。当前仅提供 Android。
| 变体 | 大约体积(以 Releases 实际 APK 为准) | 说明 |
|---|---|---|
| 轻量版(cloud) | 约 2 MB | 不含 ML Kit / Bergamot;可使用云端 / AI 翻译 |
| 完整版(local) | 约 60 MB | 含 ML Kit 与 Bergamot;语言模型仍按需下载;Bergamot 当前仅支持 arm64-v8a |
只需云端 / AI 翻译时安装轻量版即可。需要本地翻译引擎时安装完整版。
快速开始
技术栈:React 19 + Vite + TypeScript + Capacitor 8(Android)。
git clone https://github.com/t59688/newsnook.git
cd newsnook
npm install
npm run dev # Web 开发
npm run android:run # 轻量 Android(需 Android SDK)
# npm run android:run:local # 完整版(含 Bergamot 时需先 npm run bergamot:init)
环境要求、签名、CI 发版与调试说明见 docs/android-build.md。贡献流程见 CONTRIBUTING.md。
理念
多数新闻 App 以停留时长与点击为目标,用推荐把人留在信息流里。NewsNook 不做这件事。
- 没有推荐:不会根据阅读历史「猜你喜欢」,也不会按热度或算法排序强推内容
- 没有账号与云同步:偏好、稍后读、阅读记录只存在本机
- 没有广告与信息流运营:界面只展示你启用的源与类别
- 你配置什么,就看什么:源、类别、场景预设都是显式配置,而不是黑箱投喂
如果你需要的是打开就有内容刷的平台体验,本项目可能不合适。如果你希望软件只负责把选定来源的文章读顺,合上就结束,那就是本项目的目标。
项目参考已长期停更的「卡片新闻」:简洁、专注阅读。旧版在新 Android 上难以稳定运行,因此重新实现,并补上多信源、站内全文、翻译、跟贴、代理、墨水屏分页与离线阅读等能力。
与 FreshRSS 等自建聚合器的定位差异见 docs/vs-freshrss.md。
功能详解
源与类别
应用内置一批可用源,例如:网易各频道、知乎日报、BBC、德国之声、财联社、晚点、煎蛋、东财快讯,以及少数派、36 氪、爱范儿、IT 之家等科技媒体,部分 AI 公司官网动态、Google News 主题聚合,以及个人博客 RSS。源可以单独开启或关闭。列表由客户端直接拉取 RSS / Atom / 公开接口或站点定制协议,无自建业务后端。
也可在「我的 → 自定义订阅与 OPML」中添加任意标准 RSS / Atom / JSON Feed,或通过 OPML 从其它阅读器批量导入、导出。自建源走通用解析与 Readability 抽取,体验通常不如针对反爬、UA、分页做过定制的内置源;遇付费墙或强反爬时可能只剩摘要,并引导在浏览器打开原文核对。应用不做 XPath / CSS 爬虫规则编辑器。
源较多时用类别组织(如商业、政务、科技、国际等)。每个类别下挂若干源,主界面按类别横向切换;刷新按当前分类按需拉取,并限制并发,避免一次导入大量 OPML 后打满手机网络。类别顺序、是否显示、每个类别包含哪些源,均可在设置中调整;也可以进入某一个源单独浏览。
场景预设
当前整套配置——分类顺序、显示开关、各类别下的源——可以保存为场景预设快照,之后一键切换。
内置预设包括:全景门户、极客与 AI、深度智识、商业创投、全球视野、慢读知性、摸鱼消遣。也可以在任一预设基础上修改,另存为自己的版本。
站内阅读
点击条目后,在应用内渲染适合手机阅读的正文,包含标题、来源、时间、图片、表格等常见结构。若对排版或内容有疑虑,可随时跳转原网站核对。
跟贴(部分源):网易、知乎、煎蛋、东财、Hacker News 等可在阅读器内查看评论;亦可从屏幕右侧边缘向左滑拉出。
图片支持放大、缩放;长按可保存与分享。视频稿及正文内嵌视频统一使用自定义播放器:支持双击播放/暂停、长按临时倍速、进度与倍速控制、捏合缩放、平移和还原;全屏下半屏可横滑调进度,左下竖滑调亮度,右下竖滑调音量。Android 横向视频进入全屏时使用系统级横屏,播放器控件和系统导航区域一起换边;退出后恢复原方向。
资源发现会保留来源页会话、必要请求头和原始签名 URL;地址过期时可重新探测。DRM、会员、地区与账号权限仍由原站授权,应用不绕过媒体保护。实现与边界见 docs/xiutan.md。
翻译
支持将外文内容译为中文,有两种显示方式:
- 全文替代:界面只显示译文
- 对比翻译:保留原文,译文跟在对应段落下
信息流中的外文标题也可在「我的 → 翻译」中开启自动翻译(仅列表标题,可单独清空缓存)。
翻译能力分三路,可按需选用:
- Android 本地翻译(ML Kit):仅
local包;语言包下载到设备,离线可用;需能访问 Google 下载语言包 - Bergamot 离线翻译:仅
local包;Mozilla/Marian 专用翻译模型,按语对下载(首版 en↔zh),适合无 GMS 场景;当前仅在arm64-v8a设备上可用 - 云端翻译:轻量版与完整版均支持 Google、Azure、DeepL、自建 DeepLX,以及 OpenAI 兼容的 AI 翻译(自备 Base URL / API Key / Model)。API Key 由用户自行填写并保存在本机;请求直连用户配置的服务地址。应用作者不中转这些请求,也无法查看你翻译了什么
完整版(local)构建前若要启用 Bergamot 原生引擎,需先执行 npm run bergamot:init 拉取 bergamot-translator。该脚本会自动应用当前所需的 Android 兼容补丁。
稍后读与缓存
在阅读器顶栏点「收藏」可加入「稍后读」;加入后会预加载正文,便于无网时阅读。最近阅读过的条目有历史记录。完整打开过的正文会缓存在本机,断网后仍可回看;可在「我的 → 离线存储」中按正文/列表分别清理,或一键清除全部可管理缓存。
阅读字体与外观
阅读字体(我的 → 阅读字体):字号、正文字体、行高、段距、首行缩进。
外观(我的 → 外观):浅色 / 深色 / 跟随系统。
墨水屏模式(我的 → 外观):面向墨水屏设备或偏好分页阅读的用户。开启后关闭动画与装饰,文章改为左/中/右点击翻页(中间打开阅读菜单),Android 上音量键亦可翻页;颜色仍跟随上方主题。关闭后立即恢复上下滚动阅读。操作细节见 docs/user-guide.md。
网络与代理
入口:我的 → 网络与代理。支持智能分流(国际源走代理、国内直连)、全局代理与直连关闭。填写代理地址后可测试连接。应用内 HTTP/SOCKS 隧道以 Android 应用为准;生产静态网页不支持同等隧道能力。
关于与更新
入口:我的 → 关于有所闻。可查看版本与更新说明;有新版本时会提示安装。轻量版与完整版包名与签名相同,可在关于页下载当前版本号对应的另一变体 APK 并覆盖安装。
架构
公开新闻源 → 客户端请求 → 列表解析 / 正文提取 → 分类 · 缓存 · 翻译 → 本地阅读
无自建内容服务器,部署简单,但也受上游接口、页面结构与反爬策略影响;源站改版后解析可能需同步更新。
更细的分层与模块说明见 docs/architecture.md。菜单路径与操作步骤见 docs/user-guide.md。
贡献
欢迎通过 Issue 反馈:源失效、正文提取错误、翻译问题、崩溃、新源建议、交互建议。
请尽量附上:Android 版本、应用版本、设备型号、信源名称、文章链接、截图或日志、复现步骤。
开发与 PR 约定见 CONTRIBUTING.md。安全问题见 SECURITY.md。
许可与声明
- 软件以 Apache License 2.0 授权;版权归属与署名见
NOTICE - NewsNook 是阅读器,不主张第三方新闻正文的版权;商标与媒体名称归各自权利人
- 偏好、缓存与用户自填的 API Key 仅保存在本机;维护者不收集、不托管
- 软件按「现状」提供;上游可用性、解析完整性与翻译质量均不保证
完整权利声明与免责声明见 docs/legal.md。
致谢
感谢公开内容、开放接口与开源工具的提供者,尤其是 React、Vite、Capacitor、Mozilla Readability、Bergamot Translator、Tailwind CSS 等项目。
感谢 Linux.do 社区提供的平台与交流环境,讨论与分享对本项目帮助很大。






