Back to skills
extension
Category: Data & AnalyticsNo API key required

qianji-bill-merger

严格对账并合并微信、支付宝原始账单,依据现有钱迹账单的字段和分类生成可导入的 CSV/XLSX,同时合并退款、排除交易关闭记录、审阅疑似重复并保留血缘校验。用于每月合并账单、转换钱迹格式、自动归类或检查漏单。

personAuthor: user_f7facad8hubcommunity

QianJi Bill Merger

一个供 Codex 使用的账单合并 Skill:把每月的支付宝账单、微信支付账单转换成钱迹(QianJi)可导入文件。

普通用户不需要理解 Python、JSON 或转换脚本。安装 Skill 后,只需准备一份长期复用的钱迹模板;每个月分别放入当月的支付宝和微信账单,再告诉 Codex“帮我合并账单”即可。

推荐用法:让 Codex 完成整个流程

第一步:安装 Skill

在 Codex 中发送:

请从 https://github.com/MeisterZH/qianji-bill-merger 安装 merge-qianji-bills Skill。

Codex 会使用内置的 Skill Installer 安装。安装完成后开启一个新对话,$merge-qianji-bills 就会出现在可用 Skill 中。

<details> <summary>手动安装命令(Windows)</summary>
python "$env:USERPROFILE\.codex\skills\.system\skill-installer\scripts\install-skill-from-github.py" `
  --repo MeisterZH/qianji-bill-merger `
  --path . `
  --name merge-qianji-bills
</details>

第二步:准备模板和每月账单

钱迹模板只需准备一次,放在所有月份目录的上一级。每个月的支付宝和微信账单分别存放:

bills/
├── QianJi_账单模板.csv
├── 2026-07/
│   ├── 支付宝交易明细.csv
│   └── 微信支付账单.xlsx
└── 2026-08/
    ├── 支付宝交易明细.csv
    └── 微信支付账单.xlsx

文件名和扩展名不要求完全一致,Skill 会根据实际表头识别。每个月份目录只能有一份支付宝和一份微信账单:

  • 支付宝导出的完整交易明细
  • 微信支付导出的完整账单

上一级的钱迹模板用于提供目标格式和已有分类,也可作为初始重复记录参考。只有钱迹格式或分类发生变化时,才需要重新导出并替换模板。

第三步:让 Codex 合并

在 Codex 中打开本月目录,例如 bills/2026-07,然后发送:

使用 $merge-qianji-bills 处理当前目录的支付宝和微信账单,钱迹模板在上一级目录。合并退款,交易关闭不记录,按钱迹已有分类完成归类,检查模板中已经存在的记录,最后生成可导入文件和校验报告。

接下来由 Skill 自动完成:

  1. 在当前月份目录识别支付宝和微信账单,并在上一级定位钱迹模板
  2. 核对支付宝和微信声明的交易笔数
  3. 将部分退款与原消费合并,金额按实际花费计算
  4. 排除交易关闭、免押下单和全额退款
  5. 使用钱迹已有分类进行语义归类
  6. 审阅疑似已经存在于钱迹的记录,避免重复导入
  7. 生成钱迹导入文件和完整性校验报告

第四步:导入钱迹

Skill 完成后会返回两个文件:

QianJi_合并_2026-07.csv
QianJi_合并_2026-07.csv.validation.json

只有校验报告显示以下结果时,才应把 CSV/XLSX 导入钱迹:

status = PASS
coverage_check = true
refund_aggregation_check = true
classifications_check = true

下个月怎么做

不需要重新开发或修改规则:

  1. 新建下个月的文件夹
  2. 只放入新的支付宝和微信账单
  3. 在 Codex 中发送同一段提示

钱迹模板可以长期复用。如果你在钱迹里新增分类、修改字段,或者希望更新用于判重的历史记录,再重新导出并替换模板即可。

Skill 会遵守的规则

  • 每条原始记录必须进入导出账单或明确的排除组,不能静默漏单
  • 部分退款只保留一条实际花费记录
  • 交易关闭和全额退款不作为消费导入
  • 跨账期且无法找到原单的退款保留为退款收入
  • 分类和二级分类只能使用钱迹参考账单中已有的值
  • 余额宝转出、基金买卖和信用账户还款按转账处理
  • 交易对方、商品、支付方式、状态和订单号写入备注
  • 疑似重复只提示,不会在未经审阅时自动删除

常见问题

为什么输出条数少于支付宝和微信的总条数?

退款会与原消费合并,关闭交易和确认已存在于钱迹的记录不会再次导入。是否漏单由校验报告的 coverage_check 判断,而不是比较输出行数。

为什么需要钱迹模板?

它提供目标列格式和你的个人分类体系,也能作为初始重复记录参考。没有模板,Skill 无法保证生成结果与你的钱迹账本一致。

Skill 没有被识别怎么办?

安装后开启新对话。确认目录存在:

~/.codex/skills/merge-qianji-bills/SKILL.md

账单会上传到 GitHub 吗?

不会。仓库的 .gitignore 默认排除账单、运行计划和导出文件。仍建议只在自己的电脑和可信 Codex 环境中处理账单。

不使用 Skill 的高级用法

项目也提供独立命令行工具。适合开发者、自动化任务或没有 Codex 的环境。

<details> <summary>展开命令行流程</summary>
conda create -n py39 python=3.9
conda run --no-capture-output -n py39 python -m pip install -e . --no-build-isolation

conda run --no-capture-output -n py39 python run.py scan bills/2026-07
conda run --no-capture-output -n py39 python run.py prepare bills/2026-07
conda run --no-capture-output -n py39 python run.py export runs/2026-07

程序默认在月份目录的上一级寻找钱迹模板。模板放在其他位置时使用:

conda run --no-capture-output -n py39 python run.py prepare bills/2026-07 --qianji D:\账单模板\QianJi.csv

一次性接受自动分类建议:

conda run --no-capture-output -n py39 python run.py auto bills/2026-07

自动模式不会调用 Codex,商户语义可能存在歧义,推荐优先使用 Skill 流程。

</details>

开发

conda run --no-capture-output -n py39 python -m unittest discover -s tests -v