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