简体中文 | English
一行一句话 + 一个数字就是一笔账。自动识别金额、实时合计,再一键算清 AA 谁该给谁。
一个极简的记账 + AA 分摊小工具。不注册、不登录、不上传 —— 数据只存在你自己浏览器的 localStorage 里。
网页端是一个单文件(web/index.html,HTML / CSS / JS 全部内联),零依赖、零构建、零后端,双击就能用,也能随手丢到任意静态托管上。
- 极简记账 —— 每行一条,像发消息一样写:
午饭 18、打车 23.5、报销到账 +120 - 智能识别 —— 取每行最后一个数字作为金额,其余文字当摘要;支持支出
-6、收入+120、千分位1,200、小数59.9、全角数字、结尾的「元 / 块 / ¥」 - 没数字的行不丢 —— 原样保留展示,只是标注「不计入」合计
- 实时统计 —— 合计(净额 = 收入 − 支出)、收入、支出、笔数、未识别行
- 保存与记录 —— 一键把编辑区拆成逐条记录(新批在前),可单条删除、可清空
- AA 结算 —— 填上「TA 已付」,自动算清谁该给谁,并把四步算式摊开给你看
- 两种导出 —— 长图(
⌘/Ctrl + S或菜单)与 CSV - 中英双语 —— 右上角国旗一键切换,币种跟着语言走(
¥/$) - 自动跟随系统深色模式,响应式布局(600px / 860px 断点)
点击 在线使用 即可打开,无需安装、不用注册;打不开时换 GitHub Pages 镜像 —— 同一份单文件应用,只是换个地方托管。
网页端没有构建步骤,直接打开文件就行:
# 方式一:双击文件(macOS)
open web/index.html
# 方式二:起个本地静态服务
cd web && python3 -m http.server 8080
# 然后访问 http://localhost:8080每行取最后一个数字作为金额,+ 是收入、- 是支出,不带符号的数字按工具栏「无符号数字算作」的设置处理(默认算支出)。
| 你写的 | 识别为 | 说明 |
|---|---|---|
午饭 18 |
支出 ¥18.00 | 无符号,按工具栏设置算支出 |
打车 23.5 |
支出 ¥23.50 | 支持小数 |
报销到账 +120 |
收入 ¥120.00 | + 开头算收入 |
客户打款 +1,200 |
收入 ¥1,200.00 | 支持千分位 |
买菜 12 |
支出 ¥12.00 | 支持全角数字 |
买牛奶 59.9 元 |
支出 ¥59.90 | 结尾的「元 / 块 / ¥」会被忽略 |
今天忘了带钱包 |
— | 没有数字:保留展示,标注「不计入」 |
| 位置 | 元素 | 作用 |
|---|---|---|
| 右上角 | 🇨🇳 / 🇺🇸 | 切换中文 / 英文(币种同步切换) |
| 工具栏 | 无符号数字算作 | 不带符号的数字算支出还是收入 |
| 工具栏 | 填入示例 | 一键填入一行示例,快速体验 |
| 工具栏 | 保存 | 把编辑区拆成逐条记录存入本机,并清空编辑区 |
| 工具栏 | 复制全部 | 复制编辑区全部文本到剪贴板 |
| 工具栏 | 导出 → 导出图片 | 导出整本流水长图(含合计与 AA 结算) |
| 工具栏 | 导出 → 导出 CSV | 导出 CSV(UTF-8 带 BOM,Excel 直接打开不乱码) |
| 工具栏 | 清空 | 清空编辑区(二次确认) |
| 记录表 | 底部合计行 | 已保存记录的净额合计 + 清空已保存(二次确认) |
| 记录表下方 | AA 结算 | 填「TA 已付」,实时算清差额并展开算式 |
| 快捷键 | 作用 |
|---|---|
⌘/Ctrl + S |
直接导出图片(CSV 只能从「导出」菜单进入) |
Esc |
关闭「导出」菜单,焦点回到按钮 |
口径是:账本里记的是「我」付的钱,「TA 已付」那部分手填;两者都算进共同开销,再按两人平摊。
你的净垫付 mine = 支出 − 收入
合计已付 total = mine + TA 已付
每人应承担 each = total ÷ 2
差额 diff = each − TA 已付 (恒等于 (mine − TA 已付) ÷ 2)
diff > 0→ TA 需付给你(绿色)diff < 0→ 你需付给 TA(红色)TA 已付 == 你的净垫付→ 两清,只显示文字不显示金额(差值小于 0.005 视为两清,避开浮点误差)
- 数据只存本机浏览器,不上传、不联网、无账号。换浏览器或清缓存 = 换一本账。
- 上面两个在线入口是两个不同的站点(域名不同),账本按站点隔离 —— 换入口就是换一本账,原有记录不会跟过去。
- 存储位置(
localStorage):
| Key | 内容 |
|---|---|
ledger-mini/v1 |
草稿:编辑区文本、方向设置、语言、AA 结算的「TA 已付」 |
ledger-mini/saved/v1 |
已保存记录,逐条 {at, label, amount, dir} |
Key 前缀保留
ledger-mini是故意的:改了等于所有老用户的账本清零。
splitledger/
├── web/
│ └── index.html # 单文件应用(HTML/CSS/JS 全内联)
├── docs/
│ ├── screenshot.png # 中文界面截图
│ └── screenshot-en.png # 英文界面截图
├── .github/
│ └── workflows/
│ └── pages.yml # 推到 main 时把 web/ 自动发布到 GitHub Pages
├── README.md # 中文说明(默认)
├── README.en.md # 英文说明
└── LICENSE # MIT 许可证
- 网页端没有构建、没有依赖:改完
web/index.html刷新浏览器即可。 - 中英词条在同一个
I18N对象里(zh/en),两份 key 必须严格对齐,改文案两边同步。 - 导出的长图最多画 200 行明细,超出会在图尾标注「另有 N 条未在图中显示」。
- 推到
main后,.github/workflows/pages.yml会把web/原样发布到 GitHub Pages(仓库的 Pages 源需设为 GitHub Actions)。web/本身就是完整站点,不需要任何构建。
Chrome / Edge / Safari / Firefox 等现代浏览器。导出长图基于 Canvas,已针对 iOS Safari 的画布面积上限做降采样兜底;导出失败时会提示换个浏览器重试。
MIT © 2026 isnotry
