DeepSeek Harness Hub
← 返回列表

yuye05/dsh-monitor

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

Windows 桌面悬浮窗,实时显示 DeepSeek 官方用量余额/今日消费/模型 Tokens/请求数+…

暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/9/14 · 已提供中文文档

Windows 桌面悬浮窗,实时显示 DeepSeek 官方用量(余额/今日消费/模型 Tokens/请求数)+ 本地缓存命中统计

综合分
31
GitHub 分
31
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add yuye05/dsh-monitor
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

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

npm 包deepseek-monitor(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 07:37:17

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DeepSeek Monitor 悬浮窗

一个 Windows 桌面悬浮小窗:启动 Claude Code / dsh 时自动弹出,实时显示 DeepSeek 开放平台 和 智谱 GLM 平台 的官方用量(余额、今日消费、模型 Tokens、请求数)和本地缓存命中统计。

数据以官网为准(Playwright 抓 platform.deepseek.com/usage),本地日志只做模型分解与 7 天图表,避免"本地统计 ≠ 官方"的偏差。GLM 部分官网只能提供余额与月消费(智谱官网无 per-model token 明细),token 用量走本地 jsonl。

示意

⚠️ 定位说明:这是个人工作流工具,不是通用产品——它深度绑定作者自己的环境。clone 前请先确认以下前提都满足,否则核心功能(官方数据)起不来:

- Windows 10+(依赖系统 WebView2 运行时与已装的 Edge)
- 使用 Claude Code 且会话日志落在 ~/.claude/projects//.jsonl(本地命中率/7 天图全靠它;不用 Claude Code 的话这些板块显示空)
- 有 DeepSeek 开放平台账号,且愿意手动登录一次抓取会话(node fetch_official.js --login)
- (可选,显示 GLM 需) 有 智谱开放平台账号,且愿意登录一次(node fetch_glm.js --login)
- 本机可运行 @playwright/test(npm install 或全局安装)

创作缘由

DeepSeek V4 系列在 2026-08-17 起大幅涨价并改为峰谷定价——高峰时段费用直接翻倍,跑模型的成本一下子敏感起来。涨价之后,"得盯着点花费"就成了日常。但每次想看余额和用量,都得打开浏览器登录官方平台翻页面——重复几次就烦了。

后来又把 智谱 GLM-5.3-Flash 接入模型池(编码/agent 强、原生多模态、便宜),于是这个悬浮窗也一并把 两个平台 的余额和用量收进来,启动即见,随时知道钱花在哪儿。

功能

- 🪟 无边框置顶小窗,贴屏幕右上角;拖动顶部空白/标题栏即可移动(.drag-zone 拖拽区,按钮在兄弟节点不被拖拽劫持)
- 📁 点击外部自动收起:点浮窗之外 → 收成顶部一根 40px 居中窄条(纯色背景、隐藏按钮,仅 logo + 标题 + ▾);点击窄条 → 一键展开回完整界面(不悬停自动展开)
- 💰 官方余额 / 当日消耗 / 今日 Tokens(DeepSeek)
- 🔥 智谱 GLM 余额 + 本月消费(GLM 卡片下方独立条)
- ⚡ 三模型卡片:V4.1 Flash / V4 Pro / GLM-5.3 Flash(DeepSeek 走官网,GLM 走本地 jsonl)
- 📊 最近 7 天缓存命中明细柱状图
- 🔄 手动刷新(每次约 8s,headless Edge 抓官网)
- 🎨 深色「能源仪表舱」主题(可切浅色):深墨底 + 暖金弧环余额表 + 冷青缓存命中 + 等宽数字;标题栏主题按钮深浅切换并记忆(localStorage)
- 📀 余额弧环:余额外的 260° 弧环 = 今日消耗占预算比例(阈值来自 config 的 today_cost_alert_threshold),越阈值转红

环境要求

| 依赖 | 版本 | 说明 |
|------|------|------|
| Python | 3.10+ | pip install -r requirements.txt(pywebview) |
| Node.js | 18+ | 官网抓取器用 Playwright |
| Windows 10+ | — | pywebview 依赖系统 WebView2 运行时 |
| Microsoft Edge | 已装 | 抓取复用系统 Edge(channel: msedge) |

安装

1. Python 依赖
pip install -r requirements.txt

2. Node 依赖(官网抓取器)
npm install          # 安装 @playwright/test

3. 配置文件
cp config.example.json config.json
编辑 config.json,填入你的三条路径:
node_path         npm 全局 node_modules(@playwright/test 所在)
credentials_file  DeepSeek API key 文件
claude_projects   Claude Code 会话 jsonl 目录

首次登录

官网抓取需要平台登录会话,首次执行弹窗登录一次:

DeepSeek 开放平台
node fetch_official.js --login   # 弹窗登录一次,会话存 .edge-profile/

智谱开放平台(仅当要显示 GLM 余额)
node fetch_glm.js --login        # 弹窗手机号+验证码登录一次,会话存 .glm-profile/

之后静默抓取:

node fetch_official.js   # 输出 DeepSeek 官方今日 JSON
node fetch_glm.js        # 输出智谱余额 + 月消费 JSON

启动

python launcher.py    # 触发入口:单实例、分离进程启动 app.py
python app.py         # 直接启动(debug 用)

自动触发

三种方式任选:

1. Claude Code:settings.json 加 SessionStart hook
{ "matcher": "startup", "hooks": [{ "type": "command", "command": "python C:\\path\\to\\deepseek-monitor\\launcher.py", "async": true }] }

2. dsh(手动脚本):在 ~/.dsh/scripts/start-dsh-web.ps1 末尾加
markdown
Start-Process -FilePath 'python' -ArgumentList 'C:\path\to\deepseek-monitor\launcher.py' -WindowStyle Hidden
3. dsh 桌面版:dsh-desktop/main.js 的 whenReady() 里调 launcher.py 后重新打包(见该仓库)。

数据说明

- 以 DeepSeek 官方为准:余额 / 今日消费 / Tokens / 请求数 / per-model 来自 platform.deepseek.com/usage(抓“今天”+“模型”视图)。官网 API 只有 /user/balance,没有用量端点,必须爬网页。per-model 解析走 lib/parse_official.js 的通用遍历(按页面结构切段),不写死模型名。
- 模型改名(2026-09-10):DeepSeek 把 V4.1 Flash 的 API 模型 ID 由 deepseek-v4-flash-vision-exp 改为 deepseek-flash,旧名 deepseek-v4-flash / deepseek-v4-flash-vision-exp 已下线,请求由 V4.1 Flash 提供服务并按 Flash 价计费。data/prices.py:normalize_model() 会把旧名折叠到规范名,历史用量不丢(lifetime 累计连续)。
- 智谱 GLM:官网 open.bigmodel.cn/finance-center/finance/overview 只能抓 余额 + 本月总消费(智谱财务页无 per-model token 明细,费用明细页“暂无数据”)。GLM 的 token 用量仍走本地 jsonl。
- 本地分解:data/parse_usage.py 聚合 Claude Code 会话 jsonl,提供模型卡片的缓存命中率与 7 天图表。不再把缓存命中重读混进“用量”(缓存复用 98% 会把数字撑爆)。
- 费用折算:data/prices.py 按消息时间戳分段计价,闪电系三段价目均已内置:
- 2026-08-17 起峰谷定价(flash 空闲 0.05 / 1.5 / 4.5 元每百万 token)
- 2026-09-10 12:00 起 flash 系列降价(空闲 0.02 / 1 / 4,高峰为其 2 倍)
- 高峰时段 = 北京时间周一至周五 9-12、14-18 点(周末全天空闲)

GLM-5.3-Flash 为智谱中国区固定价(输入 0.8 / 输出 2.8 / 缓存 0.23 元,无峰谷)。
- 若官网抓不到(未登录/超时),余额回退 DeepSeek API(智谱无公开 API 则显示 “--”),其余字段如实显示 “--”,不编造。

目录结构

├── app.py               # pywebview 主窗口 + 本地数据服务(127.0.0.1:18773)
├── launcher.py          # 触发入口:单实例检查 + 分离启动 app.py
├── fetch_official.js    # DeepSeek 官网用量抓取器(Playwright + Edge profile)
├── fetch_glm.js         # 智谱 GLM 财务抓取器(余额 + 月消费,.glm-profile)
├── config.example.json  # 配置模板(复制为 config.json 后填写)
├── lib/
│   └── parse_official.js # 官网用量文本解析(通用遍历,不写死模型名)
├── tests/
│   └── parse_official.test.js  # 上述解析器的回归测试(node 直接跑)
├── data/
│   ├── config.py        # 读取 config.json / 默认值
│   ├── prices.py        # DeepSeek 分段价目 + 模型名归一化 + GLM 固定价
│   ├── fetch_balance.py # DeepSeek /user/balance(API key 只读不落盘)
│   └── parse_usage.py   # jsonl 聚合 → 模型卡片 + 7 天图表
└── ui/                  # HTML/CSS/JS(深色能源仪表舱,可切浅色)

回归测试

解析器最容易在“官网改版/改模型名”时静默失灵,因此内置了带真实页面文本 fixture 的测试:
bash
node tests/parse_official.test.js

它用 2026-09-11 从官网模型视图抓下的 body.innerText 原文做输入,断言能解析出各模型用量,并交叉校验 per-model 之和 == 页头官方总量。

安全

- 🔑 DeepSeek API key 只从 credentials_file 内存读取,不打印、不落盘、不进日志
- 🍪 .edge-profile/(DeepSeek 登录会话)与 .glm-profile/(智谱登录会话)已被 .gitignore 排除,不会入库
- 默认配置基于 ~ 推导,config.json 里是你的个人路径——同样被 gitignore

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群