名称: watch-my-money
描述: 分析银行交易流水,对支出进行分类,追踪月度预算,检测超支和异常情况。输出交互式 HTML 报告。
触发器:
- "追踪支出"
- "检查预算"
- "分析交易"
- "我的钱花在哪了"
- "我是否超支了"
- "预算追踪器"
- "支出分析"
- "月度开销"
formats:
- 银行导出的 CSV 文件
- 文本交易列表
outputs:
- 交互式 HTML 报告
- JSON 数据导出
- 控制台摘要
privacy: 仅限本地
分析交易流水,对支出进行分类,追踪预算,标记超支情况。
请用户提供银行/信用卡的 CSV 导出文件或粘贴的文本。
常见数据来源:
- 从银行在线门户网站下载 CSV 文件
- 从预算类应用导出
- 从对账单复制/粘贴交易记录
支持格式:
- 任何包含日期、描述、金额列的 CSV 文件
- 粘贴的文本:例如 "2026-01-03 Starbucks -5.40 CHF"
读取输入数据,并标准化为统一格式:
- 自动检测分隔符(逗号、分号、制表符)
- 解析日期(支持 YYYY-MM-DD, DD/MM/YYYY, MM/DD/YYYY 等格式)
- 标准化金额(支出为负,收入为正)
- 从描述中提取商户名称
- 检测周期性交易(订阅服务)
为每笔交易分配类别:
分类列表:
- 房租、水电煤、订阅服务、食品杂货、外出就餐
- 交通、旅行、购物、健康
- 收入、转账、其他
分类优先级:
1. 检查已保存的商户覆盖规则
2. 应用确定性的关键词规则(参见 common-merchants.md)
3. 模式匹配(订阅服务、水电煤账单)
4. 启发式回退
对于不明确的商户(每次 5-10 个),会请求用户确认。
保存覆盖规则供后续运行使用。
将支出与用户定义的预算进行比较。
告警阈值:
- 80% - 接近预算上限(黄色)
- 100% - 达到预算上限(红色)
- 120% - 超出预算(红色,紧急)
建议预算模板请参见 budget-templates.md。
标记异常支出:
- 类别激增:支出 > 基线值的 1.5 倍 且 差额 > 50
- 订阅增长:订阅费用增长 > 20%
- 新出现的高消费商户:首次出现 且 消费 > 30
- 潜在的订阅:相同金额的周期性扣款
基线值 = 过去 3 个月的平均值(若无历史数据则使用当月数据)。
创建本地 HTML 文件,包含:
- 月度摘要(收入、支出、净额)
- 带预算状态的分类明细
- 主要消费商户
- 告警信息区域
- 检测到的周期性交易
- 隐私切换开关(可模糊金额/商户信息)
复制 template.html 并注入数据。
持久化存储到 ~/.watch_my_money/ 目录:
- state.json - 预算、商户覆盖规则、历史记录
- reports/YYYY-MM.json - 机器可读的月度数据
- reports/YYYY-MM.html - 交互式报告
# 分析 CSV 文件
python -m watch_my_money analyze --csv path/to/file.csv --month 2026-01
# 从标准输入分析
cat transactions.txt | python -m watch_my_money analyze --stdin --month 2026-01 --default-currency CHF
# 比较月份数据
python -m watch_my_money compare --months 2026-01 2025-12
# 设置预算
python -m watch_my_money set-budget --category groceries --amount 500 --currency CHF
# 查看预算
python -m watch_my_money budgets
# 导出月度数据
python -m watch_my_money export --month 2026-01 --out summary.json
# 重置所有状态
python -m watch_my_money reset-state
控制台显示:
- 包含收入/支出/净额的月度摘要
- 支出与预算对比的分类表格
- 检测到的周期性交易
- 前 5 大消费商户
- 以项目符号列出的告警信息
生成的文件:
- ~/.watch_my_money/state.json
- ~/.watch_my_money/reports/2026-01.json
- ~/.watch_my_money/reports/2026-01.html
所有数据均保留在本地。无网络请求。无外部 API 调用。
交易数据仅在本地分析,并仅存储在 ~/.watch_my_money/ 目录中。