At a glance
What it does
DeepSeek Harness task-completion notifications with token, cost, pricing, and Token Plan views.
Web Profile
>=0.1.0-rc.5; Node.js >=20
Evidence-verified
Checked Sep 14, 2026, 2:12 PM UTC
Code-evidenced contributions
What it adds to DSH
Adds completion and pending-interaction notices plus views for token usage, pricing, daily spend, and Token Plan analysis.
Mechanism evidence ↗Before you choose it
This DeepSeek Harness plugin adds web toasts and optional browser system notifications when a top-level agent turn or goal finishes, and when an agent needs approval or an answer. Its Settings → Task Notifications & Usage area tracks provider-routed token usage, daily spend, model and provider breakdowns, price rules, and Token Plan cycles.
Best for
DeepSeek Harness users who want to notice completed work and inspect local model usage and estimated costs.
Common tasks
- Receive a desktop or in-page alert after a top-level agent task or goal completes.
- Review token counts, calls, and estimated spend by provider, model, date range, or today.
- Set model and provider-specific prices, including peak/off-peak rules, to calculate displayed costs.
- Track Token Plan cycles, reset history, and cost-efficiency estimates.
Permissions and data
Uses local Harness storage and optional browser notification permission.
Permissions- Browser Web Notifications permission for optional system alerts.
- Writes an append-style usage ledger to $DSH_HOME/storages/task-notice/usage.json.
- Writes configuration, including prices, Token Plan settings, and provider directory data, to $DSH_HOME/storages/task-notice/config.json.
- Records model usage fields such as token counts, provider routing, and calculated amounts.
- Uses the browser Web Notifications API; no separate external service is declared.
- No credential requirement is declared for installation. The plugin can manage Token Plan Key settings and reads configured provider information.
Limitations
- npm registry availability for version 0.3.7 was not found; use the verified pinned Git-bundle path.
- System notifications require a user-granted browser permission and a secure context such as HTTPS or localhost.
- Displayed amounts depend on configured or bundled price data and are estimates, not provider invoices.
- Runtime installation, notification delivery, and accounting behavior were not executed in the supplied evidence.
What DSHub checked
- The package manifest declares a DeepSeek Harness web client and host bundle, Node.js >=20, and DSH >=0.1.0-rc.5.
- The pinned source includes a verified bundle patch that adds dsh-task-notice to the profile.
- The repository declares MIT licensing.
What DSHub did not check
- Successful installation in a Harness profile.
- Actual browser notification delivery or permission behavior.
- Accuracy of price catalog data, calculations, or provider attribution at runtime.
Pinned install
Install dsh-task-notice
This plugin bundle does not have a DSH Plugin install action. Use its source documentation for the delivery method.
Maintainer source
Project README
dsh-task-notice
DeepSeek Harness 插件:代理任务完工通知 + 顶部提示横幅 + 按 Provider(Key)的 Token 消耗统计 + 价格编辑 + 使用分析。
0.3.7 新增:
显示名称(Provider ID + 模型名称):所有界面的名称优先取全局模型设置里的自定义显示名——Provider 显示名 = 该 Provider 的
displayName(如 scnet → 超算互联网、bitdance-ark → BitDance Ark MaaS),模型显示名 = 该 Provider 下该模型的name(如ark-code-latest→ 「GLM-5.3-Flash」,deepseek-flash→ 「DeepSeek-V4.1-Flash」);悬停始终可见原始模型 ID。全局模型设置未给显示名时回退官方价格目录显示名(厂商 + 模型名称),再回退模型 ID。模型归属的 Provider ID 修复:「哪个模型属于哪个 Provider」以全局模型设置的模型清单为准(Provider ID 管理 / 价格编辑的 Provider ID 子卡片 / 消耗统计的显示名同源),账本观测只作补集;Provider 目录不再退化成「只记录调用过的模型」——启动抓取撞上服务注册竞态时自动重试,缓存过期或全局模型设置变更(llm-* 命名空间)时自动重扫。使用分析 / Token Plan 的消耗汇总严格按目录归属:每个 Provider ID 下方的模型自动来自全局模型设置,模型消耗先按目录判定归属的 Provider ID(命中即归到该 Provider 名下,运行时路由只作目录未收录时的兜底);模型品牌显示 = 目录里归属 Provider 的显示名——不再按模型名前缀绑定厂商,Provider ID 是用户自己设置的,一律读本地数据。
价格表大小写不敏感:价格计算查找价格表(models 段)时不再区分模型名大小写——自定义价保存的大小写与调用记录不同也命中同一条价格。
峰谷计价 v2:主体峰谷规则支持逐日生效日(每条规则可选 工作日 / 自定义(勾选星期)/ 每天)、自定义时区(UTC 偏移小时,默认 8 = UTC+8,生效星期与高峰小时都按它判定)与峰时价格方式(倍率 / 自定义——自定义直接填峰时价,留空字段按原价);规则仍为条件格式式,自上而下首个命中生效。
自定义价格倍率:勾选「自定义价格」后可选 自定义(逐字段价)/ 倍率——倍率模式下实际价 = 该模型默认价格 × 倍率(默认价 = 官方价,未收录回退全局默认价),页面只读展示计算结果;Provider ID 子卡片新增价格倍率(默认 1,对该 Provider 的最终价整体缩放)。
旧版本价格数据迁移:升级后第一次启动自动把旧峰谷规则 / 价格配置应用到新版本结构(独立脚本
lib/pricing-migrate.js,经pricingVersion标记只执行一次,幂等)。性价比修复:Token Plan 的 Provider 下,性价比 = 该模型调用量 ÷ 加权后的使用金额 = 1 块钱可兑换的 tokens 数量(订阅费按各模型按模型价的金额占比摊薄)——修复旧版同计划所有模型性价比恒同、无法区分的问题。
完工通知:代理每完成一轮任务(或目标 goal 完成)时,在 Web 界面弹出通知,并经浏览器 Web Notifications API 发送 Windows 系统通知(桌面右下角横幅 + 操作中心;需页面授权,点击通知回到本页),展示本次任务消耗的 tokens(缓存输入 / 缓外输入 / 输出 / 合计)与金额。
顶部提示横幅(0.3.6):常驻 DeepSeek Harness 页面顶部居中(shell.overlay 帧级浮层,所有页面显示,可 × 关闭):① 通知权限横幅——系统通知开关开启但浏览器尚未授权时提示「开启权限获得完整能力体验」,点击横幅即自动执行索权动作,任何结局都立即可见(等待中横幅文字立即变为「正在请求授权」;授权成功自动开启系统通知并直发「系统通知已开启」系统通知回执;授权弹窗被关闭未选择时明确提示再次点击选择「允许」、被浏览器静默拦截时提示到地址栏站点设置修改;被拒绝时提示到地址栏站点权限中允许);② 模型价格横幅——当前使用的模型没有规定价格(未激活自定义、官方目录未收录、也没有 Provider 专属价)时提示设置价格,点击横幅直接弹出该模型的价格编辑弹窗(五个单价字段预填全局默认价,留空字段继续继承全局默认价),「保存并确定」即写入配置并立即生效,消耗统计 / 使用分析 / 完工通知金额马上按新价格计算。「当前使用的模型」= 最近一次完工帧携带的模型(实时)∪ 最近 7 天账本中最新使用且未定价的模型(刷新页面后仍能提示)。
操作提醒:对话需要你处理时同样提醒——代理发起权限请求(批准/拒绝)或提问(等待你回答)时,页内弹窗 + 系统通知(遵循系统通知开关与发送时机设置)。实现上订阅官方 UI 的待处理交互存储(
uiSession.pendingInteractions)做纯观察,不参与approval/request、user-questions/request的应答链,绝不干扰审批/提问对话框。数据进制规则(0.3.2):所有数字展示(统计 / 分析 / 弹窗 / 价格)统一按「K M B T」进制——0-99,999 无单位;≥100,000 用 4 位数字 + 单位(千/百万/十亿/千亿),超出部分四舍五入,优先小单位(如 120,050 → 120.1K、980,920 → 980.9K、9999K 下一个是 10.00M);鼠标悬停在含单位的数据上会浮现精确值。此规则只作用于显示,后台程序仍用精确数据计算。
Key 身份 = Provider ID(0.3.2):统计 / 分析 / Token Plan 里的「Key」指全局模型设置中的 Provider 路由(如 scnet / ten / deepseek-official),显示名用该 Provider 的 displayName(如 超算互联网 / DeepSeek),环境变量名(apiKeyEnv,如 SCNET_API_KEY / DEEPSEEK_API_KEY)只作辅助展示;旧账目 / 旧套餐的 key 标签自动迁移兼容。
消耗统计:每次模型调用结束后记录其 usage,并按调用实际使用的 Provider 归集。插件设置页支持 1 年 / 6 个月 / 3 个月 / 1 个月 / 15 天 / 1 周 / 24 小时 / 自定义 时间范围,查看所有 Provider(Key)的 tokens 消耗量(分「缓存输入 / 缓外输入 / 输出」),附带调用次数、按 Provider 的按模型明细与跨 Provider 的按模型消耗总览。
使用分析(顶部导航切换):在 设置 → 任务通知与消耗 页顶部通过导航栏切换到「使用分析」页,分析规定时间范围内各大模型的使用资金状况:① 消耗金额展示——模型消耗金额占比饼图(鼠标悬停饼图块查看该模型具体使用情况:调用次数、各类 tokens、金额与占比)+ 饼图下方各 Provider 消耗额度表;② Token Plan 回本提示——每个设置为 Token Plan 的 Provider 一张子卡片(显示名、名下每个模型的消耗金额、是否回本、每 Credit 对应 tokens、重置当前周期按钮;0.3.3 起重置需输入 4 位数字验证码 + 两次点击不同位置的确认按钮才执行,重置后可「撤回重置」——同样验证码 + 两次确认,撤回恢复周期边界并把重置期间产生的消耗并入当前周期);0.3.4 起每个计费周期有唯一 TID(插件内部身份,不向用户显示),回本只统计当前生效 TID,旧 TID 数据冻结并经卡片「历史」按钮展开查阅;模型调用返回 402/429(Token Plan 错误码) 时该 Provider 标记待确认并弹「需要重置 Token Plan 吗?」,未回应则下次正常调用弹「是否已续费?」,期间消耗计入临时账本(卡片待确认横幅:已续费 / 没续费,回应后并入原周期合并显示);③ 性价比计算——1 元(CNY)能兑换多少 tokens(消耗 Token 总数 ÷ 消耗金额),相同品牌的大模型放在一起比较,Token Plan 的 Provider 只用当前生效计费周期(当前 TID)的 tokens 与订阅费加权摊薄,周期尚无数据时用当前消耗 ÷ 金额并标注「正在统计」;④ 每日费用消耗表——微型日历中代表一天的正方形的填充颜色深度区分每天用量的多少,日历下方列出每个日期的各模型消耗金额(Token Plan 的模型按加权平均计算,加权平均严格限定同一 TID:订阅费 ÷ 该 TID 周期总 tokens × 当天 tokens,同一天同一 Provider 出现在不同 TID 时相加合并为同一 Provider 显示),每个日期的数据默认堆叠,表格一次显示最近 6 天,其余用鼠标滚轮滚动查看;每日记录每个模型行前有颜色图例(0.3.3,与堆叠色条一致),429/402 待确认的临时账本行标「待确认」(0.3.4)。
今日消耗(0.3.3,顶部导航第一位):在 设置 → 任务通知与消耗 页顶部导航栏第一个标签「今日消耗」,展示今天的模型消耗金额占比饼图、今日各模型 tokens 消耗量(缓存输入/缓外输入/输出/合计)与今天的消费情况(总 tokens / 调用次数 / 金额);数据按今日 00:00(本地)至现在的账本计算,金额按当前价格与峰谷档现算。饼图只有一个模型时显示完整 100% 圆环;下方附今日消耗明细——每次模型调用产生消耗的单条记录(时间 / 模型 / Provider / 各类 tokens / 金额,时间倒序)。
顶部导航(0.3.3 顺序):在 设置 → 任务通知与消耗 页顶部通过导航栏按「今日消耗 → 消耗统计 → 使用分析 → 价格编辑 → 设置」切换视图;导航栏 sticky 常驻页面顶部,往下翻阅时右侧出现「回到顶部」箭头按钮,点击平滑回到页面顶部;「设置」页含插件配置(全部开关、弹窗时长、保留天数等)、Token Plan Key 管理(0.3.2,取代原「价格编辑-Token订阅」)、Provider ID 管理(0.3.2)与清除记录数据(安全流程:滑条拖到底 → 输入随机 8 位验证码 → 连续两次确认,才清空全部消耗统计账本;价格/套餐/峰谷/Provider 目录配置保留)。
价格编辑(顶部导航切换):在 设置 → 任务通知与消耗 页顶部点击「价格编辑」导航切换。模型价格跨 Provider 合并——不同 Provider 使用同一模型的调用都按该模型的价格计费,同一模型只有一行价格;未激活自定义的模型默认按内置官方价格目录计费(DeepSeek / OpenAI / Anthropic / Gemini / Kimi / Qwen / GLM / MiniMax / Seed / ERNIE / 混元 等 80+ 模型,双币种,含 DeepSeek 峰谷档;默认价以《主流大模型API官方价格汇总.xlsx》2026-09 为基准),点击「激活自定义」解锁该模型的价格编辑(基础价 + 峰时/谷时子档),「添加模型」可手动加入未出现过的模型。首次启动 / 无数据时,Provider 目录里已配置的模型也会列出,可提前定价。点「保存价格」后立即生效:汇总卡片、按 Provider 表、按模型表与完工通知金额马上按新价格重算。旧账目按低谷价:0.1/0.2 版本记录的旧消耗没有峰谷语义,默认按低谷价计算金额,不会被按峰时价回溯计费。
Token Plan Key 管理(0.3.2,设置页):管理所有 Key(Provider 目录 ∪ 消耗记录 ∪ 已有计划键)的 Token Plan 设置——勾选订阅、订阅费、套餐包含 Credit、套餐起效时间与有效期(默认按 31 天计算,也可选择每月 1 号(UTC+0)自动重置),并按统计金额与订阅费对比判断有没有回本(进度条 + 已回本/未回本)与「换算 1 Credit = ? Tokens」;每个 Key 都可删除原有的 Token plan 属性(删除后不再按订阅计费,消耗记录与金额保留)。周期到期自动归档为「上一轮」,使用分析页可手动重置当前周期(重置后之前的消耗不再计入现在的回本计算,不影响消耗总额统计)。
Provider ID 管理(0.3.2,设置页):插件自维护 Provider 目录(Provider ID + 显示名 + 环境变量名 + 所含模型——显示名与所含模型取自全局模型设置,模型列显示「显示名(模型 ID)」),支持重置(重新抓取全局模型设置 + 账本观测并持久化)与手动删除失效 Provider ID(移出目录 + 删除其 Token Plan,重扫不再复活);首次启动 / 无数据时也会自动抓取已配置 Provider 的 ID / 显示名 / 所含模型,全局模型设置变更或目录退化(只剩账本观测)时自动重扫。
峰谷计价:实行峰谷计价的模型(如 DeepSeek)按每次调用的时刻取「峰时 / 谷时」价,窗口与生效日规则可配置(默认即 DeepSeek 官方规则);0.3.7 起主体峰谷规则支持逐日生效日(工作日/自定义/每天)、自定义时区(默认 UTC+8)与峰时价格方式(倍率/自定义,自定义留空字段按原价)。
安装
推荐:打包成 tarball 安装(Windows 下 dsh plugin add <路径> 会被 pnpm 变成 link: 依赖,而 junction 的真实路径会破坏 Node 的模块解析——tarball 安装可避免):
# 1. 在插件源码目录执行,产出 tarball(文件名形如 dsh-task-notice-<版本>.tgz)
pnpm pack
# 2. 安装:把 <tarball 路径> 替换为上一步产出的文件的实际路径
# (路径含空格时请加引号;要装到非默认 profile 时加 --profile <profile 名>)
dsh plugin add <tarball 路径>
dsh plugin add会先pnpm add安装依赖,再把声明了dsh.bundle.patch的包加入dsh.profile.bundles层栈。完成后重启 DSH(如dsh web)生效——即使该 profile 的patchReload为 live,依赖变更也需要重启。直接用
dsh plugin add <目录>也可以安装,但要用完整功能请用上面的 tarball 方式。
卸载:
dsh plugin remove dsh-task-notice
# 装到了非默认 profile 时,加上对应参数,例如:
# dsh plugin --profile <profile 名> remove dsh-task-notice
使用
完工通知
- 每个顶层会话(非 subagent)完成一轮任务时,浏览器端收到通知帧后在 Web 界面右上角弹出 toast,并按配置经 Web Notifications API 发送 Windows 系统通知(桌面右下角横幅 + 操作中心);内容为本轮消耗(缓存输入 / 缓外输入 / 输出 / 合计)与金额。
- 目标(goal)完成时同样触发系统通知与网页弹窗,显示该目标自创建以来的总消耗。
- 代理发起权限请求或提问(等待你回答)时,也会触发同样的页内弹窗 + 系统通知提醒你处理(通过观察官方 UI 的待处理交互存储实现,不影响对话框本身)。
- 系统通知由浏览器 Web Notifications API发出:需先在插件设置页点击「授权并开启」(浏览器要求用户手势授权;GUI 需运行在 HTTPS 或 localhost 安全上下文)。开启后,Edge/Chrome 会调用 Windows Notification Platform API,把通知交给 Windows 操作中心统一管理与显示——桌面右下角弹出横幅、存入操作中心;点击通知浏览器自动聚焦回本页面。
- 发送时机可选:默认「仅页面后台时发送」(正在看本页时只显示页内弹窗,切走/最小化后才发系统通知);也可取消该选项,让每次完成都发系统通知。
- 网页弹窗自动消失(默认 15 秒,可配),也可手动关闭;页面隐藏期间弹窗挂起,回到页面后继续计时。
消耗统计
打开 设置(Settings)→ 任务通知与消耗,即可:
- 选择时间范围:24小时 / 1周 / 15天 / 1个月 / 3个月 / 6个月 / 1年 / 自定义(自定义支持起止日期时间)。
- 查看汇总卡片(总消耗、调用次数、缓存输入、缓外输入、输出、金额)。
- 查看按 Provider(Key)的表:每个 Provider 一行(显示名 + Provider ID,环境变量名作辅助),列出调用次数、缓存输入、缓外输入、输出、金额与合计;展开可看按模型明细。
- 查看按模型消耗总览:跨全部 Provider 按模型名聚合每个模型的调用次数与各类 tokens 消耗与金额——同一模型名无论出现在哪个 Provider / 提供商下都合并为一行(与价格编辑页「同一模型只有一行价格」、使用分析饼图口径一致);不同版本(不同模型名)各占一行,价格互不影响。
口径:缓存输入 =
cacheReadTokens(命中缓存);缓外输入 =inputTokens(未命中缓存);输出 =outputTokens。消耗按每次模型调用的 provider 上报 usage 记账,并按该调用实际使用的 Provider(全局模型设置路由)归集(Key 身份 = Provider ID,0.3.2;环境变量名如DEEPSEEK_API_KEY只作辅助展示)。
使用分析
在 设置 → 任务通知与消耗 页顶部点击「使用分析」导航切换到使用分析视图,分析规定时间范围内各大模型的使用资金状况(时间范围:24小时 / 1周 / 15天 / 1个月 / 3个月 / 6个月 / 1年 / 自定义,与分析页共用一套查询):
- 消耗金额展示:饼状图展示每个模型的消耗金额占比——鼠标悬停在某个饼图块上浮现该模型的具体使用情况(调用次数、缓存输入 / 缓外输入 / 输出 / 缓存写入 / 推理、金额与占比);饼状图下方用表格显示每一个 Provider(Key)的消耗额度(调用次数、tokens、金额)。
- Token Plan 回本提示:每个被设置为 Token Plan 的 Provider(Key)显示为一张独立的子卡片,卡片显示 Provider 显示名、名下每个模型的消耗金额(按当前计费周期)、是否回本(当前周期消耗金额 ≥ 订阅费)、每个 Credits 对应的 Tokens(当前周期 tokens ÷ 套餐 Credit)以及重置按钮。点「重置当前周期」把当前周期的消耗归档为上一轮、从现在开始新的周期——之前的消耗不再计入现在的回本计算,不影响消耗总额统计。0.3.4 起每个计费周期有唯一 TID(插件内部身份,不向用户显示),卡片只统计当前生效 TID,「历史」按钮可展开查阅全部已冻结周期(起止时间 / 订阅费 / tokens / 金额);检测到 402/429(Token Plan 错误码) 时卡片显示待确认横幅与临时账本(之后产生的消耗,回应前不参与回本),可点「已续费 / 没续费」回应——续费则重置周期(临时账本并入原周期冻结),未续费则仅清除待确认。
- 性价比计算排名:将所有模型的 (Provider · 模型) 全部拿出来一起排名比较(排名名 = Provider 显示名 · 模型名称),按 1 元(CNY)能兑换多少 tokens(消耗 Token 总数 ÷ 消耗金额)从高到低排序。Token Plan 额度分配使用基于 Tokens 消耗的对订阅费用的加权平均:每个模型的金额 = 订阅费 × 该模型 tokens ÷ 周期总 tokens(订阅费按各模型消耗的 tokens 占比摊薄);0.3.4 起只统计当前生效计费周期(当前 TID),不再优先用上一轮周期,周期尚无数据时标注「正在统计」并回退到展示范围的消耗按同一加权规则分配,保证所有模型都参与比较。
- 每日费用消耗表:微型日历中代表一天的正方形的填充颜色深度区分每天用量的多少(颜色越深消耗越多,悬停查看当日金额与 tokens);日历下方显示每一个日期的各模型消耗金额(Token Plan 的模型按加权平均计算,且加权平均严格限定同一 TID:订阅费 ÷ 该 TID 周期总 tokens × 当天 tokens,并标注「加权」;同一天同一 Provider 出现在不同 TID 时,当天各 TID 数据相加合并为同一 Provider 显示),每个日期的数据默认堆叠(日期头 + 该日各模型行 + 堆叠色条);429/402 待确认的消耗按模型价原值展示并标「待确认」;表格部分一次只显示最近 6 天的记录,其余记录用鼠标滚轮滚动查看。
周期口径:Token Plan 的回本 / 性价比 / 每日加权摊薄按计费周期(当前 TID)计算,不受当前选中的展示时间范围影响;饼图与 Provider 额度表按展示范围统计。TID 为插件内部周期身份,不向用户显示。
价格编辑
在 设置 → 任务通知与消耗 页顶部点击「价格编辑」导航切换到价格编辑视图:
- 选择币种(¥ / $)。
- 设置全局默认价格(每 1M tokens:缓存输入 / 缓外输入 / 输出 / 缓存写入 / 推理)——作为未收录官方价且未自定义的模型的兜底单价。
- 模型价格(跨 Provider 合并):页面列出全部 Provider 消耗记录中出现过的所有模型(0.3.2:首次启动 / 无数据时也列出 Provider 目录所含模型,可提前定价),同一模型只保留一行。每张模型卡片显示模型显示名(0.3.7:优先全局模型设置里该 Provider 下该模型的显示名,未配置则用官方目录的「厂商 + 模型名称」,悬停见原始模型 ID)与集体价格——未自定义显示官方价,勾选「自定义价格」解锁编辑;0.3.7 起勾选后可选 自定义(逐字段价)/ 倍率 方式,倍率模式输入倍率即可,实际价 = 该模型默认价格 × 倍率(默认价 = 官方价,未收录回退全局默认价),页面只读展示按当前倍率计算的实际单价。点击卡片展开 Provider ID 子卡片:「使用集体价格」开关(取消勾选编辑该 Provider 专属价,自动预填当前生效价)+ 0.3.7 新增价格倍率(默认 1,对该 Provider ID 使用此模型的最终价整体 × 倍率)。
- 添加模型:在输入框输入模型名称后点「添加模型」,可手动加入未出现在消耗记录中的模型行(同样可激活后自定义价格;查重不区分大小写)。
- Token Plan 设置已移至 设置 → Token Plan Key 管理(0.3.2):本页只编辑模型价格;保存时套餐保持现状、不会被清空。
- 峰谷计价(全局默认窗口):开关、峰时段(UTC 小时)与「仅工作日」配置;默认即 DeepSeek 官方规则(北京时间周一至周五 9:00-12:00、14:00-18:00 为峰时,2026-08-16 16:00 UTC 前按基础价)。
- 主体峰谷规则页(卡片 / 子卡片「设置」按钮进入;0.3.5 引入、0.3.7 重做):为「模型集体」或「模型 × Provider ID」配置峰谷规则——顶部为生效开关与自定义时区(UTC 偏移小时,支持 0.5 步进,默认 8 = UTC+8);每条规则含生效日(工作日 / 自定义(勾选星期)/ 每天)、高峰时段(如
1-4,6-10,按主体时区的小时)与峰时价格方式(倍率 / 自定义——自定义直接填五个峰时单价,留空字段按原价计费);规则自上而下逐条判定,首个命中调用时刻的规则生效,无命中按基础价(Provider 规则优先于集体规则,主体规则优先于官方目录内嵌峰谷档),退出本页即保存此页的一切更改;启用后对应卡片显示「峰谷」徽标与规则摘要。 - 点「保存价格」后立即生效:汇总卡片、按 Provider 表、按模型表与完工通知标题里的金额马上按新价格重算(服务端按每次调用的时刻逐条取峰谷档)。
金额口径 = 各类 tokens × 对应单价 ÷ 1M,价格按「每 1M tokens」计;改价只影响展示与通知标题,不改动原始 usage 账本。
旧账目(0.1/0.2)默认按低谷价:旧版本记录的账目没有峰谷语义,插件对无版本标记的旧条目统一取低谷价(模型未配置峰谷档时即基础价),避免旧数据被按峰时价回溯计费;0.3 起记录的消耗(账目带
ver)按每次调用的时刻取峰/谷档。
内置官方价格目录与峰谷计价
- 默认价以《主流大模型API官方价格汇总.xlsx》(2026-09)为基准:目录中表格已收录的模型一律按表格取值——「输入价格」→ 缓存未命中输入(cacheOut)、「缓存命中价格」→ 缓存命中输入(cacheIn;表格未给出的海外模型按官方缓存折扣惯例补齐:OpenAI GPT-4.1 系列 25% / GPT-5.x 系列 10%、Anthropic 0.1×、Gemini 25%)、「输出价格」→ 输出(output);区间价(如 ¥8~10)取基础起步价;表格未收录的既有官方价条目(GPT-4o / o3 / Claude 4.x / Gemini 2.5 / kimi-k2 / qwen3-max / GLM-5.3 等)保留作为补充。
- 官方价默认生效:未激活自定义的模型自动按内置目录的官方价计费(按当前币种),无需手动填写;目录命中时页面显示官方价明细与来源。
- 币种与折算:表格「国内」厂商(DeepSeek / 阿里云 / 字节跳动 / 智谱 / 月之暗面 / 百度 / 腾讯 / MiniMax / 小米 / 零一万物 / 阶跃星辰 / 百川智能 / 科大讯飞)以人民币官方价入库;「海外」厂商(OpenAI / Anthropic / Google)以美元官方价入库;缺失一侧按固定汇率 1 USD = 7.2 CNY 折算。
- 峰谷计价(DeepSeek 等):目录中 DeepSeek 模型自带峰/谷两档官方价(工作日 9:00-12:00 / 14:00-18:00 价格翻倍,峰 = 2× 谷);统计与通知金额按每次调用的时刻逐条取档计费。
- deepseek-flash 与 deepseek-v4.1-flash 同价(0.3.6):目录为 deepseek-v4.1-flash 增加
deepseek-flash别名,模型名 deepseek-flash 的调用按 deepseek-v4.1-flash 官方价计费(缓存命中 ¥0.02 / 缓外输入 ¥1 / 输出 ¥4,每 1M tokens)。 - 价格目录数据截至 2026-09,厂商可能调价;修改任意价格不会影响其他模型,历史金额随新价格即时重算。
插件配置
打开 设置 → 任务通知与消耗 页,在顶部导航切到「设置」视图即可调整:
| 字段 | 说明 | 默认 |
|---|---|---|
| 插件总开关 | 关闭后停止通知与记账 | 开 |
| 每轮任务弹窗 | 每完成一轮任务即弹窗 | 开 |
| 目标完成弹窗 | 目标(goal)完成时弹窗 | 开 |
| 权限请求提醒 | 代理请求权限时通知你处理 | 开 |
| 提问提醒 | 代理提问需要你回答时通知 | 开 |
| 弹窗时长(秒) | 弹窗自动消失秒数(3–120,滑块) | 15 |
| 浏览器系统通知 | 经 Web Notifications API 发送系统通知(需页面授权;Edge 横幅 + 操作中心) | 开 |
| 仅后台时发送 | 页面在前台时只显示页内弹窗,切到后台/最小化后才发系统通知 | 开 |
| 账本保留天数 | 消耗账本保留天数(1–3650,滑块) | 365 |
清除记录数据(0.3.1):设置页底部可清除全部 Token 消耗统计账本。为防误操作,必须依次完成:① 拖动图形验证码滑块(按住滑块拖到最右端,松手后变绿锁定);② 输入随后出现的随机 8 位英文数字验证码(区分大小写,可点「换一个」);③ 连续点击两次「确认清除」。清除后「消耗统计」「使用分析」与完工通知金额全部归零并自动刷新,价格 / 套餐 / 峰谷配置不受影响。若宿主进程尚未重启(remote 无 clearUsage),面板会提示重启 DSH。
数据存储
- 账本:
$DSH_HOME/storages/task-notice/usage.json(追加式,原子写,按保留天数裁剪;0.3.1 起每条账目带ver标记,旧账目按低谷价计费;0.3.1 修复 Key 归因后,启动时会按真实路由配置重算一次历史记录的归属;0.3.2 起 Key 身份 = Provider ID,账本旧 key 标签在读取侧自动迁移)。 - 配置覆盖:
$DSH_HOME/storages/task-notice/config.json(由设置页写入,含价格、Token Plan(0.3.2 起以 Provider ID 为键;0.3.4 起每个周期含内部 TID、冻结历史 cycles、429/402 待确认 pending 与撤回快照 _undo)、峰谷配置与插件自维护的 Provider 目录(0.3.2,providers段:list + removed 黑名单);0.3.7 起含顶层pricingVersion标记——价格配置结构版本,旧版本价格数据迁移(独立脚本)据此只在升级后第一次启动执行一次)。
开发
lib/
index.js 宿主插件入口(name / apply;零顶层外部 import,依赖解析失败只停用本插件)
store.js 消耗账本(usage.json,原子写、保留裁剪)
accounting.js llm/stream 瀑布捕获(usage 块 → 记账;流抛错时识别 402/429/QUOTA 等 Token Plan 错误码,0.3.4)
fold.js 会话日志折叠(turn/end、goal/change → 通知帧)
notify.js 通知枢纽(推送队列 + 流订阅)
keys.js provider → 凭证引用(API Key)解析(按真实路由配置:llm-* 命名空间 providers[route].apiKeyEnv)
providers.js Provider 目录(0.3.2):从全局模型设置抓取 Provider ID / 显示名 / 环境变量名 / 所含模型(0.3.7:模型条目带显示名 name,目录重扫判定,模型归属 Provider ID 判定 providerOfModel);Key 身份归一、旧 env 键 → Provider 迁移
service.js taskNotice RPC 服务(getHealth/getConfig/updateConfig/getUsageStats/getUsageAnalysis/resetPlanCycle/undoPlanCycle/renewPlanCycle/dismissPlanPending/clearUsage/subscribeNotifications/getPriceCatalog/getProviderDirectory/refreshProviderDirectory/deleteProviderId)
typert.host.js 手动注册的 Typert 清单工厂(zod v4 编解码)
pricing.js 价格计算(模型跨 Provider 合并 / 官方价默认 / 大小写不敏感查找 / 倍率模式与 Provider 倍率 / 旧账目低谷价 / 峰谷 v2 取档(生效日+时区+峰时价格方式) / 金额折算 / Token Plan 计费周期)
pricing-migrate.js 0.3.7 旧版本价格配置迁移(独立脚本:升级首启自动把旧峰谷规则 / 倍率字段应用到 v2 结构,pricingVersion 标记只执行一次)
pricing-catalog.js 内置官方价格目录(80+ 主流模型,双币种 + 显示名,峰谷子档;默认价以《大模型API定价对比(4).csv》为基准,由 tools/build-catalog.mjs 生成)
analysis.js 使用分析计算(模型聚合 / 消耗聚合严格按 Provider 目录归属 / 品牌读目录显示名(0.3.7)/ Token Plan 计费周期轮换与重置 / TID 周期身份与冻结历史 / 429/402 临时账本 / 性价比(0.3.7 修复:计划 Provider 按模型调用量 ÷ 加权金额)/ 每日同 TID 加权平均摊薄)
client.js 浏览器端(顶部提示横幅(0.3.6:通知权限一键授权 / 未定价模型点击直弹价格编辑弹窗)+ 完工弹窗 + 今日消耗 + 消耗统计 + 使用分析(含 Token Plan 重置保护/撤回 + 429/402 提示弹窗/续费确认 + 历史周期 + 待确认横幅)+ 价格编辑(0.3.7:模型显示名 / 自定义-倍率方式 / Provider 价格倍率 / 峰谷规则 v2)+ 设置:插件配置 / Token Plan Key 管理 / Provider ID 管理 / 清除数据)
cordis.patch.yml 本包的 profile 层补丁(挂载一行)
依赖纪律:宿主入口零顶层外部 import(只 import Node 内建模块与自身模块);运行期可用的服务(session/settings/credentials/typert/loader/llm)一律经 ctx 访问。唯一的外部包 zod(Typert 编解码)只在 lib/typert.host.js 顶层 import,而该文件由 typert-loader 直接加载、不经宿主入口——即使依赖解析失败(如 Windows link: 安装的 junction realpath 陷阱),也只让本插件的 Typert 清单注册失败,DSH 照常启动。
License
MIT
Operate deliberately
Install and manage
Prerequisites and target Profile
Target: Web Profile
Delivery: Dsh Bundle Git — Haoxiang-Fant/dsh-task-notice#193ececa4c0b6c3b93fc78940beeeb4d904e937d。
Verify, update, and remove
Show lifecycle commands
dsh plugin --profile web listCompatibility and access
DeepSeek Harness bundle for web client and host: >=0.1.0-rc.5; Node.js >=20。
Review compatibility evidence ↗
Risk facts
Stores usage records and configuration under DSH_HOME, including pricing and Token Plan settings.
Evidence ↗Can request browser notification permission and send system notifications when enabled.
Evidence ↗Evidence and editorial reviewManifest, Bundle patch, distribution and freshness
Immutable evidence
Review status and source activity
Install from the pinned Git bundle, then review its local usage-retention and price settings before relying on cost figures.
AI reviewed Sep 14, 2026, 2:13 PM UTC。GitHub facts last checked Sep 14, 2026, 2:13 PM UTC。
No material source change has been recorded since this evidence baseline.