
double-entry-generator
CLI按规则把支付宝、微信、多家银行与券商以及美团、京东等账单转换成 Beancount 或 Ledger 复式记账格式,账户映射用 YAML 配置,适合每月批量导入与对账。
double-entry-generator
基于规则的复式记账导入器,支持将各种账单格式智能转换为 Beancount 或 Ledger 格式。
📖 完整文档: 访问 在线文档站点 获取详细的使用指南和配置说明。
🌍 English: See README in English for English documentation.
✨ 特性
- 🏦 多银行支持 - 支持建设银行、中国银行、工商银行、中信银行、汇丰银行等主流银行账单
- 💰 支付工具 - 支持支付宝、微信等主流支付平台的账单导入
- 📈 证券交易 - 支持海通证券、华西证券等券商的交易记录
- 🪙 加密货币 - 支持火币等交易所的币币交易记录
- 🛒 生活服务 - 支持美团、京东等生活服务平台的账单
- ⚙️ 智能规则 - 基于规则的智能分类,支持自定义账户映射
- 🔧 可扩展架构 - 易于添加新的账单格式和记账语言支持
🚀 快速开始
安装
使用 Go 安装(推荐)
go install github.com/deb-sig/double-entry-generator/v2@latest
使用 Homebrew 安装(macOS)
brew install deb-sig/tap/double-entry-generator
二进制安装
在 GitHub Release 页面下载对应架构的二进制文件。
[!TIP] 通过 Go 安装后,可使用
go version -m $(which double-entry-generator)查看版本。
基本用法
# 转换支付宝账单为 Beancount 格式
double-entry-generator translate -p alipay -t beancount alipay_records.csv
# 转换微信账单为 Ledger 格式
double-entry-generator translate -p wechat -t ledger wechat_records.xlsx
# 转换建设银行账单
double-entry-generator translate -p ccb -t beancount ccb_records.xls
更多使用说明请参考:
📋 支持的 Providers
🏦 银行
- 建设银行 (CCB) - 支持 CSV、XLS、XLSX 格式
- 中国银行 (BOC) - 支持借记卡和信用卡账单
- 工商银行 (ICBC) - 自动识别借记卡/信用卡
- 中信银行 (CITIC) - 信用卡账单
- 广发银行信用卡 (CGB Credit)
- 汇丰银行香港 (HSBC HK) - 香港汇丰银行
- 加拿大银行 (BMO) - Bank of Montreal
- 道明银行 (TD) - Toronto-Dominion Bank
- 招商银行 (CMB) - 支持储蓄卡和信用卡
- 交通银行储蓄卡 (BOCOM Debit)
- 农业银行储蓄卡 (ABC Debit) - 借记卡账单
💰 支付工具
- 支付宝 (Alipay) - 支持 CSV 格式
- 微信 (WeChat) - 支持 CSV 和 XLSX 格式
📈 证券交易
- 海通证券 (HTSEC) - 证券交易记录
- 华西证券 (HXSEC) - 证券交易记录
🪙 加密货币
- 火币 (Huobi) - 币币交易记录
- OKLink - 多链代币转账记录(ERC20、TRC20 等)
🛒 生活服务
完整列表请查看 Providers 文档。
⚙️ 配置指南
Double Entry Generator 使用 YAML 格式的配置文件来定义转换规则和账户映射。
基本配置结构
defaultMinusAccount: Assets:FIXME
defaultPlusAccount: Expenses:FIXME
defaultCurrency: CNY
title: 我的账本配置
# Provider 特定配置
alipay:
rules:
- category: 餐饮美食
time: 11:00-14:00
targetAccount: Expenses:Food:Lunch
- peer: 滴滴
targetAccount: Expenses:Transport:Taxi
配置文档
📖 示例
项目提供了丰富的示例配置和账单文件,位于 example/ 目录下。
支付宝示例
double-entry-generator translate \
--config ./example/alipay/config.yaml \
--output ./example/alipay/example-alipay-output.beancount \
./example/alipay/example-alipay-records.csv
微信示例
double-entry-generator translate \
--config ./example/wechat/config.yaml \
--provider wechat \
--output ./example/wechat/example-wechat-output.beancount \
./example/wechat/example-wechat-records.csv
更多示例请查看 示例文档。
🏗️ 架构
┌───────────┐ ┌──────────┐ ┌────┐ ┌──────────┐ ┌──────────┐
│ translate │->│ provider │->│ IR │->│ compiler │->│ analyser │
└───────────┘ └──────────┘ └────┘ └──────────┘ └──────────┘
alipay beancount alipay
wechat ledger wechat
huobi huobi
htsec htsec
icbc icbc
ccb ccb
td td
bmo bmo
hsbchk hsbchk
架构支持扩展:
📚 文档
完整的文档请访问:
- 🌐 在线文档站点 - 完整的在线文档
- 📖 快速开始 - 安装和基本使用
- 📋 Providers 列表 - 所有支持的数据源
- ⚙️ 配置指南 - 详细的配置说明
- 💡 示例 - 使用示例和最佳实践
🐛 常见问题
如何处理不支持的交易类型?
如果遇到 "Failed to get the tx type" 错误:
- 在 GitHub Issues 上报问题
- 若该交易类型为支出,且版本 >=
v2.10.0,可使用--ignore-invalid-tx-types参数忽略该错误
如何获取账单文件?
各 Provider 的账单下载方式请参考:
更多问题请查看 GitHub Issues。
🤝 贡献
欢迎贡献代码和文档!请查看 贡献指南。
如何贡献
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
本项目采用 Apache 2.0 许可证。
🙏 致谢
- dilfish/atb - 支付宝账单转 Beancount 的早期版本
📞 联系方式
- GitHub: deb-sig/double-entry-generator
- Issues: GitHub Issues
相關資源

Ledger
CLI经典的纯文本复式记账命令行工具:账目写在文本文件里,直接生成余额、明细、预算等报表,没有数据库和隐藏状态,方便 agent 读写账本、对账和出报表。
ledger/ledger6.1k
rustledger
CLIBeancount 纯文本复式记账的 Rust 实现,命令是 rledger:校验账本、跑 BQL 查询、出资产负债表与收支表,能导入银行 CSV/OFX 对账单、对比预算、计算投资收益和资本利得;另有 MCP 服务,GitHub 发行包还附带输出 JSON 的 ag-rledger,便于 agent 调用。账本需是 Beancount 格式,报表与涉税数字需会计复核。
rustledger/rustledger398
beanquery
CLIBeancount 官方账本查询工具 bean-query,用类 SQL 语句查询纯文本复式账本,出余额、收支分类汇总和账户明细,适合会计让 agent 核对账目、整理报表。需 uv 或 Python 3.8+ 和 Beancount 格式账本;报表结论需会计复核。
beancount/beanquery65
ofxstatement
CLI把各家银行导出的专有格式对账单转换成标准 OFX 文件的命令行,便于 agent 批量整理流水后导入 GnuCash、HomeBank 等记账软件。需要 Python 环境,并按开户银行另装对应插件;现成插件以欧洲银行为主,未见国内银行插件,其他银行需自行编写。
kedder/ofxstatement365
Actual CLI
CLI本地优先预算软件 Actual Budget 的官方命令行(命令是 actual):连接 Actual 同步服务器后,可查询和修改账户、交易、分类、收款方、规则与月度预算,默认输出 JSON,也能导出 CSV,适合让 agent 批量归类账目、整理报表。需 Node.js 22+,并准备已部署的 Actual 服务器地址、密码和预算 Sync ID。
actualbudget/actual29.2k
Beancount
CLI用文本文件记录复式记账交易的记账语言与工具集:bean-check 校验账本、bean-format 统一格式,配合 Fava、beanquery 出报表与查询;账本是纯文本,便于 agent 生成和版本管理。
beancount/beancount6.1k