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

API 余额看板 133563825as-ai/dsh-api-dashboard

DeepSeek Harnessv1.7.0
133563825as-ai24 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness 多平台 API 余额 / 用量与子代理消耗看板,支持手机、平板、电脑 Web GUI

40.4/100
综合分
15
GitHub 星标
1,411
npm 周下载
—/5
用户评分

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

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

状态速览

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

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

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

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

✓npm 包dsh-api-dashboard @ 1.7.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖要求 ^0.1.0-rc.6 || ^0.2.0-rc.2 · 最新 0.2.1-rc.5 兼容
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 17:42:04

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 52 处,展示前 26 条)
  • 读取本地文件
    src/index.js:96
    const pkg = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'))
  • 读取本地文件
    src/index.js:107
    const pkg = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'))
  • 读取本地文件
    src/index.js:135
    const pkg = JSON.parse(readFileSync(join(SELF_ROOT, 'package.json'), 'utf8'))
  • 发起网络请求
    src/index.js:254
    const res = await fetch(url, {
  • 读取本地文件
    src/index.js:327
    && existsSync(join(legacyReal, 'package.json'))
  • 读取本地文件
    src/index.js:328
    && !existsSync(join(legacyReal, '.git'))) {
  • 读取本地文件
    src/index.js:334
    if (!existsSync(join(dir, 'package.json'))) throw new Error(`target missing: ${dir}`)
  • 写入本地文件
    src/index.js:351
    mkdirSync(tmpBase, { recursive: true })
  • 发起网络请求
    src/index.js:360
    const res = await fetch(remote.tarballUrl, { signal: AbortSignal.timeout(timeoutMs) })
  • 写入本地文件
    src/index.js:362
    writeFileSync(tgzPath, Buffer.from(await res.arrayBuffer()))
  • 写入本地文件
    src/index.js:365
    mkdirSync(extractDir, { recursive: true })
  • 执行外部命令固定命令
    src/index.js:366
    execFileSync('tar', ['xzf', tgzPath, '-C', extractDir, '--strip-components=1'], { timeout: 20000 })
  • 执行外部命令来自配置/变量
    src/index.js:385
    execFileSync(process.execPath, ['--check', join(extractDir, rel)], { timeout: 10000, stdio: 'ignore' })
  • 执行外部命令固定命令
    src/index.js:395
    execFileSync('tar', ['czf', `${dir}.preupdate-${stamp}.tar.gz`, '-C', dirname(dir), basename(dir)], { timeout: 20000 })
  • 删除本地文件递归
    src/index.js:404
    if (!keep.has(entry)) rmSync(join(dir, entry), { recursive: true, force: true })
  • 删除本地文件递归
    src/index.js:417
    rmSync(dir, { recursive: true, force: true })
  • 写入本地文件
    src/index.js:418
    mkdirSync(dir, { recursive: true })
  • 执行外部命令固定命令
    src/index.js:419
    execFileSync('tar', ['xzf', bakTar, '-C', dirname(dir)], { timeout: 20000 })
  • 删除本地文件递归
    src/index.js:426
    rmSync(tmpBase, { recursive: true, force: true })
  • 执行外部命令固定命令
    src/index.js:467
    execFileSync('flock', ['-n', file, 'true'], { timeout: 3000, stdio: 'ignore' })
  • 写入本地文件
    src/index.js:595
    mkdirSync(dirname(STATE_FILE), { recursive: true })
  • 写入本地文件
    src/index.js:598
    writeFileSync(STATE_FILE + '.tmp', JSON.stringify(merged, null, 2), { encoding: 'utf8', mode: 0o600 })
  • 发起网络请求
    src/index.js:1617
    return fetch(url, { method, headers, signal: AbortSignal.timeout(timeoutMs) })
  • 发起网络请求
    src/index.js:1900
    const resp = await fetch(base + (qs ? '?' + qs : ''), {
  • 发起网络请求
    src/index.js:1931
    const resp = await fetch(ALERT_BRIDGE_PROBE,
  • 发起网络请求
    src/index.js:4020
    const resp = await fetch(
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

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

界面预览

6 张 · 点击查看大图

功能亮点

  • 多平台余额查询
  • 用量与消耗展示
  • 多端WebGUI访问

多平台 API 余额看板插件 for DeepSeek Harness Web GUI

v1.7.02026-10-10
· 1.7.0:兼容、更新保护与已验收设置修复 · 适配 DSH 0.2.0-rc.2;本轮实际验收为 Android DSHA Web、Node24。保留原0.1.x声明范围,但不宣称旧宿主或全部桌面系统都已完整实测。 · 手机、平板、电脑浏览器响应式布局;子代理可切换“输入框下胶囊”或“看板分区”,详情改为单击分行显示;模型品牌放在子代理上方。 · 修复设置保存/读取响应提前关闭:控制JSON保持原始字节发送。用户真机确认正常,157次设置/更新读写均200并正常结束;丢回复仅只读确认,不重放未知结果。 · 修复身体大小持久化竞态、挂件设置页预览、开关回弹、看板留白与深色残留;当前版本优先本地显示。 · 更新前显示摘要、适配对象和范围;正式频道只跟已发布Release,服务端复核兼容性/版本/下载包,未知或不兼容拒绝覆盖。 · 修复轮询卸载代际、慢响应体超时、冷缓存、fork今日重复计费;官方DeepSeek读取已配置凭据引用,不复制Key。 · 价格继续手动维护,未加入自动价格更新。新增GPT-6.1 Sol、GPT-6 Sol/Luna、Claude Opus/Sonnet/Haiku5.5标准档参考价(models.dev与LiteLLM一致,但本次未直接取得官方原文)。长上下文、快档、地域、Batch等不在基础条目完整覆盖。 · Gemini3.8 Flash已有;Gemini4 Argon已找到官方发布信息,但本次未取得可核实API单价,不填猜测价。Carbon和Nano Banana2.1的状态及计费限制见价格文档。 · 安装 Android DSHA推荐下载下方 dsh-api-dashboard-1.7.0.tgz,使用原生插件管理器导入后重启Web GUI。电脑Web profile可执行 dsh plugin --profile web add dsh-api-dashboard;手机裸npm安装的既有布局限制见README,不当作通用保证。 35个发布前测试脚本通过,新增真实HTTP 48次读写回归。保持零dependencies,无preinstall/install/postinstall/prepare生命周期脚本。 价格证据与范围: 市场收录与权限: · 权限与边界 插件读取已有凭据、访问平台/自定义余额API、写本地状态,并能备份替换本插件目录进行自更新;不修改DSH官方组件或清除对话。市场收录不代表独立安全审计。自更新仍使用备份后覆盖机制,不宣称断电原子性。
v1.6.92026-09-29
v1.6.9 — 数字输入框「旧数字删不掉」+「测试提醒说发送失败」的真因分诊(真机反馈两条)。 ① 数字框必须先写新数字才能删掉旧的(维护者原话)。三个数字框(刷新间隔 / 今日花销 / 重复提醒间隔)都在 onChange 里当场夹取:Math.min(Math.max(Math.round(Number(e.target.value) || 0), 0), 168) —— 而 Number("") === 0,用户把旧数字删空的那一瞬 state 就变成 0,受控 input 立刻把 0 写回、 光标被顶到末尾,旧数字根本删不掉。 → 拆成两步:输入期只剔非数字字符并允许空串(numberDraft,空 = 你正在改), 数值夹取推迟到失焦/保存(settleNumber)。顺手堵掉一个静默后果:保存时空串走 Number(x) > 0 ? x : 0 会变成 0 = 关掉重复提醒(alertRepeatHours)与关掉今日花销提醒 —— 现在空串一律回落到字段默认值 (重复间隔 6 小时 / 刷新 5 秒 / 阈值 50、10),绝不静默关闭。 ② 「发送测试提醒」显示发送失败 —— 桥上没毛病,是服务端还是旧版本。 真机实测(App 在前台):/app/notify → 200 {"result":"FOREGROUND_SKIP"}、/app/toast → 200 {"result":"OK"}, v1.6.8 的 deliverAlert 走前台转 App 内提示这条路可以成功。 但插件文件更新到 1.6.8 之后、dsh 还没重启时:客户端半身已经刷新成 1.6.8(有按钮、有间隔输入框), 服务端半身仍在跑旧进程 —— 旧进程里根本没有 /api-dashboard/alerts/test 这个路由, POST 打空 → 客户端一律显示「发送失败」,人就被带偏到系统通知设置那边去了。 → 现在把「接口没打到」(404 / 响应不是 JSON)与「真的投递失败」分开报: 前者提示「服务端仍是旧版本(重启 dsh 后这个按钮才可用)」,后者才让人去查通知权限。 回归钉子:新增 test/test-number-input.mjs(32 条)—— 纯函数边界、删除动作的中间态、三处输入框的接线(onChange 不许再夹取、必须有 onBlur), 以及渲染级复现:真的把 SettingsModal 挂起来、拿到初值 6 的那个框、手动触发 onChange({value:""}), 断言交给 setState 的是空串而不是 0(旧实现在这一条上必红)。 test-alert-plan.mjs 新增 C12/C13(stale 分诊 + 中英字典成对)、C2 改为钉「保存的是规范化后的值」; test-v141-fixes.mjs 的 C1 拆成三条(输入期不夹取 + 失焦夹取下限仍是 1 秒),1 秒下限这条红线未动。
v1.6.82026-09-29
v1.6.8 — 余额告警「没反应」的四个真问题(真机反馈:铃铛一直不响 / 响了也看不到)。 ① 前台被桥跳过,却记成「已发送」:DSHA App 在前台时 /app/notify 回的是 200 + {"result":"FOREGROUND_SKIP"}(桥主动跳过,避免打断你正在看的界面)—— 旧实现只看 HTTP 200, 于是把它也计入 sent,设置面板显示「通道可用 / 已送达」,而你屏幕上什么都没有。 真机那条 15:30 的余额告警就是这么"消失"的,排查时还被这个假成功带偏到系统通知设置方向。 → 现在按响应体分类(classifyBridgeReply):前台跳过 → 自动改发 App 内提示(Toast), 三种结果分开计数(sent 进通知栏 / skipped 前台转内提示 / failed),面板如实展示。 ② 错过一条就彻底安静:旧策略是「跨档只提醒一次」。新增重复提醒间隔(小时)设置 (默认 6 小时,0 = 关闭、回到旧行为;上限 168 小时)—— 余额停在预警档时按间隔再提醒, 文案会带上「(仍未处理,再次提醒)」。判定抽成纯函数 planAlert(跨档立即发 / 低档按间隔重复 / 回到正常不发)。 ③ 重启就重新轰炸:告警状态(上次档位 + 上次提醒时刻)改为持久化(alertState), 于是「6 小时冷却」在重启后依然有效,不再每次重启都把低余额平台重发一遍。 ④ 收不到时不知道该去哪开:新增 「发送测试提醒」按钮(POST /api-dashboard/alerts/test, 前台自动落到 App 内提示,前后台都能自测),并在设置面板写明引导 —— 系统设置 → 应用 → DSHA → 通知:打开「允许通知」;部分机型还要在「提醒方式 / 通知类别」里选一项 (如横幅与声音),否则系统会把通知静默丢掉(真机实测:只开总开关、没选提醒方式时,通知栏一条都收不到)。 回归钉子:新增 test/test-alert-plan.mjs(34 条:planAlert 行为 / 桥响应分类 / 间隔消毒 / 中英字典成对 / 服务端字段与路由);test-v146-fixes.mjs 里那两条「只在跨档告警」的旧钉子 按下线处理并换成新契约,test-v141-fixes.mjs 路由闸门计数 13 → 14。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-api-dashboard · 哦鲸鲸 开源(MIT)的 DeepSeek Harness 专用插件:多平台 API 余额 / 用量看板 —— 在 Web GUI 输入框下方实时显示各平台余额与本会话估算消耗。 手机、平板和电脑浏览器共用一个 Web 插件。 | 场景 | 形态 | | Android DSHA / 手机 | 输入框下余额胶囊、底部看板、单击子代理详情 | | 平板 | 居中面板,设置与看板内部滚动 | | 电脑浏览器 | 居中对话框、桌面两列卡片,鼠标操作 | 兼容说明:本轮实际验收为 DSH 0.2.0-rc.2、Node 24、Android DSHA Web;保留 0.1.x 声明范围,但旧宿主、各桌面系统未做本轮完整真机验收。电脑端这里指 Web GUI 的响应式布局,不能等同官方 Desktop profile 已完整验证。 ⚠️ 安装或维护本插件之前,请先读 AGENTS.md —— 数据准确性红线、踩过的坑、安装姿势对照都在那里。 本插件深度绑定 DeepSeek Harness 的客户端与宿主 API,只能在 DSH 里运行(手机版 DSHA 与桌面版同框架)。 界面预览 余额条常驻在输入框下方;会话里有子代理时,下面会多一行可横滑的消耗胶囊(顺序 = 创建顺序,单击看详情;可关闭并移到看板分区)。
展开完整文档(README 剩余 1 节)
dsh-api-dashboard · 哦鲸鲸

开源(MIT)的 DeepSeek Harness 专用插件:多平台 API 余额 / 用量看板 —— 在 Web GUI 输入框下方实时显示各平台余额与本会话估算消耗。

手机、平板和电脑浏览器共用一个 Web 插件。

| 场景 | 形态 |
| Android DSHA / 手机 | 输入框下余额胶囊、底部看板、单击子代理详情 |
| 平板 | 居中面板,设置与看板内部滚动 |
| 电脑浏览器 | 居中对话框、桌面两列卡片,鼠标操作 |

兼容说明:本轮实际验收为 DSH 0.2.0-rc.2、Node 24、Android DSHA Web;保留 0.1.x 声明范围,但旧宿主、各桌面系统未做本轮完整真机验收。电脑端这里指 Web GUI 的响应式布局,不能等同官方 Desktop profile 已完整验证。

⚠️ 安装或维护本插件之前,请先读 AGENTS.md —— 数据准确性红线、踩过的坑、安装姿势对照都在那里。
本插件深度绑定 DeepSeek Harness 的客户端与宿主 API,只能在 DSH 里运行(手机版 DSHA 与桌面版同框架)。

界面预览

余额条常驻在输入框下方;会话里有子代理时,下面会多一行可横滑的消耗胶囊(顺序 = 创建顺序,单击看详情;可关闭并移到看板分区)。

| 看板(点余额条打开) | 大肥鱼挂件(可拖拽 / 吸附边缘) |
| 设置 · 基础 | 设置 · 大肥鱼 |

功能

- 三层 UI:状态条(输入框下方)→ 看板抽屉(点状态条)→ 平台详情(点卡片 ⓘ)
- 峰谷趣味计费:DeepSeek 工作日 9:00-12:00 / 14:00-18:00 显示 ☀️ 梁文峰,其余时间与周末 🌙 梁文谷(半价)
- 三色阈值灯:绿 / 黄 / 红,阈值可自定义;余额首次跌破预警线自动推送通知
- 一键去充值:平台详情里直接打开该平台的开放平台 / 充值页。手机版走宿主桥调系统浏览器(GUI 在 webview 里,window.open 开不出外部浏览器),桌面 / 浏览器回退新标签页
- 会话消耗估算:按模型单价折算;混合币种两段显示 ~¥3.40+$12.50,不做汇率折算合并
- 子代理消耗:子代理单独成行、可横滑,单击查看分行详情;关闭胶囊后移到看板分区
- 大肥鱼挂件(可选):屏幕边缘一只可拖拽的互动挂件,纯娱乐,不显示任何金额
- 自定义接入:中转站自动探测余额接口;自建接口支持点分路径手动映射
- 配置持久化:阈值 / 币种 / 刷新间隔(1~60 秒)/ 自定义条目都存本地状态文件,重启不丢
- 一键自更新:设置面板内检查并安装新版本(下载 → 校验 → 备份 → 替换 → 失败回滚)

支持平台

| 分组 | 平台 |
| 国内 | DeepSeek、智谱 GLM、Kimi、阶跃星辰、硅基流动、MiniMax |
| 海外 | OpenRouter、Novita AI、xAI Grok |
| 其他 | 自定义中转站(自动探测余额接口)、自定义模型(手动映射) |

OpenAI / Claude / Gemini / Groq / Mistral / Together 等未开放余额查询接口,面板会如实显示「未开放」,不会伪造数字。智谱按量付费账户同样没有公开余额接口(显示中性「未开放」,不标红)。

安装

Android DSHA 新用户推荐:在 GitHub 正式 Release下载 .tgz,通过 DSHA 原生插件管理器导入,然后重启 Web GUI。1.7.0 已在当前 DSHA 以归档导入方式验收;不需要手动复制 Key。

电脑 Web profile:dsh plugin --profile web add dsh-api-dashboard,然后重启 dsh web。手机裸 npm 安装可能遇到的布局问题见下面的旧版源码安装说明,不把桌面命令当成手机通用保证。

手机版 DSHA(Android)—— 实测可用,照抄即可

1. 下载源码
curl -L "https://codeload.github.com/133563825as-ai/dsh-api-dashboard/tar.gz/refs/heads/main" \
-o /tmp/dsh-api-dashboard.tar.gz

2. 解压到固定位置(--strip-components=1 必须带)
rm -rf /root/dsha-api-dashboard && mkdir -p /root/dsha-api-dashboardbash
tar xzf /tmp/dsh-api-dashboard.tar.gz -C /root/dsha-api-dashboard --strip-components=1

3. 建 node_modules 软链 —— 这一步不能省(插件的 peer 依赖由宿主 DSH 提供)

ln -sfn /usr/local/lib/node_modules/@deepseek-ai/dsh/node_modules /root/dsha-api-dashboard/node_modules

4. 用 link: 装进 web profile(文件保持真实路径,客户端 UI 才能被框架找到)

dsh plugin --profile web add link:/root/dsha-api-dashboard

5. 重启 dsh web

仓库根目录的 install.sh 把上面 5 步做完了:sh install.sh。

桌面版同理(路径换成你自己的)。npm 一行命令 dsh plugin --profile web add dsh-api-dashboard 在桌面版通常可用,但在手机版 DSHA 上装完客户端 UI 不会出现 —— 原因与逐条实测对照见 AGENTS.md。

升级

1. 插件设置面板 →「检查更新」→「一键自更新」,重启 dsh web 生效;
2. 或重跑上面第 1、2 步覆盖源码目录后重启;
3. 或 dsh plugin --profile web remove dsh-api-dashboard 后重新安装。

配置

在设置面板里调即可(保存后写入 ~/.dsh/dsh-api-dashboard.json)。
也可以直接写 cordis.patch.yml: yaml
- id: dsh-api-dashboard
config:
safeThreshold: 50 # 绿色阈值 warnThreshold: 10 # 黄色阈值(低于它变红) currency: CNY # 主计价货币 overseasCurrency: USD # 海外模型计价:follow | USD | CNY refreshIntervalMs: 300000 clientPollIntervalMs: 30000 timeoutMs: 8000

API Key 自动读取,无需写进配置:先查环境变量(DEEPSEEK_API_KEY / ZHIPU_API_KEY / MOONSHOT_API_KEY / STEPFUN_API_KEY / SILICONFLOW_API_KEY / MINIMAX_API_KEY / OPENROUTER_API_KEY / NOVITA_API_KEY / XAI_API_KEY),再查 DSH 凭证系统 ~/.dsh/.credentials.yaml。

官方直连 / 中转站判定

状态条显示的是「官方余额」还是「—(中转站无余额接口)」,按三层判定,优先级从高到低:

1. 用户显式名单 —— 设置面板「官方直连 provider」,写进去的一律按官方;
2. baseURL 域名 —— 服务端读 settings.yaml 的 provider baseURL,按域名比对官方端点白名单;没写 baseURL 的不表态;
3. 命名约定 —— 带 -official / _official 后缀的按官方。

三层都不命中默认按中转站处理(宁可不显示,也不显示错的余额)。设置面板会列出当前的自动判定结果。

安全

- API Key 只从环境变量 / DSH 凭证系统读取,不写进代码或仓库;
- /api-dashboard/config 返回的 Key 一律 **;浏览器端只请求同源接口,不向第三方域名发数据;
- 本地状态文件含自定义条目的 Key,权限 0600,被 .gitignore 排除;
- 自定义模型 / 中转站的 Key 会发往你自己填的接口地址,请只填信任的服务;
- v1.4.1 起插件路由带鉴权闸门(无 cookie → 401,跨域 → 403)。

开发

- 服务端 src/index.js(ESM,零构建;semver 用于严格更新兼容校验);客户端 client/client.js(改完需重启 dsh web)
- 测试:for f in test/.mjs; do node "$f"; done(退出码非 0 即失败)
- 改动红线、踩坑记录、发布流程:AGENTS.md、docs/RELEASING.md

更新日志

v1.7.0:适配 DSH 0.2.0-rc.2,保留已声明的 0.1.x 范围。检查更新会弹出发布摘要、适配对象、版本范围和当前 DSH 兼容结果;不兼容或声明缺失时禁止一键安装,安装前服务端再次校验。正式频道只跟 GitHub 已发布正式 Release。另修复冷子代理缓存、fork 今日重复计费、轮询卸载竞态、慢响应体超时及鉴权异常放行。同轮补充:子代理显示开关(关闭后移到看板分区)、单击详情、宿主主题完整适配、胶囊上移,以及浮层/输入框位移通道和大肥鱼大小持久化修复;支持官方 DeepSeek 配置凭据引用。继续手动维护价格表;补入六个近期 GPT / Claude 模型的标准档参考价,来源和长上下文/服务档位限制见 价格复核。部署后需重启 Web GUI。

最近一版 v1.6.9 —— 🔢 设置里的数字框能删干净了:旧写法在输入时当场夹取,而 Number("") === 0 会把"删空"立刻回填成 0,于是必须先写新数字才能删掉旧的;现在输入期只留数字、失焦/保存才夹取,空串也不再静默变成 0(那等于悄悄关掉「重复提醒」和「今日花销提醒」)。同时把「发送测试提醒显示失败」分诊开:接口没打到(插件文件已更新、dsh 还没重启 → 服务端仍是旧版本,路由不存在)会明说,不再一律报"发送失败"把人带往系统通知设置。
上一版 v1.5.0 —— 🐋 大肥鱼挂件音效引擎重做(换成 Web Audio:预解码 + 同步起播 + 松手音 40ms 衔接,避开 macOS Touch Bar 播放条与「网络层拦请求导致静默无声」,保留 media element 回退)+ 音效组 2 → 4 组;并把桌面 / 平板适配并入主线(原 preview/desktop 分支:三档形态 —— 手机全宽 / 平板居中面板 / 桌面居中对话框、桌面档面板 720px + 卡片两列、role="dialog" 无障碍、宿主侧栏竖线抑制),统一为同一个正式版。(换成 Web Audio:预解码 + 同步起播 + 松手音 40ms 衔接,避开 macOS Touch Bar 播放条与「网络层拦请求导致静默无声」,并保留 media element 回退)+ 音效组 2 → 4 组。

上一版 v1.4.6 —— 修 issue #2 的三个问题:余额低于预警线不再叫「异常」(查询正常但金额低 → 「不足」,真故障才叫「异常」)、标题与卡片口径统一(都走阈值分级,另补「需关注」汇总)、余额告警改走 DSHA App 桥(旧的两条通知通道在 DSH ≥ 0.1.5 上都不存在,告警一直被静默吞掉;现在拿不到通道也会在 /api-dashboard/alerts 里明示,可做可见降级);并适配 DSH 0.1.7 的 provider 配置新位置(段落已迁进 profile 的 cordis.patch.yml),判定改为白名单制——拿域名(provider 自己写的 baseURL,或 DSH 内置目录给的默认地址)比对官方白名单,命中才算官方,其余一律按中转站;「官方但官方没开放余额接口」的那类不再被错分成中转站。上一版 v1.4.5 —— 消耗估算口径三处修正:峰谷改按「事件发生时刻」计价(旧实现按「打开面板那一刻」,谷时跑的量在峰时查看会被翻倍)、法定节假日全天算谷时、缓存写入按官方 ×125% 单独计价;同时把十一家厂商的价格表逐条对官方原文重核,并补录 40+ 条新模型(GPT-6 Astra、Claude Fable 5.1、GLM-5.3-FlashX、MiniMax-M3、Gemini 3.5 Flash、Grok 4.7 / 4.6、MiMo V2.6 等);另修「点设置抽搐一下」与刷新间隔 300 秒两处交互根因。一版一行的完整历史见 CHANGELOG.md。

分发与权限

市场收录、兼容证据和权限披露。插件会读取已有凭据、请求余额 API、写本地状态;自更新会备份并替换本插件目录,不能标为“无网络/无文件/无凭据访问”。截图展示基础功能,1.7.0 新交互以更新说明为准。

如果它解决了你的余额或用量查看问题,欢迎 Star;遇到安装问题请在 Issues 提供 DSH/插件版本和错误文字,不要粘贴 API Key。

License

MIT —— 见 LICENSE。大肥鱼互动挂件移植自 MeteorNOX/DeepSeek-Balance-Whale-Widget(MIT),许可副本见 assets/whale/LICENSE-whale-widget.txt。
预览分享卡片长什么样 ↓133563825as-ai/dsh-api-dashboard
分享 · DeepSeek Harness Hub
133563825as-ai/dsh-api-dashboard

DeepSeek Harness 多平台 API 余额 / 用量与子代理消耗看板,支持手机、平板、电脑 Web GUI

这是你的仓库?认领条目

回到顶部