像记笔记一样简单的无痛记账软件

程序员费曼大约 11 分钟Obsidian插件开发TypeScript

Obsidian 记账管理插件

把记账融入日记,让消费记录自然成为生活的一部分。

基于 Obsidian 日记文件的智能记账管理插件,能够自动识别和统计您在日记中的记账记录。无需打开专门的记账 App,在写日记的同时顺便记账,零负担养成记账习惯。

image-20260318142927017
image-20260318142927017

为什么选择这个插件?

传统的记账软件需要打开 App、选择分类、输入金额、添加备注……步骤繁琐,很难坚持。

本插件的核心理念:记账应该像写笔记一样简单

  • 写日记时顺便记账,无需切换应用
  • 数据存储在自己的笔记中,完全掌控
  • 支持 Markdown,和 Obsidian 完美融合
  • 自动统计分析,可视化消费趋势

功能特点

功能说明
🔍 自动识别从日记文件中自动解析记账信息
📊 统计分析提供收支统计、分类统计和时间范围查询
🏷️ 分类管理支持自定义关键词和分类映射
📅 时间筛选可按日期范围查看记账记录
💰 收支管理区分收入和支出,计算结余
📋 快速记账一键复制历史记录到今天
🧾 截图账单导入截图 OCR 自动解析并记账
📄 导出功能支持导出 PDF 和 Markdown
🔄 批量重分类按备注关键词批量修正记账分类,支持自动执行

安装方法

方式一:从 GitHub Release 安装(推荐)

  1. 前往 Releases 页面下载最新版本
  2. 下载以下文件:main.jsmanifest.jsonstyles.cssconfig.json
  3. 在你的 Obsidian 库中创建插件目录:.obsidian/plugins/obsidian-accounting/
  4. 将下载的文件复制到该目录
  5. 重启 Obsidian 或刷新插件列表
  6. 在设置中启用"记账管理"插件

方式二:手动安装

cd /path/to/your/vault/.obsidian/plugins
git clone https://github.com/你的用户名/obsidian-accounting.git
cd obsidian-accounting
npm install && npm run build

快速开始

第一步:配置日记文件夹

打开设置 → 第三方插件记账管理插件

在「日记文件夹路径」中填写日记文件夹路径(如 journals日记),默认为 journals

image-20260318143023006
image-20260318143023006

第二步:在日记中记账

在日记文件(如 2024-01-10.md)中写入:

# 2024年1月10日

早上买早餐
#cy 15.5 豆浆油条

中午吃饭
#cy 45 麻辣烫

打车回家
#jt 28 滴滴打车

收到工资
#sr 8500 1月份工资

第三步:查看统计

点击左侧工具栏的计算器图标打开记账视图,查看收支统计。

记账格式

基本格式

#关键词 金额 备注说明

格式规则

  • ✅ 数字可以在前也可以在后
  • ✅ 备注和数字之间可以有空格,也可以没有
  • ✅ 支持货币符号(¥、元、块),会自动忽略
  • ✅ 如果一行有多个数字,第一个数字会被识别为金额

格式示例

# 标准格式
- #cy 15.5 豆浆油条

# 数字在后
- #cy 午餐麻辣烫 25.8

# 带货币符号
- #cy 早餐消费¥9

# 带单位
- #cy 全家早餐11元

默认关键词

关键词分类说明
cy餐饮日常饮食
gw购物网购、实体店
dk贷款房贷、车贷
jf生活缴费水电气网
qt其他未分类支出
sr收入 ⭐特殊关键词,标识收入

快速记账

快速记账功能帮你一键复制历史记账记录到今天,省去重复输入的麻烦。

适用场景:每天有固定的消费项目(早餐、通勤、午餐等),不想重复输入。

入口

入口说明
侧边栏图标点击 📋 图标
命令面板Cmd/Ctrl + P → "快速记账"

使用方法

  1. 点击侧边栏的 📋 图标
  2. 弹窗显示最近 14 天的记账记录(自动去重)
  3. 搜索或筛选快速定位
  4. 点击「复制」直接写入今天,或点击「编辑」修改金额后写入
  5. 自动跳转到今天的日记笔记
快速记账弹窗
快速记账弹窗

配置

  • 启用快速记账:开启/关闭功能(默认开启)
  • 快速记账天数:显示最近 N 天的记录(默认 14 天)

手机端:用「快捷指令」一键打开快速记账

Obsidian 官方 URI 不能直接执行插件命令,需要安装社区插件 Obsidian Advanced URIopen in new window。装好后,用系统「快捷指令」打开一条链接,即可在 iPhone / iPad 上唤起 Obsidian 并执行与命令面板相同的操作(例如直接弹出「快速记账」窗口)。

1. 准备信息

  • 库名:与 Obsidian 里显示的库名称完全一致(设置 → 关于 → 库名称,或切换库时看到的名字)。
  • 命令 ID(内部 id,勿与界面中文名混淆):
    • 快速记账弹窗:obsidian-accounting:quick-copy
    • 打开每日记账主视图:obsidian-accounting:open-accounting
      若你安装的插件在 manifest.json 里改过 id,请把前缀 obsidian-accounting 换成自己的插件 id。
  • 设置里须开启「快速记账」,否则 quick-copy 命令不会被注册,链接无效。

2. 拼出链接

模板(直接用原始 URL,无需编码):

obsidian://advanced-uri?vault=漂泊者及其影子&commandid=obsidian-accounting:quick-copy

3. 在快捷指令里配置

  1. 打开 快捷指令 → 新建快捷指令。
  2. 添加 「URL」(填入上一步完整链接)→ 再添加 「打开 URL」(若一步合并为「打开 URL」亦可)。
  3. 命名并保存(如「Obsidian 快速记账」)。

4. 更快触达:背面轻点、主屏幕与引导式访问

  • 背面轻点两下(或三下)设置 → 辅助功能 → 触控 → 背面轻点,动作选 「快捷指令」 并指定上面这条。单手、走路时敲两下背板即可打开 Obsidian 并弹出快速记账,不必先找图标。
  • 主屏幕:快捷指令右上角 分享 → 添加到主屏幕,得到独立图标,一点即执行(适合把「记账」当成日常入口)。
  • 引导式访问:开启后设备会锁在单个 App 内,无法随意切到「快捷指令」App。实用做法是:通过背面轻点、控制中心里的快捷指令、或主屏幕图标运行本条快捷指令(Obsidian 会前台打开并弹出快速记账),在 Obsidian 内开启引导式访问,这样锁住的始终是记账界面;若已在引导式访问中,需先结束引导式访问才能再次从系统侧触发快捷指令。

截图账单导入

场景:支付完成后,打开系统「快捷指令」截图识别,文字自动写入 journals/bill.md,再执行一条命令即可完成记账——全程无需手动输入金额。

工作原理

微信/支付宝支付截图
    ↓  快捷指令(OCR 识别文字)
journals/bill.md
    ↓  执行命令「从账单导入记账」
自动解析 → 弹出确认框 → 写入今日日记 → 删除 bill.md

使用步骤

1. 配置快捷指令

在 iPhone 的「快捷指令」中创建一条自动化:截取支付成功界面截图 → OCR 识别文字 → 将文字写入 Obsidian 库的 journals/bill.md

2. 配置商户自动分类

打开 Obsidian 设置 → 记账管理插件 → 账单导入 - 商户自动分类,按以下格式填写映射规则:

商户关键字=分类关键词=描述

示例:

豆磨坊=cy=买豆腐
麦当劳=cy=麦当劳
盒马=gw=买菜
公司食堂=cy
  • 商户关键字:OCR 识别到的商户名中包含的文字即可命中(无需完整匹配)
  • 分类关键词:与已配置分类一致,如 cygw
  • 描述:可省略,省略时描述框留空手动填写

💡 小技巧:先不填映射,执行一次导入,在弹框「商户」行看到 OCR 实际输出的文字,再以该文字作为商户关键字配置,避免因 OCR 识别差异导致匹配失败。

3. 执行导入命令

Cmd/Ctrl + P「从账单导入记账」

弹出确认框:

image-20260330113602744
image-20260330113602744

确认框显示:

  • 收据卡片:截图类型(微信支付完成页 / 微信支付账单页 / 支付宝完成页 / 建设银行动账提醒)、商户名、金额、时间
  • 可编辑字段:分类(自动匹配,可修改)、金额(可修改)、描述(自动填入或手动填写)

点击「记账」后:

  • 记录写入今日 journals/YYYY-MM-DD.md
  • bill.md 自动删除

手机端一键触发

同样使用 Advanced URI,命令 ID 为 obsidian-accounting:bill-import

obsidian://advanced-uri?vault=漂泊者及其影子&commandid=obsidian-accounting:bill-import

将这条链接加入快捷指令流程的末尾,截图识别完成后自动跳转 Obsidian 并弹出确认框,全程只需点一次「记账」。

支持的支付截图

类型识别特征
💚 微信支付完成页含「支付成功」或「返回商家」
💚 微信支付账单页含「我的账单」+「支付服务」
� 支付宝完成页含「完成」+「付款方式」
� 建设银行动账提醒含「动账提醒」或「变动提醒」

常见问题

Q: 弹框里商户名显示的字和实际店名不一样?

OCR 识别结果受截图质量影响,可能存在误识别。以弹框中显示的文字为准配置商户关键字。

Q: 分类没有自动匹配到?

检查商户关键字是否与弹框「商户」行显示的文字一致(包括 OCR 可能识别错的字)。


导出功能

导出 PDF

在记账视图中点击「导出 PDF」按钮:

  1. 选择时间范围(本周/本月/自定义)
  2. 预览导出内容
  3. 点击导出生成 PDF 文件

导出的 PDF 包含:

  • 时间范围统计概览
  • 收支总额和结余
  • 分类统计图表
  • 详细记录列表

导出 Markdown

点击「导出 MD」按钮,生成 Markdown 格式的账单报告,方便在其他地方使用。

命令列表

通过 Cmd/Ctrl + P 打开命令面板可使用:

命令命令 ID说明
打开每日记账open-accounting打开记账视图
刷新记账数据refresh-accounting重新扫描日记文件
新建记账quick-entry打开新建记账弹窗
快速记账quick-copy打开快速记账弹窗
从账单导入记账bill-import解析 bill.mdopen in new window 并弹出确认框
导出账单 PDFexport-pdf导出当前视图数据为 PDF
导出账单 Markdownexport-markdown导出当前视图数据为 MD
批量重分类reclassify打开批量重分类页面

Advanced URI 格式:obsidian://advanced-uri?vault=库名&commandid=obsidian-accounting:命令ID

批量重分类

大量记账通过截图 OCR 录入时,分类往往默认为 #cy(餐饮)。批量重分类功能让你根据备注内容一次性修正所有分类,不用逐条手动改。

功能入口

记账视图操作栏点击「批量重分类」,或命令面板执行 批量重分类,在新标签页打开独立页面,不影响现有记账视图布局。

使用流程

  1. 配置规则:点击「+ 添加规则」,填写备注关键词和目标分类
  2. 预览:点击「预览」扫描所有日记,按规则分组展示匹配记录
  3. 勾选:默认全选,可取消不需要修改的条目
  4. 执行:点击「执行修改」,确认后原子写入文件
批量重分类界面
批量重分类界面

规则说明

每条规则只需两个字段:

字段说明
备注关键词备注中包含该词即命中,不区分大小写
目标分类命中后将分类改为此值
自动勾选后打开记账页面时自动静默执行

示例:备注包含 maner(不区分大小写)→ 分类改为 悦己奖励 (yj)

自动分类

勾选规则的「自动」复选框,每次打开记账视图时自动在后台执行:

  • 只处理最近 7 天的记录
  • 目标分类已正确的记录直接跳过,不触碰文件时间戳
  • 完成后显示通知「自动分类完成:已修改 X 条记录」

常见问题

Q: 为什么看不到记账记录?

检查:日记文件是否在配置的文件夹下、文件名是否为 YYYY-MM-DD.md 格式、记账格式是否正确。

Q: 如何添加新的分类?

点击记账视图中的「配置分类」按钮添加。

Q: 数据存储在哪里?

所有数据存储在你的 Obsidian 笔记中(日记文件 + config.json),完全本地化。

开发

npm run dev      # 开发模式
npm run build    # 构建
npm run deploy   # 部署到本地 vault

License

MIT


☕ 请作者喝杯咖啡

如果这个插件帮助了你,欢迎扫码打赏,感谢支持!

微信打赏

微信扫码打赏


💡 提示:记账最难的不是方法,而是坚持。把记账融入日记,让记录消费成为写日记的自然延伸。

觉得有用?请作者喝杯咖啡 ☕
微信打赏二维码

觉得有用,请作者喝杯咖啡 ☕