跳转到主要内容

Beancount CLI 快速入门

安装 bea 命令,创建本地 Beancount 账本,记录你的第一笔购买,并检查余额。

使用 Beancount.io 命令行工具 bea 创建本地账本并记录你的第一笔购买。本地记账无需 Beancount.io 账户。

本教程从支票账户中有 1,000 美元开始。在购买一杯 12.50 美元的咖啡后,你将验证余额为 987.50 美元。

1. 安装命令​

在 macOS 或 Linux 上使用 Homebrew:

brew install bex-co/tap/bea
bea --version

如果你不使用 Homebrew,请安装 uv 并使用 uv tool install beancount-io。该 Python 包要求 Python 3.12 或更高版本。Homebrew 在安装时会提供会计引擎。使用 PyPI 时,请保持 uv 可用:第一条本地命令会下载托管的引擎,之后命令会在离线时复用该引擎。你无需单独安装 Beancount。

2. 创建你的账本​

选择一个新目录。此示例在 ~/my-books 中创建 main.bean:

bea --no-input init ~/my-books --currency USD --date 2026-08-01 \
  --opening-balance "Assets:Checking 1000"
cd ~/my-books

模板会打开常见的支票、储蓄、现金、信用卡、收入和费用账户。期初余额会与 Equity:OpeningBalances 抵消。

对于你自己的账簿,选择你打算记录的最早日期。所有模板账户会在此日期开启。期初余额必须描述该日的账户状况。信用卡债务使用负数金额。

init 永远不会覆盖现有账本。在 POSIX 系统上,新文件是私有的:只有所有者可以读取和写入。要与你的本地用户组共享,请使用 chmod 640 main.bean 显式更改权限。

如需引导式设置,请在终端中运行 bea init ~/my-books。向导会询问你的货币、历史起始日期和支票余额。

3. 记录一笔购买​

bea add transaction --date 2026-08-02 --narration "Coffee" \
  --posting "Expenses:Dining 12.50" \
  --posting "Assets:Checking"

该费用使用账户的美元货币。Beancount 会将另一条分录填写为 -12.50 USD。如果购买发生在今天,你可以省略 --date。

每次添加都会在文件替换前对照完整账本进行检查。未知账户或不平账的交易会产生带有指导的错误。

4. 检查结果​

bea check
bea list transaction --limit 10
bea report balance-sheet

交易列表会先显示最新条目及其分录金额。资产负债表显示支票账户中有 987.50 美元。

要直接验证该金额:

bea query "SELECT account, sum(position) WHERE account = 'Assets:Checking' GROUP BY account"

查询表会保留结果的精度。如需结构化输出,请将全局 --json 标志放在命令之前:

bea --json list transaction --limit 10

5. 保持账簿良好状态​

手动编辑文件后,运行 bea check。运行 bea format -i main.bean 可直接对齐列。不加 -i 时,格式化文本会输出到标准输出,文件保持不变。当脚本在需要格式化时应失败时,使用 bea format main.bean --check。

要从其他目录工作,请显式选择根文件:

bea --file ~/my-books/main.bean check

根文件按 --file、BEA_FILE、然后是工作目录中的 main.bean 的顺序选择。全局选项放在命令之前。格式化接受自己的文件或目录参数。

继续记录你自己的账目​

使用 bea upgrade --check 检查更新。运行 bea upgrade 以调用安装你的副本的包管理器。使用 bea --help 或 bea add transaction --help 查看你已安装版本中可用的选项。

来源:https://beancount.io/zh/docs/Basics/bea-cli