SMB
SMB — Sutady Moneybook
一本只属于你的私人账本。 数据只存在你自己电脑上的 SQLite 里,电脑和手机都能用; 需要时,还可以让 OpenClaw 或其他支持 MCP 的 AI 助手帮你记账、查账、提醒续费。
React 19 · Node.js 22 · SQLite (WAL) · PWA · MCP · Cloudflare Tunnel(可选)

截图全部来自演示数据,不含任何真实账目。当前版本以
package.json为准,更新内容见 CHANGELOG。
它能做什么
模块 | 你能用它做的事 |
记账与账单 | 快速记收入/支出,只记发生日期,金额以整数“分”保存;可「保存并再记一笔」连续补账。账单分“最近录入 / 月账单 / 年账单 / 回收站”,搜索支持备注、分类名和金额,还能搜全部时间;删除先进 30 天回收站,可撤销。 |
洞察 | 周、月、年的支出或收入,同时给出结余;进行中的月份只和上月同一段日期比较(例如 10 月 1–12 日对 9 月 1–12 日)。趋势图可切换「每日 / 累计」,累计视图叠加上期同期虚线。分类明细与构成图都能下钻到账单。 |
预算与体检 | 每月总预算和分类预算只提醒、不拦截。房租这类标为“固定支出”的分类按实际计入月底预测,不会月初就报超支。账本体检用确定性规则找出疑似重复、大额支出、预算风险、待确认续费和到期计划,核对后不会自动改账。 |
资金账户(可选) | 记录微信、支付宝、银行卡等账户的真实余额,支持人民币、美元和 USDT。转账、手续费、余额校准和全额退款都有追加式流水;每条流水写明来源,可按账户筛选。启用前的旧账不会被追溯。 |
事项 | 借给别人的钱(分次还款、自动结清)、订阅(首期优惠、月/年/自定义周期、到期确认、取消可撤销)、一次性计划(预购尾款等,完成时才入账)。事项默认不计入消费统计,只有主动关联的账目才会。 |
AI 助手(可选) | 标准 Streamable HTTP MCP,七十多个工具,只读工具带安全标注。可在“确认模式”(写账先提交待确认提案)和“直接接管”(立即执行,30 天内可撤销)之间切换;SMB 自己不调用任何外部模型。任何能设置 |
备份与安全 | WAL + |
外观 | 温暖纸张、墨夜和跟随系统三种主题,四种内置背景,或者只存在当前设备上的个人图片。手机和电脑共用一套界面,可安装为 PWA,支持“记一笔”桌面快捷方式。 |



Related MCP server: ExpenseTracker MCP Server
快速开始
需要 Node.js 22 或更高版本,并保持在所用版本线的最新安全更新(2026 年 10 月的安全修复版是 22.23.4、24.22.1 和 26.12.1)。只在自己电脑上记账时,不需要配置任何外部服务。
Windows:双击启动(推荐)
双击项目根目录的 打开 SMB.cmd。第一次运行会自动安装依赖、根据模板生成 .env、构建程序,然后打开 http://127.0.0.1:8788(本机免登录模式)。保留标题为“SMB Service”的窗口;关掉它就是停止服务。
任意系统:命令行
npm install
cp .env.example .env
npm run build
npm start # 打开 http://127.0.0.1:8788开发时用 npm run dev(Vite 在 http://127.0.0.1:5173)。注意:开发服务器与正式服务读取同一个 .env,也就是同一个数据库和端口;在已部署的机器上开发前,请先看 CLAUDE.md 的说明。
进阶功能
这些都是可选的,按需配置:
手机外网访问:通过 Cloudflare Tunnel 免公网 IP 访问,Cloudflare Access 限定只有你的邮箱能登录。见 部署指南。
接入 OpenClaw:用 MCP 让 AI 助手记账、查询和每日提醒(只在有待办时提醒,只发数量不发金额)。见 部署指南 · OpenClaw。
接入其他 AI 客户端:设置
MCP_REQUIRE_CF_ACCESS=false并把 Cloudflare 中/mcp应用的策略改为 Bypass 后,客户端只需地址和Authorization: Bearer令牌。见 部署指南 · 只用应用令牌接入 MCP。加密云备份:双击
配置Google Drive授权.cmd,用你自己的 Google OAuth 客户端和age公钥,每天加密上传快照;本地快照可以放在另一块硬盘。见 恢复指南。资金账户:账户、转账、校准、退款和缺少账户核对。见 资金追踪指南。
借款、订阅与计划:见 事项使用指南。
几条设计原则
SQLite 是唯一的真相。 浏览器只保存外观、筛选位置和设备上的个人图片,从不保存账目副本或未保存的金额、备注。
“今天”以账本时区为准。 电脑和手机所在时区不同时,“今天”、默认月份和周期边界仍然一致。
余额只靠追加流水计算。 没有可以直接改的余额字段;修改、删除、恢复、退款都追加差额流水。
事项与账本互不干扰。 借款、订阅和计划只有在你主动关联时才会影响统计,关联之后两边也不会自动同步。
不猜数字。 外币账户必须填实际扣款金额,不查也不猜汇率;AI 批量记账也不会补全缺失的金额、日期或分类。
日常使用小贴士
页面打开时每 30 秒同步一次,切回窗口或恢复网络时立即同步。PWA 每分钟检查前端更新,没有正在编辑的表单时自动更新。
Cloudflare 登录过期时,用页面上的「重新登录」,不要清除网站数据,否则当前设备上的个人背景图片会一起被删除。
洞察的期间、周/月/年、收支和趋势模式都保存在网址里;从分类下钻到账单后点「返回洞察」能回到原来的位置。
账单网址保持兼容:
/bills是最近录入,?view=ledger&period=month&anchor=…是月账单,period=year是年账单,?view=trash是回收站。「导出当前视图」下载当前筛选的 CSV;设置页可导出完整 JSON 和全部账目 CSV,事项另有借款、订阅、计划 CSV。
开发与质量检查
npm test # Vitest:金额、时区、资金、事项、MCP、界面与可访问性
npm run typecheck # 浏览器与服务端两套 TypeScript 检查
npm run build # 字体 → 类型检查 → Vite 构建 → esbuild 打包服务端正式更新前先做一份经过完整性检查的快照,并验证能恢复:
npm.cmd run backup:snapshot -- manual-update
npm.cmd run backup:verify-restore目录 | 内容 |
| React PWA(页面、组件、样式),手机和电脑共用 |
| Express API、MCP、资金、事项、预算、体检、备份与 OpenClaw 提醒 |
| API、MCP 和前端共用的 Zod 校验与类型 |
| SQLite 迁移(当前版本 12) |
| 每个测试都使用独立的临时数据库,不会碰正式账本 |
| 启动、自启动、快照、恢复和授权脚本 |
| Cloudflare 与 OpenClaw 的无密钥配置模板 |
代码约定、领域规则和安全约束见 AGENTS.md。版本号只在 package.json 中维护:修复递增补丁版本,向后兼容的新功能递增次版本。Logo 规范见 品牌指南,暂缓的方向(账单导入、余额同步等)见 ROADMAP。
.env、正式数据库、备份、日志和构建产物都不进入版本控制。
This server cannot be deployed
Maintenance
Related MCP Connectors
Personal finance ledger for AI agents — query spending, track bills, forecast cash flow.
Track budgets from your AI chat: envelopes, monthly limits, variance reports. All data is local.
Track expenses from your AI chat: log, categorize, monthly CSV reports. All data is local.
Personal finance by conversation: expenses, receipts, statement import, budgets, net worth.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage personal expenses through natural conversation, supporting expense tracking, categorization, filtering, and financial summaries. Uses SQLite database to store expense records with full CRUD operations for comprehensive personal finance management.2-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage personal expenses by adding, querying, and summarizing expense data through a SQLite database and configurable categories.1GPL 3.0
- FlicenseNot gradedqualityDmaintenanceEnables natural language management of personal expenses, including adding, listing, and summarizing expenses with local SQLite storage.-
- FlicenseAqualityDmaintenanceEnables AI assistants to track, query, summarize, and delete personal expenses stored in a local SQLite database via natural language.4-