夜雨聆风学习资料网

ARTICLE · 1226723

记账 App 都想留住你的账单,这个开源项目让你全部带走

记账 App 都想留住你的账单,这个开源项目让你全部带走
BEE COUNT · OPEN SOURCE
★★★★☆
蜜蜂记账
本地优先 · 开源 · 跨端
J
Juytuo
科技里的来龙去脉
记账这件事有个隐蔽的代价:你越记,越走不了。三年的流水在一个 App 里,导出要会员,换手机要重新配,厂商不做了就一起消失。
#开源
#记账
#数据主权
NO.
390
数据主权
GRADE
3.9
✂
VALID FOR ONE READ
ADMIT ONE 🎫

先说一个数字:一个人用记账 App 超过两年,里面平均会沉淀几千条记录。这些记录的价值不在单条,在连续性 —— 你只有连着看,才知道自己每年哪个月花得最凶、哪类开支在偷偷涨。所以一旦这个连续性断了,前面记的全白记。

问题是,这份连续性的保管权,绝大多数时候不在你手上。

这篇讲一个反着做的项目:蜜蜂记账(BeeCount),GitHub 上 2608 星,2025 年 9 月开源,前几天刚发 3.9.0。它做的事很简单 —— 把「账本存在哪」这个问题,重新交回给使用者。

01
先把「本地优先」这四个字说清楚
/ WHAT

大部分记账 App 的架构是「云端优先」:你在手机上记一笔,它先发到厂商服务器,再同步回你的设备。数据的所有权在服务端,手机只是显示器。

BeeCount 反过来:账本首先是本机的一个 SQLite 数据库(用的是 Flutter 生态里的 Drift)。你打开 App 记一笔,写的是自己手机上那个文件。不配置任何云服务,全部功能都可用。

这个顺序差别听起来很技术,实际后果很具体:

1
厂商停运 → 你的数据还在手机里,导 CSV 就走
2
没网 → 照常记账,不用等转圈
3
换机 → 你决定是走 iCloud、走自己的服务器,还是手动导一份

它的整个产品是 Flutter 写的,一套代码出 iOS / Android / Web 三端。Android 要 6.0 以上(应用商店版 7.0),iOS 要 15.5 以上。

— App 首页:本月收支、结余进度、按日分组的流水,最上面就是当前账本

本地优先不是「不上云」,是「上不上云由你决定」

没有高级功能付费墙,没有广告,没有埋点,也没有把你的账单喂给广告系统。

不是拒绝云,而是把云从必经之路降级成可选项。这两件事在工程上是两套架构,在体验上是两种命运。

02
四种不用打字的记账方式
/ AI

记账 App 的死穴从来不是功能少,是记不下去。它的常规记账页长这样:分类按图标铺开,金额、账户、标签都在一屏里,双击「完成」还能接着记下一笔。

— 记一笔:分类、金额、账户、标签在一屏内填完,双击「完成」可连续记

但再怎么优化,一晚上记五笔也要点二十多次。所以它另外铺了四条不用打字的路:

1
AI 小助手:直接说人话,比如「今天买菜花了 50」,模型负责拆出金额、分类、账户
2
OCR 拍照:传支付宝、微信、云闪付的账单截图,双引擎识别 —— 本地 TFLite 跑一遍,识别不理想再走云端
3
语音记账:按住说话,处理口语化的表达
4
截图自动记:Android 靠无障碍服务监听截图,iOS 靠快捷指令双击背部触发

背后的模型是智谱 GLM-4。这里要说一句实话:这三个功能不是纯本地的。语音和 AI 对话要调云端模型,OCR 的本地引擎认不出来时也要联网。所以「本地优先」在这几个功能上是打了折的 —— 你享受便利,就得出让一部分数据。

这不是黑它。恰恰相反,项目在 3.9.0 的更新里把 AI 的 Key 获取改成了直接跳转官方入口,说明它没打算把这件事藏起来。

03
五条路,数据放哪你说了算
/ SYNC

这部分是它跟同类最不一样的地方 —— 不给你一条路,给你五条,而且五条的代码都是公开的。

1
iCloud:iOS 单平台、零配置,苹果原生那一套,适合只用一台 iPhone 的人
2
BeeCount Cloud:自己用 Docker 起一个,多设备实时协同,自带 Web 端,AES-256 加密备份
3
Supabase:没有 NAS 又想跨平台,用它当后端,免费额度够个人用
4
WebDAV:群晖、绿联云、Nextcloud 这类 NAS 用户,数据完全落在自己硬盘上
5
S3 协议:Cloudflare R2、AWS S3、MinIO 都行,R2 的免费额度对个人账本基本够用

自建那个 BeeCount Cloud 值得单独说:一个 Docker 镜像里同时装了服务端和 Web 管理端,起完就能在浏览器里管账。多用户之间数据隔离,还能共享账本 —— Owner 生成邀请码,拉人进来一起记,每笔流水都留着「谁记的、谁改的」。

对一个记账软件来说,「共享账本」这个功能背后是家庭账、情侣账、合伙生意的真实需求,而这块恰恰是最不适合放在别人服务器上的。

— 自建 BeeCount Cloud 后浏览器里的 Web 端,与手机端同一个账本

04
这次更新最值得说的是一张小票
/ 3.9

3.9.0 发布于 2026 年 10 月 20 日,改动清单里最显眼的一条是:可分享的交易小票。

用法是长按首页的某一条明细,选「生成小票」,出来的是一张图。图里展示什么由你勾 —— 备注、标签、账户、账本都可以自己选要不要露出来。

这个功能有意思的地方不在好玩,在于它把数字变成了凭证。账本里的「-154.97」是一条记录,一张小票是「我确实花了这笔钱」的东西。报销、AA、跟家里人对账、朋友之间借钱,需要的都是后者。

同一版里还有几条不起眼但天天会碰到的:

1
账户口径:信用卡的「当前欠款」和「溢缴款」分开录入,还款方向、正负号在各页面统一了
2
外币导入:改进账户币种的推断和匹配,处理同名多币种的情况
3
附件刷新:修了手动同步之后附件入口不刷新的问题
4
通知角标:修了打开或返回 App 之后角标残留,后续提醒保留

另外有个配套条件:如果你自建了云,服务端要一起升到 1.8.0,才能拿到配套的 Web 账户体验和「票据墙」。只升 App 不升服务端,新功能是缺一块的。

— 暗黑模式:纯黑底 + 主题色描边,OLED 屏上更省电

一个 2600 星的项目,更新节奏比很多商业 App 还密

从 2025 年 9 月建仓到现在,一年多时间迭代到 3.9.0,平均两个月一个大版本。这个节奏靠的不是团队,看 commit 记录基本是一个人。

05
免费的代价,写在许可证里
/ COST

标题里说的「免费」,得把话说完整。

BeeCount 用的是 BSL(Business Source License,商业源代码许可证)。这条许可的分界线是:

1
个人使用、学习研究、给项目贡献代码:完全免费,随便用
2
把它做成商业产品卖给客户、在盈利性组织内部使用、基于它做商业衍生、提供基于它的付费云服务:需要付费授权

所以它不是 OSI 定义下的开源软件,是「源码可见 + 有限免费」。这个区别要讲清楚,不然有人拿去商用会踩坑。商业授权的价格流程写在仓库COMMERCIAL_LICENSE.md 里。

第二个代价是维护者。仓库现在挂着 137 个 open issues,主要开发是一个人。单人项目的好处是方向清楚、不会被 KPI 带跑;坏处是它可能某天就不更新了。

但这里有个巧合值得注意:一个本地优先、代码可见、数据能自己导出的 App,恰恰是「作者不干了」损失最小的那种。你不会因为没人维护而丢掉账本 —— 这就是第 01 节那套架构真正买到的东西。

06
如果你也想试试
/ HOW

三条入口,按你的设备选:

1
iPhone:App Store 搜「蜜蜂记账」,或走 TestFlight;不想上架版本就用 iCloud 同步
2
Android:GitHub Releases 直接下 APK(Android 6.0+),或用 Google Play
3
想自建:找一个 NAS 或 VPS,Docker Compose 起 BeeCount Cloud,浏览器里直接有 Web 端

一个建议:别一上来就折腾同步。先本地用两周,确认自己真的能坚持记,再决定数据放哪。大多数人卡住的地方是「坚持」,不是「同步」。

NOTE

数据在哪:默认就在你手机的 SQLite 文件里,不配云也能用全部功能

AI 是不是本地的:不是。AI 对话和语音走 GLM-4 云端,OCR 有本地引擎但会回退到云端

到底免不免费:个人免费,商用要授权,别把它当 MIT 协议用

和「开源记账」的老印象:这类项目通常界面粗糙,它的完成度反而比不少付费 App 高 —— 8 类桌面小组件、14 种规格、暗黑模式、简繁中英韩多语言都做了

END

相关学习资料