开源 · 复式记账 · 本地优先Open source · Double-entry · Local-first pre-alpha

让 AI 像妈妈一样 帮你管钱 Let your AI look after your money like Mom would.

Money Mom 是装进 AI agent 的记账能力。说一句话,或丢一个账单,它帮你记账、查账、对账。AI 只负责听懂你的话,账由程序来记、来校验。 Money Mom is a bookkeeping skill for AI agents. Say a sentence or drop in a statement, and it records, queries and reconciles. The AI only understands you; a program keeps and checks the books.

你You 午饭瑞幸 38,支付宝付的Lunch at Luckin, 38, paid with Alipay
妈妈Mom 记好了:咖啡 38 元,从支付宝扣。Recorded: coffee 38, from Alipay.
你You 给小王转了 200Sent Xiao Wang 200
妈妈Mom 这笔算借给他的、请客,还是礼金?Is that a loan, a treat, or a gift?
2026-10-07 · agent · 0.95posted
Expenses:餐饮:咖啡38.00 CNY
Assets:支付宝-38.00 CNY
balance0.00 ✓
为什么可信Why you can trust it

AI 负责听懂,程序负责记对。The AI understands. A program gets it right.

让 AI 直接改账本不可靠。所以 Money Mom 把“理解”和“记账”分开:每一步都有程序把关,每一笔都可追溯。Letting an AI edit a ledger directly is unreliable. Money Mom separates understanding from bookkeeping: a program guards every step, and every entry can be traced.

复式记账Double-entry

每笔钱都记“从哪来、到哪去”,每个币种必须恰好平衡,否则整笔拒绝。Every amount records where it came from and where it went. Each currency must balance exactly, or the entry is refused.

AI 不直接写账The AI never writes the books

AI 只说“花了 38,从支付宝,买咖啡”。借贷方向、校验和写入由程序完成。The AI says “spent 38, from Alipay, on coffee”. Direction, checks and writing are done by a program.

只追加,不改历史Append-only

记错了不擦掉,而是作废并重记。来源、置信度、谁写的,都留着。A mistake is voided and re-recorded, never erased. Source, confidence and author are always kept.

从不靠猜Never guesses

含糊的账户名整笔记为“待确认”,并列出候选。AI 的置信度低于 0.9 也先等你确认。A vague account name makes the entry pending, with candidates listed. An AI confidence below 0.9 also waits for you.

对账后锁定Locked once reconciled

核对过银行余额的时期被锁定,回头改只能由你本人写明原因。A period checked against the bank is locked. Changing it takes you, in person, with a written reason.

本地优先Local-first

数据留在你的电脑上,是人能读的纯文本。程序默认不联网、没有运行时依赖;只有你主动取汇率时才联网。Your data stays on your machine as readable text. The program does not use the network by default and has no runtime dependencies; only fetching rates, which you run yourself, goes online.

工作原理How it works

你说话,AI 说意图,程序记账。You talk, the AI states an intent, a program does the books.

01

你说一句话You say a sentence

午饭瑞幸 38,支付宝付的Lunch at Luckin, 38, Alipay

不用选分类,不用填表。No categories to pick, no forms to fill.

02

AI 说出意图The AI states the intent

money-mom spend 38 \
  --from 支付宝 \
  --category 咖啡 \
  --confidence 0.95

只说业务含义,不拼借贷分录。Business meaning only, never raw debits and credits.

03

程序记账并校验A program records and checks

Expenses:餐饮:咖啡   38.00
Assets:支付宝       -38.00
balance               0.00 ✓

追加进只增不改的本地账本。Appended to a local, append-only ledger.

拿不准的时候When it is not sure

money-mom spend 45 --from 微信 --category 咖
→ 待确认。候选:Expenses:餐饮:咖啡pending. candidates: Expenses:餐饮:咖啡

money-mom confirm <ID> --category 餐饮:聚餐
→ 已入账posted
账单与对账Statements and reconciliation

账单交给它,核对也交给它。Hand it the statement. It checks the books.

每家银行的导出格式都不同,所以只描述一次,之后每月按同样的方式处理。没有内置的银行预设:格式常变,没有真实样本的预设就是编造;支付宝有未经验证的映射草案,微信的映射用一份真实导出核对过,都只是起点。Every bank exports a different layout, so you describe it once and it is applied the same way every month. There are no built-in bank presets: layouts change, and a preset without real samples would be made up. Alipay has an unverified draft mapping and WeChat a mapping checked against one real export; both are only starting points.

一份映射,每月适用One mapping, every month

import inspect 探测编码、表头和各列含义;日期是日/月先后、哪个符号代表收入这类含糊处会问你,不替你决定。重复导入只跳过已有的行。import inspect finds the encoding, header and columns, and asks about what it cannot know: day-first or month-first dates, which sign means money in. Re-importing only skips rows already there.

问一次,学一次Ask once, learn once

没有规则命中的行先待确认,按对方分组。你回答一次,就写成规则,等着的历史行一并补全。Rows no rule matched wait as pending, grouped by payee. One answer becomes a rule, and the waiting history is settled with it.

逐笔对账Line by line

找出漏记、多记、金额不符,以及可能被扣了两次的款项,再核对期末余额。只有全部对上才封存并锁定该期间。Finds missing and extra entries, amounts that disagree and charges that may have been taken twice, then checks the closing balance. Only a full match is sealed and the period locked.

money-mom import run alipay.csv --map alipay --account 支付宝
money-mom import rule-add --map alipay --match 美团 --account 外卖
money-mom reconcile 银行卡 cmb.csv --map cmb --closing-from-statement --assert
多币种Many currencies

不必固定一个币种。Not tied to one currency.

美元、港币、人民币混着用也没关系:币种能认出来,认不出来就问你,折算可以一直追溯到汇率的来源。Dollars, Hong Kong dollars and yuan side by side are fine: the currency is recognised, asked about when unclear, and every conversion traces back to where its rate came from.

认得出币种Recognises the currency

5美元、HK$200、USD 5、1,200元都行。遇到有歧义的 $ 和 ¥,先看账户,再看账本;还不确定就问你,从不靠猜。5 USD, HK$200, 5美元 or 1,200元 all work. For an ambiguous $ or ¥ the accounts decide first, then your ledger; if it is still unclear it asks, and never guesses.

换汇与折算Exchange and conversion

exchange 记下你实际成交的汇率;networth 把所有币种折成一个总额。缺汇率的币种会明确列出,不会悄悄丢掉。exchange keeps the rate you actually got; networth turns every currency into one total. A currency with no rate is listed, never silently dropped.

联网只在你开口时Online only when you ask

rates update 取欧洲央行的每日参考汇率,只发送币种代码和日期。汇率连同来源存进账本,之后折算完全离线。这不是实时行情。rates update fetches the ECB's daily reference rates and sends only currency codes and a date. Each rate is stored with its source, so conversion afterwards is fully offline. It is not a live feed.

money-mom exchange 100 USD 720 CNY --from 美元户 --to 银行卡
money-mom rates update
money-mom networth
安装Install

对你的 AI 说一句话。Say one sentence to your AI.

agent 会读安装说明,一步步装好,并在每个会改动你电脑的步骤前先告诉你。Your agent reads the install guide and does it step by step, telling you before anything changes your machine.

请阅读 https://github.com/imoneys10k/money-mom/blob/main/INSTALL.md 并按说明为我安装 Money Mom。

想让 agent 用英文引导你,换成这句:

Please read https://github.com/imoneys10k/money-mom/blob/main/INSTALL.md and follow it to install Money Mom for me.
Please read https://github.com/imoneys10k/money-mom/blob/main/INSTALL.md and follow it to install Money Mom for me.

Prefer to be guided in Chinese? Use this one:

请阅读 https://github.com/imoneys10k/money-mom/blob/main/INSTALL.md 并按说明为我安装 Money Mom。
  1. 装好 money-mom 命令:锁定版本,校验 SHA-256。Installs the money-mom command: pinned version, SHA-256 verified.
  2. 把 skill 装进你的 agent(Claude Code、Codex、Cursor、Gemini CLI、Copilot)。Puts the skill into your agent (Claude Code, Codex, Cursor, Gemini CLI, Copilot).
  3. 问你要中文还是英文账户树、本位币,创建账本。Asks for Chinese or English account names and a base currency, then creates the ledger.
  4. 跑一次不写入的自检,确认一切正常。Runs a self-check that writes nothing.

目前是预发布版本(0.1.0a7):已上 PyPI,npm 启动器稍后发布,不要把唯一的账放在它上面。This is a pre-release (0.1.0a7): on PyPI now, the npm launcher follows later. Don't keep your only copy of the books in it.

Claude CodeCodexCursorGemini CLIGitHub Copilot 以及其他支持 Agent Skills 的 agentand other Agent Skills clients

skill 采用开放的 Agent Skills 标准,已通过官方校验器。诚实地说:安装器已在隔离环境验证过,但还没有在每个 agent 里逐一实测对话效果。The skill follows the open Agent Skills standard and passes the official validator. To be straight: the installer is verified in an isolated environment, but conversation behaviour is not yet tested in every agent.

状态Status

pre-alpha:核心可用,其余在路上。Pre-alpha: the core works, the rest is on the way.

已完成Done

  • 账本内核:复式、只追加、对账锁定Ledger core: double-entry, append-only, locking
  • 命令行与 SQL 查账Command line and SQL queries
  • 月报:收支、分类、环比、净资产变化Monthly report: income, spending, categories, month on month, net worth
  • 图表简报:投研风格,可隐藏金额后分享Chart sheet in a research-note style, shareable with amounts hidden
  • 订阅识别与异常提醒(附证据,只提醒)Subscription detection and anomaly alerts (with evidence, advice only)
  • 意图层:spend / income / transferIntents: spend / income / transfer
  • 账单导入与对账:映射、规则、去重、逐笔比对Statement import and reconciliation: mappings, rules, dedupe, line-by-line matching
  • 同一笔钱不记两次:找出候选,由你判断The same payment never booked twice: candidates found, you decide
  • 哈希链防篡改:verifyTamper-evident hash chain: verify
  • 投资者包:成本批次、持仓、已实现与浮动盈亏、读取 TradeGit 日志Investor pack: cost lots, holdings, realised and unrealised gains, TradeGit journal import
  • 多币种:识别、汇率折算、换汇Many currencies: recognition, rate conversion, exchange
  • 中英文账户树模板Chinese and English account templates
  • skill、安装说明、doctorSkill, install guide, doctor
  • 三系统 CICI on Linux, macOS, Windows

下一步Next

  • “妈妈”语气档位“Mom” tone levels

之后Later

  • 发布 npm 启动器npm launcher
  • Claude Code 插件市场Claude Code plugin marketplace
  • Beancount 导出Beancount export

不做什么:不碰转账、下单等任何资金操作;不保存银行凭证;银行与券商数据只读导入。What it will not do: move money or place orders, store bank credentials, or go beyond read-only import of bank and broker data.