大概也许以后都不用手动记账了

Gavin,随笔技术
EN

手机里的订单自己落进账本,头像里的妹妹和猫在旁边看着

记账这件事,我烦了很久。每花一笔钱都要打开应用、选分类、输金额、补备注,月底还想不起来花哪了。

所以一月的时候,我 vibe coding 了一个移动端记账本 X,又拼了一条 iOS 快捷指令「记账」。记账这种小项目,很适合当 AI 编程的入门:需求自己清楚,范围小,做完自己就能验证好不好用。快捷指令干的事,说人话就是:我截一张支付订单的图,它把图传给大模型,大模型读出金额、商家、日期、分类,填进 X,我点个确认就记上了。当时我想的是,大概也许以后都不用手动记账了。

现在回头看,这句话说早了。

记账本先出来,界面先折腾

X 是个我自己用的移动端记账本,打开就是「支出记账」。首页有快速记账和十二个分类,明细按日期分组,统计看今日、本周和本月。之后又陆续补了搜索、按备注分组和大额消费标识,一点一点磨。

界面在头一个星期里换了好几轮:玻璃拟态、深色、新粗野主义,每种都推倒重来一遍。到后来,它慢慢长成了动物森友会风格:记账、小结、仓库三个页签,纸色底、棕色字,打开首页会跟你说「下午好,钱包还好吗」,报错文案是「哎呀,出错了」。

账记没记明白另说,这个界面我挺喜欢。

第一次用快捷指令

记账烦,烦到有一天我想:能不能截个图就完事。

那是我第一次认真用 iOS 快捷指令。拼了一条链:

截屏 → 大模型看图 → X 弹出确认 → 提交。

链子是用手机点点点拼出来的,没有版本管理,没有日志,哪一步断了只能顺着卡片肉眼找。

左边是拼出来的链,右边是它吃进去的一张截图:

快捷指令「记账」的编辑页输入:一张瑞幸订单截图

为什么绕一圈用大模型,而不是传统 OCR?因为 OCR 只是把图里的字抠出来,给你一堆没有结构的文本。瑞幸那张单,OCR 吐出来的是「标准美式」「¥26」「¥9.9」「优惠 ¥16.1」「卓越城店」……哪个是实付?还得人再猜一遍。大模型是整张图一起看:知道「实付」「券后价」是哪个数,商户、时间、分类顺手就填好了。不同 app 的排版千奇百怪,OCR 每种排版要写一套规则,大模型不用——它就是看图说话。代价是它会一本正经地编,所以才有确认那一步。

提示词里第一件事是定金额识别优先级。截图里的数字不止一个:瑞幸这张单,原价算上优惠是 26 块,券后实付 9.9,认错一个账就错了。所以先找「实付」「券后价」这种标签金额,找不到再看合计,最后才看单件价格。分类也是猜的:瑞幸是饮料,电费是住房。

识别结果不直接入库,X 先弹确认框:

先弹确认,点好才提交成功:

识别结果回到 X,先弹确认:金额、商家、日期、分类点完「好」,顶部弹「记账 提交成功」

「金额 9.9 / 商家或商品:瑞幸咖啡 / 日期 2026-01-21 13:27:00 / 分类:饮料。确认提交吗?」点好,才写进账本。这一步是给人留的:大模型认错是常态,确认时还能改,就不会把错账写进去。

那阵子我真觉得,记账这事有救了。

还有一条路:导出账单批量插

除了截图,还有一条路:微信、支付宝都能导出账单,批量插进 X。

这条路没怎么琢磨。两份账单格式不一样,我也没自己写解析,直接把两份丢给 Codex 让它分:字段、分类、批量插入,它自己搞定。

然后没有然后

最后其实也没分析出财务情况。

快捷指令也很麻烦。它确实省了输金额,但每次都要:截屏、跑捷径、等识别转圈、核对弹窗、点确认。这套动作比手动记还多,识别错了还得改。新鲜劲过了,我不太想为了一杯 9 块 9 的瑞幸走这套流程。麻烦到这种程度,火不起来也正常。

后来 X 慢慢长出了别的功能。买回来的东西能记进「仓库」:在役还是报废、用了多少天、一共花了多少钱。记账本变成了记东西的地方,动森风格倒是越来越顺眼。钱嘛,还是没分析明白。

X 的源码在 GitHub:x (opens in a new tab) · x-server (opens in a new tab)

开头那句「大概也许以后都不用手动记账了」,最后倒是说准了:我确实没怎么再手动记账。

头像里的妹妹把记账本合上,抱着猫伸了个懒腰