快速入门

Beancount 的新用户

登录到控制台后,你会看到一个自动创建的名为「Your Ledger」的账本,其中包含了一些示例数据,你可以点击 Open Fava 进入到 Web UI:

Startkit in Fava

在 Fava 中,你可以点击左侧导航栏的 Editor 进入到纯文本编辑界面,或者点击 Editor 右侧的加号来快速添加新的账目。


或者你还可以用 Git 将账本下载到本地(需要先 设置 SSH 密钥):

$ git clone [email protected]:ledgers/1 'Your Ledger'

然后使用你常用的编辑器打开它:

Startkit in VS Code

如果你还不了解 Beancount, 可以先看一下这些资料:

开始记账

Beancount 的每一笔交易都表示资金从一个账户流向另一个账户,根据你记账的粒度和目标,你可能需要先创建一些账户:

2023-01-01 open Income:Salary              ; 工资收入
2023-01-01 open Income:Investment          ; 投资收入
2023-01-01 open Assets:Bank:ICBC           ; 工商银行储蓄账户
2023-01-01 open Assets:Funds:Antfin        ; 蚂蚁财富基金账户
2023-01-01 open Liabilities:CreditCard:CMB ; 招商银行信用卡
2023-01-01 open Expenses:Food              ; 食物支出
2023-01-01 open Expenses:Uncounted         ; 未分类的支出

然后就可以开始记账了:

2023-11-10 * "发工资"
  Income:Salary     -10000.00 CNY
  Assets:Bank:ICBC  +10000.00 CNY

2023-11-11 * "吃火锅"
  Assets:Bank:ICBC  -250.00 CNY
  Expenses:Food     ; 省略金额让 Beancount 自动计算

2023-11-15 * "信用卡还款"
  Assets:Bank:ICBC            -1500.00 CNY
  Liabilities:CreditCard:CMB  +1500.00 CNY

当然,在你开始用 Beancount 之前,你的资产账户里很可能已经有了一些余额,你需要告诉 Beancount 这些账户的初始余额:

2023-10-31 pad Assets:Bank:ICBC Equity:Opening-Balances
2023-11-01 balance Assets:Bank:ICBC 12345.00 CNY

2023-10-31 pad Liabilities:CreditCard:CMB Equity:Opening-Balances
2023-11-01 balance Liabilities:CreditCard:CMB -1250.00 CNY

如果你不想记录每一笔小额交易,那么你也可以通过定期添加 pad 和 balance 指令来更新账户的余额,并将差额笼统地记录到某个账户(例如上面的例子中将差额归为了 Equity:Opening-Balances):

; 将自上次记录以来的余额变动都归于未分类的支出
2023-11-30 pad Liabilities:CreditCard:CMB Expenses:Uncounted
2023-12-01 balance Liabilities:CreditCard:CMB -1300 CNY

; 将自上次记录以来的余额变动都归于投资收入
2023-11-30 pad Assets:Funds:Antfin Income:Investment
2023-12-01 balance Assets:Funds:Antfin 3,009.41 CNY

导入已有的 Beancount 账本

登录到控制台后,你会看到一个自动创建的名为「Your Ledger」的账本,还有对应的 Git 地址([email protected]:ledgers/1),如果你已经有了一个自己的 Beancount 账本,那么你可以将它推送到 Hostedbeans 上,覆盖掉自动创建的账本。

设置 SSH 密钥 之后,在你本地的仓库中运行:

$ git remote add origin [email protected]:ledgers/1
$ git push --set-upstream --force origin :
Enumerating objects: 215, done.
Counting objects: 100% (215/215), done.
Compressing objects: 100% (204/204), done.
Writing objects: 100% (215/215), 68.42 KiB | 4.02 MiB/s, done.
remote: Resolving deltas: 100% (109/109), done.
To hostedbeans.io:ledgers/1
 + 42f54cc...8cf9ffd master -> master (forced update)
branch 'master' set up to track 'origin/master'.