🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

对话记账 JohnXu22786/bookkeeping

DeepSeek Harnessv1.0.0
JohnXu2278635 天前有提交已提供中文文档扫描:含敏感能力

面向 DeepSeek Harnessdsh的对话式记账插件。聊天即可记一笔——「记一笔 午饭…

30.3/100
综合分
1
GitHub 星标
257
npm 周下载
—/5
用户评分

数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-bookkeeping
npm 源 · dsh-bookkeeping 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 35 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-bookkeeping @ 1.0.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/6 14:18:22

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
  • 写入本地文件
    dist/src/paths.js:19
    mkdirSync(absolute, { recursive: true });
  • 写入本地文件
    dist/src/store.js:17
    mkdirSync(dataDir, { recursive: true });
  • 写入本地文件
    dist/src/export.js:112
    mkdirSync(outDir, { recursive: true });
  • 写入本地文件
    dist/src/export.js:125
    writeFileSync(path, body, 'utf8');
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/schemastery@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 聊天记收支
  • 查询与报表
  • 导出CSV/HTML

对话式记账插件,给 DeepSeek Harness 用(dsh 套件:聊天记收支、查询、报表、导出 CSV/HTML、月度预算)

README

由 DeepSeek 最新模型翻译生成
dsh-bookkeeping English · 简体中文 面向 DeepSeek Harness(dsh)的对话式记账插件。聊天即可记一笔——「记一笔 午饭 35」——随后可查询、报表、导出,并基于本地 SQLite 账本做月度预算。 本插件是一个自包含的 dsh bundle:npm 包,package.json 声明 dsh.bundle 清单,附带 cordis.patch.yml 补丁层,并导出标准插件入口(name / inject / Config / apply)。它既可作为 dsh 中供模型调用的工具,也可作为独立 CLI 使用。 功能 - 对话式记账 —— 模型通过 bookkeeping_add 入账;金额严格校验,日期支持自然语言归一化,分类自动识别。 - SQLite 账本 —— 本地持久化,字段包含金额 / 分类 / 标签 / 日期 / 币种(金额以整数最小货币单位精确存储)。 - 分类体系 —— 内置分类(餐饮 / 交通 / 购物 / 居住 / 娱乐 / 医疗 / 学习 / 收入 / 其他)、关键词自动归类、自定义关键词→分类规则。 - 报表 —— 按日 / 月 / 分类汇总与月度趋势,支持月份、区间、分类、类型、标签过滤。 - 导出 —— CSV(RFC 4180 转义)与自包含 HTML 报表。
展开完整文档(README 剩余 1 节)
dsh-bookkeeping

English · 简体中文

面向 DeepSeek Harness(dsh)的对话式记账插件。聊天即可记一笔——「记一笔 午饭 35」——随后可查询、报表、导出,并基于本地 SQLite 账本做月度预算。

本插件是一个自包含的 dsh bundle:npm 包,package.json 声明 dsh.bundle 清单,附带 cordis.patch.yml 补丁层,并导出标准插件入口(name / inject / Config / apply)。它既可作为 dsh 中供模型调用的工具,也可作为独立 CLI 使用。

功能

- 对话式记账 —— 模型通过 bookkeeping_add 入账;金额严格校验,日期支持自然语言归一化,分类自动识别。
- SQLite 账本 —— 本地持久化,字段包含金额 / 分类 / 标签 / 日期 / 币种(金额以整数最小货币单位精确存储)。
- 分类体系 —— 内置分类(餐饮 / 交通 / 购物 / 居住 / 娱乐 / 医疗 / 学习 / 收入 / 其他)、关键词自动归类、自定义关键词→分类规则。
- 报表 —— 按日 / 月 / 分类汇总与月度趋势,支持月份、区间、分类、类型、标签过滤。
- 导出 —— CSV(RFC 4180 转义)与自包含 HTML 报表。
- 预算提醒 —— 可选月度预算(总预算或按分类),入账时即时提示接近限额(≥80%)与超支(≥100%)。
- 双入口 —— 九个可供模型调用的工具(ctx.tools),外加行为一致的独立 CLI。

环境要求

- Node.js ^22.19.0 || >=24.0.0(与 dsh 本身要求一致)
- 已安装 dsh(npx @deepseek-ai/dsh),且 PATH 中有 pnpm(用于安装插件)

接入 dsh

在仓库根目录先构建:

npm install
npm run build
npm pack # 可选:生成 dsh-bookkeeping-1.0.0.tgz

将 bundle 安装进某个 dsh profile(目录、tgz、github:...、npm 包名均可):

dsh plugin --profile bookkeeping add <dsh-bookkeeping 的路径>
或:dsh plugin --profile bookkeeping add ./dsh-bookkeeping-1.0.0.tgz

验证补丁层已生效,然后启动:

dsh --profile bookkeeping --dump-config # 应出现 "# == dsh-bookkeeping" 层
dsh --profile bookkeeping

安装时 pnpm 可能提示 Ignored build scripts: better-sqlite3@13.0.3。
该提示可忽略:better-sqlite3 v13 已随包附带预编译二进制,无需构建。

启动后即可在对话中直接使用:

用户: 记一笔 午饭 35 用户: 昨天打车花了 28 用户: 花了多少钱在餐饮上?
用户: 这个月一共花了多少?
用户: 给我看下最近 10 条记录用户: 导出 csv 用户: 设置本月预算 5000

配置

插件配置通过 Schemastery schema(export const Config)声明,在 profile 的 cordis.patch.yml 中覆盖:

- insert:
- id: bookkeeping
name: dsh-bookkeeping
config:
dataDir: /var/data/bookkeeping # 可选,默认 ~/.dsh-bookkeeping currency: CNY # 可选,默认 CNY maxAmount: 1000000000000 # 可选,单笔金额上限(单位)

| 键 | 类型 | 默认值 | 含义 |
| dataDir | string | ~/.dsh-bookkeeping | ledger.db 与 exports/ 目录所在位置。也支持 DSH_BOOKKEEPING_DATA_DIR 环境变量(显式配置优先)。 |
| currency | string | CNY | 金额未带符号时的默认币种。 |
| maxAmount | number | 1_000_000_000_000 | 单笔金额上限(单位)。 |

工具

所有工具返回 { summary, data };summary 是面向模型的文本,data 是结构化 JSON。

| 工具 | 用途 |
| bookkeeping_add | 记一笔。amount 必填;category 省略时自动归类;type(expense/income)、currency、remark、tags、date(自然语言)可选。 |
| bookkeeping_list | 列出记录(最新在前),支持 month / start / end / category / type / tag / limit 过滤。 |
| bookkeeping_categorize | 用内置关键词与自定义规则预测文本所属分类。 |
| bookkeeping_categories | 列出全部已知分类(内置 + 自定义规则引入)及其类型。 |
| bookkeeping_report | 汇总:daily、monthly、category、trend(+months)。过滤:month / start / end / category / type。 |
| bookkeeping_export | 将匹配的记录导出为 CSV 或 HTML 文件(写入 <dataDir>/exports/,导出完整匹配集合),返回绝对路径。 |
| bookkeeping_budget | 月度预算 set / list / check。set 传 "0" 删除预算。 |
| bookkeeping_rules | 自定义关键词→分类规则:add / list / remove。 |
| bookkeeping_remove | 按 id 删除记录(列表中显示为 #12)。 |

CLI

同一账本也提供独立 CLI(无需 dsh):

node dist/src/cli.js add 35 午饭 # 记一笔
node dist/src/cli.js add "¥500" 工资 --type income --date 昨天
node dist/src/cli.js list --month 2026-08 # 查询
node dist/src/cli.js report category --month 2026-08
node dist/src/cli.js report trend --months 6
node dist/src/cli.js export csv --out ./out
node dist/src/cli.js budget set 5000 # 本月总预算
node dist/src/cli.js budget set 1500 --category 餐饮
node dist/src/cli.js rules add 咖啡豆 购物
node dist/src/cli.js remove 12

node dist/src/cli.js --help 查看完整参考。退出码:0 成功,1 领域错误(金额/日期非法等),2 用法错误。数据位于 ~/.dsh-bookkeeping(可用 --data-dir 或 DSH_BOOKKEEPING_DATA_DIR 覆盖)。

数据存储

数据目录下单个 SQLite 数据库(ledger.db),WAL 模式。表:

- entries —— id、amount_cents(整数最小单位,恒 > 0)、currency、type(expense/income)、category、remark、tags(JSON 数组)、date(YYYY-MM-DD)、created_at
- category_rules —— 自定义 keyword → category 规则(优先于内置关键词)
- budgets —— (month, category) 限额;category '*' 表示总预算
- meta —— 预留的元数据表

导出文件写入 <dataDir>/exports/ledger-<时间戳>.csv|html。

金额与日期

金额。 支持 35、35.5、¥35、35元、$35.99、1,234.56 等写法。符号决定币种(¥/¥→CNY,$→USD,€→EUR,£→GBP,₩→KRW;后缀 元/块→CNY,円→JPY)。显式 currency 参数可覆盖默认币种,但不得与符号冲突。以下输入会被拒绝:零、负数、非数字文本、千分位格式错误、超出币种小数位精度(CNY/USD 等 2 位,JPY/KRW 0 位)、超过 maxAmount 的金额。

日期。 支持 YYYY-MM-DD、2026/8/17、2026.8.17、2026年8月17日、8/17、8月17日、3月;相对词 今天/今日/昨天/昨日/前天/明天/明日/后天 与 today/yesterday/tomorrow;星期 周X/星期X/礼拜X(映射到当前周一起始的自然周内)、上周X、下周X、裸 上周/下周;偏移 N天前/N天后、N周前/后、N个月前/后;月份 上个月/本月/这个月/下个月(日期按目标月天数截断)。无法解析的日期会报错并列出支持格式。年份范围 1900–2100。

分类

内置分类与关键词自动归类:餐饮、交通、购物、居住、娱乐、医疗、学习、收入、其他(兜底)。匹配为不区分大小写的子串匹配;最长关键词优先,同长时自定义规则优先,均不匹配时归入其他。自定义规则持久化在数据库中,例如 rules add 咖啡豆 购物 之后,任何包含「咖啡豆」的备注都会归为购物。

报表与预算

- daily —— 每日收支;monthly —— 每月收支与净额(收入 − 支出);category —— 分类汇总(含占比,按金额降序);trend —— 最近 N 个月月度趋势(空月补零)。
- 起止边界支持 YYYY-MM 或 YYYY-MM-DD(月份边界自动展开为该月首日/末日)。type 默认两者(all),可传 expense/income 收窄。
- 预算按月(YYYY-MM),可设总预算或分类预算。记录支出时立即检查:≥80% 提示接近限额,≥100% 提示超支。收入不消耗预算。budget set … 0 删除预算。总览式 budget check 会报告当月全部预算(总预算与各分类预算)。

开发

npm install
npm run build # tsc -> dist/
npm test # tsc + node --test

结构:src/money.ts(金额解析/格式化)、src/dateutil.ts(自然语言日期)、src/categories.ts(内置分类与自动归类)、src/store.ts(SQLite)、src/ledger.ts(领域服务)、src/report.ts / src/budget.ts / src/export.ts(汇总、预算、导出)、src/format.ts(共享文本)、src/tools.ts(dsh 工具)、src/cli.ts(CLI)、src/index.ts(bundle 入口)。测试位于 test/,与模块一一对应。

Bundle 结构

package.json dsh: { bundle: { patch: "./cordis.patch.yml" } },type: module,exports,bin cordis.patch.yml 插入插件行的补丁层(id: bookkeeping, name: dsh-bookkeeping) dist/src/index.js 入口:export const name / inject / Config / apply(ctx, config) dist/src/cli.js 独立 CLI(bin: dsh-bookkeeping)

限制

- 不做汇率换算——每条记录保留自己的币种;汇总假设单一币种(混币时按最小单位数值相加,预算按默认币种显示支出合计)。
- bookkeeping_list 的合计仅覆盖当前页;完整合计请用 bookkeeping_report。
- 周X 固定解析到当前周一起始的自然周内(含未来的星期几),此为约定行为。
- 预算以账本默认币种计。
- 数据按设计仅本地存储,不是多用户服务。

License

MIT
预览分享卡片长什么样 ↓JohnXu22786/bookkeeping
分享 · DeepSeek Harness Hub
JohnXu22786/bookkeeping

面向 DeepSeek Harnessdsh的对话式记账插件。聊天即可记一笔——「记一笔 午饭…

这是你的仓库?认领条目

回到顶部