社区展示:真实的 Beancount 设置
真实的 Beancount 设置
介绍
Beancount 是一个通用的纯文本会计系统,用户可以根据各种实际需求进行调整。在这个社区展示中,我们将展示不同的人如何构建和使用他们的 Beancount 会计工作流程的匿名示例 —— 从自由职业者和小企业主到个人理财爱好者。这些示例突出了创造性的实践,例如用元数据标记交易、使用自定义脚本自动更新账本、处理多种货币、预算和预测,以及使用插件或集成(例如 Fava Web 界面)扩展 Beancount。目的是启发和告知会计师、开发人员和精通财务的用户,了解 Beancount 灵活系统可能实现的功能。
Fava 界面示例: 许多 Beancount 用户依赖 Fava —— 一个开源 Web 仪表板 —— 来可视化他们的财务状况。Fava 可以将 Beancount 账本转换为交互式报告和图表。例如,上面的屏幕截图显示了一个 利润表 树状图,按类别细分收入和支出,快速概述了资金的来源和去向。用户可以按时间、帐户或标签过滤此视图,以深入了解特定项目或期间。这种可视化有助于使纯文本数据更易于访问,从而使用户可以一目了然地发现趋势和异常。
每个 Beancount 设置都是独一无二的,但都存在共同的主题。下面,我们将深入研究三种场景 —— 自由职业者、小企业主和个人理财高级用户 —— 以了解他们如何组织帐户并利用 Beancount 的功能。所有个人详细信息已被删除或概括,仅关注技术和配置。
自由职业者:项目标记和发票跟踪
我们的第一个例子是一位自由职业顾问,他使用 Beancount 作为其业务财务的支柱。这位自由职业者的账本经过组织,可以跟踪每个项目的收入和支出,并管理多个客户的发票。他们已在资产下为每个客户设置了应收账款(A/R)专用帐户,这有助于区分谁欠了什么。当他们完成一个项目并向客户开具发票时,他们会记录一笔交易,借记客户的应收账款帐户并贷记收入帐户。例如,新的发票可以记录为:
2025-08-01 * "Project X Completed" ^INV-0001
Assets:AccountsReceivable:ClientA 5,000 USD
Income:Consulting -5,000 USD
这里的 ^INV-0001 表示法是一个 链接(内置的 Beancount 元数据功能),用于使用发票编号标记此交易。当客户支付部分或全部发票时,付款交易包含相同的 ^INV-0001 链接,该链接将两个条目联系在一起。这种链接可以轻松地将付款分配给特定的发票,并查看未结余额。正如一位社区成员解释的那样,您可以使用此类标签或链接来标记部分付款 —— 例如,针对 30 美元的发票支付 20 美元 —— 在发票条目和付款条目上。通过查询账本上的该发票链接,自由职业者可以立即查看已支付的发票金额以及剩余的未付金额。
除了链接之外,自由职业者还大量使用 标签 进行分类。Beancount 中的标签是以 # 为前缀的标签,可以标记交易以供以后筛选。此用户使用项目的代码(如 #ProjectX)标记每个可计费给客户的费用,并使用 #Reimbursable 标记可报销的费用。例如,如果他们为客户项目购买机票,则费用条目可能包括 #ProjectX #Reimbursable。这种做法允许通过按标签筛选来生成每个项目或客户的报告。在一个项目之后,自由职业者可以运行查询以列出该项目的所有 #Reimbursable 费用,并确保他们向客户开具每项费用的发票。一位 Beancount 用户指出,标记工作旅行费用有助于发现任何未报销的费用 —— 理想情况下,当收到客户的所有退款后,工作旅行的费用净额应为 0 美元。这突出了标签与 Beancount 的查询功能相结合如何为管理可计费费用的自由职业者提供额外的监督层。
为了管理未结付款的状态,我们的自由职业者使用一种特殊的 待处理应收款 约定。他们将标签 #UNRESOLVED 应用于尚未完全支付的任何发票交易。Beancount(和 Fava)不强制执行此标签,但它是一种社区建立的模式,用于标记等待结算的交易。例如,在客户 A 支付全部 5,000 美元之前,上面的发票交易将包括 #UNRESOLVED。通过筛选该标签,自由职业者可以随时列出所有未结发票。收到付款并应用后(输入相应的 A/R 交易),他们会删除或忽略 #UNRESOLVED 标签,并且该客户的应收款帐户将平衡为零。该系统确保没有发票 "遗漏"。它本质上是以纯文本完成的账龄报告 —— 如果应收账款保持非零状态并标记为未解决,则需要注意。
由于自由职业者经常处理多种付款方式,有时甚至 处理多种货币,因此 Beancount 设置可以无缝地适应这种情况。在我们的示例中,顾问可能会以美元向某些客户开具发票,而以欧元向其他客户开具发票。在 Beancount 中,多币种处理 非常简单:任何帐户都可以持有多种商品(货币被视为商品)。自由职业者可以为每种货币保留单独的子帐户(例如 Assets:AccountsReceivable:ClientA:EUR 与 ...:USD),或者只是以适当的货币在同一帐户下发布交易。Beancount 将自动跟踪每种货币的余额。一位用户强调说,"Beancount 可以跟踪任何货币(无论是美元还是股票代码)的数量",这非常棒,所有这些都在一个账本中。我们的自由职业者通过在需要转换货币以进行报告时使用 price 指令记录汇率来利用这一点。一旦他们输入了定期的汇率或市场价格,他们就可以生成转换为其本国货币的收入报告。
最后,这位自由职业者将其 Beancount 账本与实用工具集成,以简化其工作流程。例如,他们使用 文档元数据 将每张发票的 PDF 副本附加到账本中。典型的发票付款条目可能如下所示:
2025-08-30 * "ClientA" "Payment for INV-0001" ^INV-0001
Assets:Bank:Checking 5,000 USD
Assets:AccountsReceivable:ClientA -5,000 USD
document: "Invoices/ClientA/INV-0001.pdf"
Beancount 的 document 指令或元数据允许将文件与条目关联,Fava 将显示这些附件的超链接。这意味着自由职业者(或他们的会计师)可以直接从账本报告中单击以查看原始发票 PDF,从而确保可以轻松访问备份文档。自由职业者还使用 Fava 的报告来监控她的业务:通过按客户筛选利润表或资产负债表,她可以查看每个客户的盈利能力,并检查所有项目是否已付款。总而言之,这位自由职业者的 Beancount 系统展示了大量使用标记和链接来管理基于项目的会计。它将纯文本账本变成了一个强大的自由职业 会计工具,可以清晰地了解项目费用、多币种收入和发票状态。
自由职业者设置中的主要做法: 使用标签按项目或目的对交易进行分组、使用唯一的 ID 链接发票和付款、使用 #UNRESOLVED 标签标记未结应收款、将发票文档附加到账本条目以供参考,以及利用 Beancount 的多币种支持来毫不费力地向国际客户开具发票。所有这些都是通过纯文本条目加上一些辅助工具实现的,展示了 Beancount 中元数据的强大功能。
小企业:自动化和多币种会计
接下来,我们来看一位小企业主 —— 具体来说是一位创业公司的创始人 —— 他采用 Beancount 来运营公司的账簿。小企业与自由职业者有相似的需求(发票、费用、多币种),但通常规模更大,并且更加强调自动化、一致性和协作。在这种情况下,创始人精通技术,并构建了高度自动化的 Beancount 工作流程,以最大限度地减少手动记账。在评估了 QuickBooks 等传统会计软件后,他们选择了 Beancount 的纯文本方法,以保留对数据的完全控制权。几年后,他们迭代开发了自定义工具,实现了 95% 的自动化记账流程。
自动导入和对帐: 首批挑战之一是将来自各种来源(银行帐户、信用卡、支付处理商)的交易导入到账本中。此用户没有键入每笔交易,而是设置了 导入脚本 以获取数据并将其转换为 Beancount 格式。他们为每个金融机构的 CSV 或 API 格式编写了自定义 Python 导入器,因此只需一个命令即可提取新交易并将其附 加到账本中。例如,使用 Beancount 的 bean-extract 框架,创始人可以运行脚本扫描下载文件夹中的新对账单,并将其输出为 Beancount 条目。另一位用户 Rhyd Lewis 描述了类似的设置,他为每家银行都有单独的导入器脚本,并且可以通过一个简单的命令(使用 Justfile)调用它们来更新他的账本。我们的小企业主也做同样的事情 —— 所有银行交易、信用卡刷卡,甚至 PayPal 或 Stripe 交易都会自动提取并添加到账簿中,并使用适当的帐户进行分类。
为了确保数据完整性,即使自动添加这些条目,他们还使用 Beancount 的验证工具和插件。例如,启用 beancount.plugins.noduplicates 插件以防止意外地重复导入同一交易,并且 beancount.plugins.nounused 标记任何没有条目的帐户(有助于清理过时的帐户)。创始人还使用格式化程序(如 bean-format 或社区工具 beancount-black)来保持账本文件的样式一致。这很重要,因为通过许多自动编辑,拥有统一的样式可以更轻松地进行差异和审计。实际上,创始人将账本保存在 Git 存储库中,将账本更新视为代码更改。每批新导入的交易都会成为 Git 提交,他们可以查看差异以查看发生了什么变化。在一个屏幕截图中,他们显示了 Git 历史记录,其中“Costco”的信用卡交易从账本中的待处理状态变为已清除状态,所有这些都没有手动干预。版本控制提供了审计跟踪:他们可以准确地看到何时添加或修改了交易,甚至可以还原更改(如果导入有误)。这是一个将软件开发最佳实践(如源代码控制)引入会计记录的绝佳示例。
多币种和国际交易: 小企业经常以多种货币进行交易 —— 例如,一家创业公司可能有美元费用,但也可能收到欧元付款或持 有英镑银行帐户。我们的展示公司使用 Beancount 的多币种功能将所有这些整合到一个账本中。他们为每种货币开设了单独的帐户(例如 Assets:Bank:Checking:USD 和 Assets:Bank:Checking:EUR),这是一种常见的方法。但是,即使不同的货币共享一个帐户,Beancount 也会单独跟踪每种货币的余额,并要求每笔交易的货币都要平衡。创始人经常运行估值报告,以查看公司转换为基础货币的总余额。由于 Beancount 支持价格查找,他使用 bean-price 工具或插件为货币汇率(以及任何投资的股票价格)设置每日价格馈送。结果是,他可以随时生成以美元表示的资产负债表,其中包括以最新汇率转换的欧元帐户。社区成员指出,以账本样式会计处理多种货币很简单 —— 您只需以给定的货币添加交易并根据需要记录汇率。例如,一位用户分享了一个将美元转换为欧元再转换为加元的示例,通过中间帐户作为在 Beancount 中管理货币转换的一种方式。在我们的例子中,小企业不一定在交易中转换货币(他们将其保留为本国货币),而是使用报告进行整合。随着创业公司在全球范围内的扩张,这种灵活性至关重要。
自定义脚本和扩展: 创始人所需的一切都不是现成的,因此他们使用自定义插件扩展了 Beancount。随着时间的推移,他们最终编写了解析器库、格式化工具和基于规则的交易导入器,并将其中许多作为开源软件包发布。例如,他们构建了一个 基于规则的导入引擎,该引擎使用 YAML 配置自动对交易进行分类。此配置的片段显示了如何将特定的收款人或描述(如“Comcast”或“PG&E”)映射到特定的费用帐户和叙述,以便当这些出现在银行提要中时,无需手动编辑即可生成正确的 Beancount 条目。这本质上是一种自定义自动化,可以动态地应用记账规则(用于公用事业、订阅等)。另一个插件确保账本始终保持平衡和格式化。每当提取新数据时,所有这些工具都会作为创始人工作流程的一部分运行。结果是一个 “自行更新” 且干预最少的账本,创始人说这给他带来了“纯粹的快乐”,因为他是一位痴迷于自动化的开发人员。
安全性和可访问性也是需要关注的问题。创始人希望他的财务团队(甚至他的配偶,作为监督员)能够轻松地查看账簿。为此,他在云中设置了 Fava 的私有部署。每次他将新的账本提交推送到私有 Git 存储库时,CI 管道(使用 GitHub Actions 和 AWS Elastic Beanstalk)都会部署更新的 Fava 实例。Web 界面位于密码后面(使用带有基本身份验证的 Nginx 代理),因此只有授权人员才能看到它。这样,最新的财务报表始终可以通过浏览器仪表板获得,而无需在本地安装任何东西。下图说明了此设置:Beancount 文件和必要的配置与 Fava 一起捆绑到 Docker 映像中,并在 AWS 上提供,Cloudflare 在前端提供安全性。
在云中自动化 Beancount: 此图显示了 Beancount 账本 + Fava 的部署管道。用户在本地更新账本文件并推送到 Git;构建 Docker 容器(包括用于身份验证的 Fava 和 Nginx)并将其部署到 AWS Beanstalk 服务器,Cloudflare 充当代理。结果是一个安全的 Web 门户,小企业的财务数据可以从任何地方(由所有者或团队)实时访问。这种高级设置演示了小企业如何将 Beancount 与现代云工具集成,以在不放弃数据所有权的情况下实现便利。
在日常使用中,小企业主关注的是 异常处理 而不是数据输入。每个月,他都会简要地查看自动导入的交易(使用 Git 差异或 Fava 的日记帐视图)以捕获任何未分类 或不正确的条目。他还使用 Beancount 的 余额断言 来对帐帐户。例如,在输入所有 6 月的交易后,他可能会添加余额检查以确认银行帐户的期末余额与报表匹配;如果不是,Beancount 将出错,表明缺少或输入错误。这确保了账簿保持准确。
小企业设置中的主要做法: 通过自定义导入器和脚本进行大量自动化(使账本“95% 自动化”)、使用版本控制进行审计跟踪和协作、使用价格馈送进行估值的多币种会计,以及部署 Fava 以方便共享地访问财务报告。小企业场景表明,通过工程努力,Beancount 可以走多远 —— 将会计变成一种高度自动化的管道,同时保持透明度和灵活性。即使一个人不是程序员,也可以通过使用社区插件(用于格式化、重复检测等)以及采用鼓励频繁审查和备份的纯文本工作流程来实现这些好处中的许多。
个人理财爱好者:预算和自定义分析
我们的最终展示是一位个人理财爱好者 —— 他使用 Beancount 以高度的详细程度管理家庭财务和投资。此用户以会计师的严谨性和数据分析师的好奇心对待他们的个人财务。结果是一个 Beancount 账本,不仅跟踪每一分钱,而且还可以作为预算、预测和分析实验的基础。
组织个人账本: 许多个人从一个 Beancount 文件开始用于他们所有的帐户,这位爱好者也不例外。他们维护一个主账本(例如 main.beancount),其中包括所有帐户(银行帐户、信用卡、贷款、投资组合等) 和交易。随着时间的推移,他们通过拆分章节引入了一些结构 —— 例如,他们有一个用于打开/关闭帐户的文件和单独的用于年度交易的文件 —— 这些文件包含在主文件中。这种模块化的组织使得浏览多年的数据(可以在单独的文件中存档旧年份)更容易,同时在逻辑上仍然是一个账本。社区论坛上的另一位个人用户描述了类似的布局:一个主文件,其中包含按类别分类的其他文件(例如 Income.beancount、Expenses.beancount、Investments.beancount)。我们的爱好者现在保持简单:一个文件在设备之间同步。
说到同步,因为它是个人理财,所以此用户希望捕获他们在任何地方进行的交易。他们使用名为 Beancount Mobile 的移动应用程序来快速添加移动中的条目(例如,直接在商店记录现金支出)。账本文件通过云同步(在本例中为 Syncthing)共享,以便他们的手机、笔记本电脑和 VPS(服务器)都拥有最新的副本。在电脑上,他们更喜欢使用带有 beancount-mode 的 Emacs,以便使用语法突出显示进行舒适的编辑。此设置确保无论他们是在办公桌前还是在外面,他们都可以立即记录交易,避免忘记任何事情。这是一个调整技术工具以方便个人使用的绝佳示例 —— 有效地构建了商业预算应用程序的自托管替代方案。
标记和元数据用于精细跟踪: 除了会计科目表之外,此用户还利用标签为他们的数据添加了第二个维度。对于常规预算类别,帐户就足够了(他们有 Expenses:Groceries、Expenses:Rent 等帐户),但对于 事件 或 目标 等跨领域主题,他们使用标签。例如,他们使用 #HomeReno 标记与他们的 房屋装修 项目相关的所有交易,无论 是从五金店购买木材(支出)还是从制造商那里获得回扣(收入)。这样,他们可以轻松地生成总项目成本的报告,而无需将这些费用隔离在不同的帐户下。一位 Reddit 用户通过标记 #garage-improvement 或 #lighting-improvement 等用于家庭项目的费用来演示此方法,从而可以通过 Beancount 的查询轻松地过滤和求和这些费用。我们的爱好者对假期 (#ItalyTrip2025)、大宗采购和一次性事件也这样做。
元数据(交易上的键值对)也用于某些特定目的。例如,他们将 location: ... 元数据添加到大额费用中以跟踪他们花钱的地方,或者将 note: ... 添加到收款人和叙述之外的其他上下文中。在少数情况下,他们甚至创建了自定义元数据字段以帮助进行 预测。一个例子是将 budget: X 和 frequency: monthly 添加到某些经常性费用中 —— 灵感来自 Beancount 邮件列表中一个用户的讨论,该用户在每个费用的元数据中存储预算预测。这些元数据字段不会影响 Beancount 的核心,但这位爱好者编写了一个小型 Python 脚本来读取它们并将实际支出与预计预算进行比较。这是使用 Fava 内置预算(如下所述)的替代方法,展示了元数据如何根据用户的意愿进行弯曲。正如 Beancount 创建者所指出的,元数据 "仅供您 [在自定义脚本中使用] 使用 —— Beancount 会解析它,但会忽略它" 本身。简而言之,此用户并不害怕用额外的信息扩展账本以帮助他们的个人分析。
使用 Beancount 进行预算: 此用户的主要目标之一是坚持每月预算。他们之前使用过预算应用程序 (YNAB),并希望复制其一些信封预算概念。在 Beancount 中有几种进行预算的方法,但最简单的方法是使用 Fava 的 预算指 令。我们的爱好者在账本中添加了 budget 条目,如下所示:
2025-01-01 custom "budget" Expenses:Groceries "monthly" 500 USD
2025-01-01 custom "budget" Expenses:DiningOut "monthly" 200 USD
2025-01-01 custom "budget" Expenses:Travel "yearly" 3000 USD
每行都为一段时间内的帐户(类别)设置预算。然后,Fava 在 Web 界面中显示预算与实际条形图,让用户看到,例如,他们本月在食品杂货上花费了 480 美元,超出预算 500 美元,并且可能在外出就餐上花费了 220 美元(超出预算)。爱好者会定期检查 Fava 的 利润表 和 费用 报告,这些报告既显示每月总额,又显示预算目标。Fava 方便地将每日/每周预算汇总到适当的时间跨度中。通过为此使用 Fava UI,用户不需要单独的电子表格进行预算;所有这些都是集成的。(他们还通过在每个月开始时将资金转移到虚拟帐户中来试验更自动化的 “信封” 系统,正如论坛上建议的那样,但发现自定义预算指令更容易维护。)
对于预测,除了预算之外,他们还密切关注即将到来的账单。一些社区成员已经构建了插件来为订阅或贷款摊销计划生成未来的交易,但此用户选择了一种更简单的方法:他们维护了账本的单独部分,其中包含已知项目的未来日期交易(例如下个月的租金,或即将到来的年度保险付款)。这些交 易保留在账本中,但不会影响今天的余额,并且一旦日期到来并且交易变为当前交易,它就会作为提醒(并且他们会调整金额以匹配实际费用,如果需要)。这有点像黑客攻击,但它适用于预测现金流,而无需复杂的工具。
投资跟踪和多商品会计: 作为一名财务爱好者,此用户还使用 Beancount 来整合投资帐户 —— 股票、共同基金和加密货币 —— 以及现金帐户。他们拥有经纪帐户,其持股(例如 AAPL、GOOG 等的股票)在 Beancount 中记录为商品。例如,购买 10 股 Apple 股票的条目将贷记经纪现金并借记资产帐户,其中 10 AAPL 作为商品金额。Beancount 处理任何商品的能力在这里非常有用;人们可以自由地混合货币和股票。正如一位用户指出的那样,“Beancount 可以跟踪任何货币(无论是美元还是股票代码)的数量”,这比通常不支持股票头寸的个人理财应用程序有了很大的改进。我们的爱好者使用 bean-price 工具在夜间 cron 作业中获取所有证券和外币的最新市场价格。每天凌晨 4 点,脚本运行 bean-price,它会提取价格(来自雅虎财经或其他来源)并将价格记录附加到该天的账本中。这样,下次他们打开 Fava 或运行报告时,他们可以看到最新的投资组合价值,甚至可以查看一段时间内的投资业绩。整个净资产,包括银行帐户、退休基金和加密货币钱包,都可以在一个统一的视图中获得。这对于数据驱动的投资者来说是一个梦想:无需登录多个平台即可查看整个情况。他们实际上构建了一个由 Beancount 提供支持的个人财务仪表板。
分析和集成: 真正让这位个人理财高级用户与众不同的是,一旦数据进入 Beancount,他们如何 分析 数据。由于所有交易都在 SQLite 数据库中(Beancount 可以通过其内置的查询语言查询数据,该语言类似于 SQL),因此用户可以进行自定义分析。他们编写了 Python 脚本来回答诸如 “我的食品杂货支出的 3 个月移动平均线是多少?” 或 “今年在公用事业上的支出与去年相比如何?” 的问题。一个脚本查询账本中的特定标签,并将结果输出到 Pandas 数据帧以进行进一步的数字运算。由于账本是纯文本的,因此他们还使用了 Jupyter 笔记本电脑来试验不同的可视化(超出 Fava 提供的范围)。例如,他们使用 Matplotlib 通过聚合 Python 中的 Beancount 数据来生成每月储蓄率的自定义条形图。只有因为 Beancount 使数据可访问且可机读,才能进行这种临时分析。正如一位用户所说,提取数据非常简单 —— “我有一个 Python 脚本,它使用查询语言从 Beancount 中提取数据,然后我使用 pandas 数据帧将数据准备成报告”。我们的爱好者有一个像这样的小脚本的存储库,他们运行这些脚本进行年度财务审查。
当然,并非所有事情都需要编码 —— 大部分时间,他们都依赖于 Fava 的内置图表。Fava 提供净值折线图、收入与支出趋势,甚至是树状图细分(如前所示),只需单击一下即可。用户感谢自 2018 年以来他们财务的 整个历史记录 都是可查询和可审计的。例如,如果他们想知道 “过去 5 年我在汽车维修上花费了多少钱”,他们可以在 Fava 中编写一个快速查询或过滤器来获得答案,而不是翻阅收据。正是这种授权吸引了他们使用 Beancount:完全拥有数据和无限的分析灵活性。作为奖励,纯文本账本是面向未来的 —— 它可以进行版本控制、迁移,甚至可以由其他工具解析(如果需要)。与闭源应用程序不同,没有丢失对财务历史记录的访问权限的风险。
个人设置 中的主要做法: 利用移动和桌面工具方便地进行数据输入、使用标签和自定义元数据来跟踪生活事件和跨类别分组、通过 Fava 的 budget 指令实施预算以实现持续的支出目标、在同一账本中跟踪投资和多种货币(通过自动价格更新),并通过直接查询账本数据来执行自定义分析。这种情况表明,通过一些设置,即使是个人理财爱好者也可以达到通常为企业保留的洞察力和控制水平 —— 同时保持事情的乐趣和吸引技术精明的用户。
结论
在这些社区示例中,一个明确的主题是 Beancount 的灵活性支持高度个性化的会计系统。 社区中的高级用户已经利用简单的文本文件构建了在功能上与商业软件相媲美的解决方案,但这些解决方案是根据他们的工作流程量身定制的。自由职业者可以轻松地标记和链接条目,以管理客户项目和发票。小企业主可以通过编写脚本来完成繁琐的记账任务,并将 Beancount 与现代基础设施集成,以实现始终更新的财务报表。个人理财爱好者使用该账本作为预算、投资和决策的单一事实来源,并通过标签和工具对其进行扩充,以回答关于他们资金的几乎任何问题。所有这些都是在保持纯文本会计的核心优势的同时实现的:透明度、可审计性和对数据的控制。
Beancount 的社区还创建了一个丰富的插件和集成生态系统。从用于输入的编辑器模式和移动应用程序,到用于可视化的 Fava Web 界面,再到 GitHub 上无数的导入器和实用程序,有资源可以满足几乎所有需求。用户经常在论坛和博客上分享他们的账本设置,以便其他人可以学习和采用最佳实践。重要的是,由于人类可读的格式,敏感信息可以保密(或易于进行编辑以进行共享)—— 正如我们在此展示中所做的那样。上面的示例表明,无论您是自由职业开发人员、创业公司创始人还是个人理财书呆子,您都可以按照自己的意愿弯曲 Beancount。通过创造性地使用标记和元数据、尽可能地进行自动化、处理多币种交易、使用预算进行规划以及通过插件进行扩展,社区不断突破纯文本中可能实现的界限。结果是专业的会计账本,同时也很容易维护,使用户能够 清晰地了解和控制 自己的财务状况。