Beancount像写代码一样的个人财务软件

Beancount 是一款免费开源的复式记账会计软件,通过简洁的纯文本文件来管理财务、生成报表,并可通过网页界面查看数据。你可从 GitHub 下载其最新稳定版(V3 版本),在 beancount.github.io/docs 查阅官方文档,也可通过邮件列表提问交流。
使用该软件的核心价值在于:借助版本控制、自动化能力实现灵活的财务管理,同时保障数据隐私且无厂商绑定风险;能帮你精准追踪支出、资产和预算,大幅节省财务核算的时间成本。

在大多数记账软件里,记账是一种“感觉正确就行”的行为。
而 Beancount 恰恰相反——它认为:账不平,就一定是错的。

这是一个把“会计”当作“形式系统”来对待的项目。

Beancount

Beancount 是一个开源的纯文本复式记账系统
它不是一个传统意义上的记账 App,而更像是:

一种用于描述财务事实的“语言” + 一个严格的校验引擎。

你用文本文件记录每一笔交易,Beancount 负责像编译器一样检查它们是否在逻辑上成立。

用“文本”来记账?

在 Beancount 的世界里:

  • 账本是 .beancount 文件
  • 文件就是唯一的“真实来源”
  • 不依赖数据库,不依赖厂商,不依赖云服务

这带来的好处非常直接:

  • 十年后依然可读
  • 可以用 Git 管理历史
  • 可审计、可回滚、可对比
  • 不存在“软件升级后账没了”

这是一种典型的工程师思维

如果数据很重要,它就不应该被关在黑箱里。

复式记账,强制自洽

Beancount 严格遵循复式记账原则

每一笔钱的流入,必须对应另一笔钱的流出。

一个最简单的例子:

2025-01-01 * "Lunch"
  Expenses:Food        35 CNY
  Assets:Cash

含义很清楚:

  • 食物支出增加 35 元
  • 现金账户相应减少 35 元

如果这两边对不上,Beancount 会直接报错,拒绝加载账本。

这让记账从“随手记”变成了一件必须逻辑自洽的事情

账户不是“分类”,而是结构

在 Beancount 中,一切都是账户,而且是树状结构

Assets:Cash
Assets:Bank:ICBC
Income:Salary
Expenses:Food
Expenses:Rent
Equity:Opening-Balances

这更接近真实会计系统中的“科目表”,而不是简单的标签分类。

一旦结构确定,你会发现:

  • 财务状况是可以被推导出来的
  • 报表不是“算出来的”,而是“必然成立的”

用途

非常适合:

  • 程序员、工程背景用户
  • 有多账户 / 多币种 / 投资记录需求
  • 对精确性、可追溯性有要求
  • 想长期维护个人财务系统的人

可视化?

Beancount 负责“真理”,但不强迫你只看文本。

社区中最常用的搭配是 Fava

  • Web 界面浏览账本
  • 收支报表、资产曲线
  • 多币种与投资视图

Beancount 在后台保证逻辑正确,Fava 负责把结果“翻译成人话”。

Github:https://github.com/beancount/beancount
油管:https://youtu.be/AaEkNO0PMGo

Scroll to Top