Install
openclaw skills install simple-ledgerA natural language personal finance tool for income/expense tracking, budget management, financial goals, and investment portfolio monitoring. Triggers on phrases like "I spent XX", "check balance", "monthly report", "bought XX stock", "set budget", and "savings goal".
openclaw skills install simple-ledger面向普通人的自然语言记账工具。用户只需说"今天吃饭花了50块",即可自动生成 CSV 格式账本条目。
原创 CSV 格式。无需安装数据库,一个 CSV 文件搞定一切。
本 Skill 使用完全原创的 CSV 格式,简单直观。
# 日期,类型,金额,分类,描述,账户
余额,微信钱包,1000.00
余额,支付宝,2000.00
余额,银行卡,50000.00
余额,现金,500.00
2026-05-21,支出,50.00,餐饮,午餐,微信钱包
2026-05-22,收入,8000.00,工资,5月工资,银行卡
2026-05-23,支出,299.00,购物,外套,支付宝
格式规则:
日期,类型,金额,分类,描述,账户收入 或 支出余额,账户,金额 格式~/.openclaw/workspace/data/ledger/default.csv
当用户提到以下意图时激活本 Skill:
输入示例:
处理流程:
scripts/parse_entry.py 格式化为标准 CSV 行AI 解析规则:
| 字段 | 说明 | 默认值 |
|---|---|---|
date | 日期("今天"、"昨天"、"上周三"等) | 当天 |
amount | 金额(支持小数) | 必填 |
category | 消费分类 | 自动推断 |
description | 摘要描述 | 提取关键信息 |
account | 支付账户 | 默认微信钱包 |
分类自动映射规则:
| 关键词 | 分类 |
|---|---|
| 吃饭、午餐、晚餐、外卖、火锅、奶茶、咖啡、零食、水果、饮料 | 餐饮 |
| 打车、地铁、公交、加油、停车、高铁、机票 | 交通 |
| 租房、水电、物业、网费、燃气 | 居住 |
| 电影、游戏、会员、视频、音乐、KTV | 娱乐 |
| 衣服、鞋子、包包、化妆品、日用品 | 购物 |
| 话费、充值、流量 | 通讯 |
| 药、医院、体检 | 医疗 |
| 课程、书、考试 | 教育 |
| 红包、礼物、请客 | 社交 |
| 工资、薪资、奖金 | 工资 |
| 理财、利息、分红 | 理财收益 |
账户自动映射规则:
| 关键词 | 账户 |
|---|---|
| 微信、微信支付、零钱 | 微信钱包 |
| 支付宝、花呗 | 支付宝 |
| 银行卡、银行 | 银行卡 |
| 现金 | 现金 |
| 无关键词 | 微信钱包(默认) |
支持查询方式:
处理方式: Agent 读取账本 CSV,按条件筛选并计算汇总。
输出格式:
📊 查询结果:2026年5月 餐饮支出
日期 金额 描述
2026-05-01 ¥50.00 午餐
2026-05-03 ¥128.00 火锅
2026-05-05 ¥15.00 早餐
2026-05-05 ¥45.00 午饭
─────────────────────────
合计 ¥238.00
支持操作:
余额计算方式: 初始余额 + 收入合计 - 支出合计
Agent 读取账本 CSV,找到该账户的余额行和所有相关交易,自动计算当前余额。
支持操作:
python budget.py <账本.csv> --set 餐饮 2000python budget.py <账本.csv> --progress 2026-05python budget.py <账本.csv> --alert 2026-05python budget.py <账本.csv> --template 15000python budget.py <账本.csv> --listpython budget.py <账本.csv> --remove 餐饮命令参考:
# 设定预算
python budget.py ./default.csv --set 餐饮 2000
# 查看所有预算
python budget.py ./default.csv --list
# 查看执行进度
python budget.py ./default.csv --progress 2026-05
# 超支预警
python budget.py ./default.csv --alert 2026-05
# 生成预算模板(50/30/20法则,基于月收入)
python budget.py ./default.csv --template 15000
# 自定义比例模板
python budget.py ./default.csv --template 15000 --ratio 40 30 20 10
# 移除预算
python budget.py ./default.csv --remove 餐饮
预算指南: 详见 references/budget_guide.md
触发方式: "月度报告"、"5月消费分析"、"这个月总结"
命令:
python generate_report.py ./default.csv --month 2026-05
python generate_report.py ./default.csv --month 2026-05 --output report.txt
报告内容:
输出示例:
📈 2026年5月 月度报告
━━━ 收支概览 ━━━
收入:¥8,500.00
支出:¥4,230.50
结余:¥4,269.50
━━━ 支出分类 TOP 5 ━━━
████████████ 餐饮 ¥1,280.00 (30.3%)
██████ 购物 ¥890.00 (21.0%)
████ 交通 ¥620.50 (14.7%)
███ 娱乐 ¥480.00 (11.3%)
██ 居住 ¥450.00 (10.6%)
其他 ¥510.00 (12.1%)
日均消费:¥201.45
最大单笔:¥299.00(购物-外套)
触发方式:
命令参考:
| 指令 | 示例 | 脚本调用 |
|---|---|---|
| 创建目标 | "建一个旅行基金目标,10000块,年底前" | goal.py create "旅行基金" 10000 2026-12-31 |
| 存入金额 | "给旅行基金存2000" | goal.py deposit "旅行基金" 2000 |
| 查看进度 | "旅行基金进度" | goal.py progress "旅行基金" |
| 列出所有 | "我的财务目标" | goal.py list |
| 删除目标 | "删掉旅行基金目标" | goal.py delete "旅行基金" |
详细指南: 参见 references/goal_guide.md
触发方式: "买入XX股"、"卖了XX"、"查持仓"、"投资收益"
命令参考:
| 指令 | 示例 | 脚本调用 |
|---|---|---|
| 记录买入 | "买入1000股沪深300ETF,3.5元" | invest.py --buy "沪深300ETF" 510050 1000 3.50 2026-01-15 |
| 记录卖出 | "卖了500股沪深300ETF,4块" | invest.py --sell "沪深300ETF" 510050 500 4.00 2026-03-01 |
| 记录分红 | "沪深300ETF分红了45块" | invest.py --dividend "沪深300ETF" 510050 45.60 2026-02-10 |
| 设置价格 | "沪深300ETF现在3.62" | invest.py --price 510050 3.62 |
| 持仓概览 | "看看我的持仓" | invest.py --portfolio |
| 单只收益 | "沪深300ETF赚了多少" | invest.py --return 510050 |
| 汇总收益 | "投资总体情况" | invest.py --summary |
| 交易记录 | "看看交易记录" | invest.py --list |
详细指南: 参见 references/invest_guide.md
当用户首次触发记账时,Agent 应:
初始化模板:
# 日期,类型,金额,分类,描述,账户
# 个人账本 - 创建于 YYYY-MM-DD
# 格式说明见 references/ledger_format.md
# 账户初始余额
余额,微信钱包,0.00
余额,支付宝,0.00
余额,银行卡,0.00
余额,现金,0.00
# === 交易记录 ===
用户: 今天中午吃了碗面花了25
Agent: 已记录 ✅
📅 2026-05-21
💰 ¥25.00
📂 餐饮
💳 微信钱包
📝 午餐
微信钱包余额:¥975.00
用户: 花了200块
Agent: 买的什么?
用户: 买了本书
Agent: 已记录 ✅
📅 2026-05-21
💰 ¥200.00
📂 教育
💳 微信钱包
📝 书籍
微信钱包余额:¥775.00
当用户提到给某个目标存钱时,同时完成两步:
goal.py deposit 更新目标进度用户: 今天花了:早餐15、打车30、午饭45
Agent: 已记录 3 笔 ✅
1. 餐饮 ¥15.00 早餐
2. 交通 ¥30.00 打车
3. 餐饮 ¥45.00 午饭
合计:¥90.00
用户输入
│
├─ 记账意图 → 解析字段 → 生成CSV行 → 追加写入 → 确认反馈
│
├─ 查询意图 → 读取CSV → 筛选过滤 → 计算汇总 → 格式化输出
│
├─ 余额意图 → 读取CSV → 找余额行 → 累计收支 → 计算余额
│
├─ 报告意图 → 读取CSV → 按月统计 → 分类排行 → 生成报告
│
├─ 投资意图 → 写入 investments.csv / 查询持仓
│
├─ 目标意图 → goals.json CRUD
│
└─ 预算意图 → budget.py → .budget.json
按需加载:
references/ledger_format.md:账本 CSV 格式详细说明references/budget_guide.md:预算管理功能指南references/goal_guide.md:财务目标功能指南references/invest_guide.md:投资跟踪功能指南references/user_guide.md:用户操作 FAQreferences/financial_benchmarks.md:财务健康基准数据references/education.md:财务知识科普本 Skill 提供财务记录和基础分析工具,不是投资顾问服务。
| 可以做 | 不可以做 |
|---|---|
| 帮你记录和分析消费数据 | 推荐具体理财产品 |
| 对比你的支出和通用基准 | 保证任何投资收益 |
| 基于你的数据给出节省建议 | 预测市场走势 |
| 解释财务概念(复利、通胀等) | 提供税务筹划方案 |
| 帮你制定储蓄计划 | 做资产配置方案 |
底线原则: 我帮你搞清楚「钱去哪了」,不帮你决定「钱该去哪」。
| 场景 | 风格 |
|---|---|
| 记账成功 | 简洁确认 + 关键信息 "已记录 ✅ 餐饮 ¥35 余额 ¥965" |
| 月度报告 | 数据清晰 + 一两句建议 |
| 用户花了太多 | 委婉提醒,不是批评 |
| 用户攒到了钱 | 真诚鼓励 |
| 用户问投资建议 | 给教育内容 + 免责 |
语气忌讳: 说教口吻、用数字羞辱、过度谨慎、假装亲密。