用 dsh-usage-stats 給 DeepSeek Harness 網頁界面補上用量熱力圖和賬戶餘額

前言

DeepSeek Harness(命令行名 dsh)把模型、工具、會話和界面都做成插件。官方倉庫 deepseek-ai/deepseek-harness 的口號是「Everything is a Plugin」:開發者不用改 Harness 源碼,就能在配置層增刪能力。日常跑 dsh web 時,真正不好盯的往往不是會話本身,而是用量——今天燒了多少 Token、緩存命中率怎樣、DeepSeek 賬戶還剩多少、同一模型走官方路由和中轉時分別花了多少。

默認網頁界面並不把這些數字攤開。社區插件 dsh-usage-stats 做的就是這塊:在側邊欄底部加一個「用量/餘額」入口,用月曆熱力圖和分模型明細看本地 Token 聚合,同時按當前供應商拉賬戶餘額或 Token Plan 額度。

本文按插件目錄頁、GitHub README / package.json / GitHub API 交叉覈對後整理。社區目錄 deepseek-harness-plugin.com 是獨立站點,用來發現和安裝社區插件,與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。

這是什麼

dsh-usage-stats 是一款界面增強插件,由 GitHub 用戶 Ychris12138 維護,源碼在 Ychris12138/dsh-usage-statspackage.json 中的當前版本是 0.2.0,主要語言是 JavaScript,許可證爲 MIT。GitHub 倉庫在 2026-08-17 覈實爲 56 stars。

目錄頁給它的定位是:給 DSH 網頁界面提供 Token 用量熱力圖、分模型明細與 DeepSeek 賬戶餘額。倉庫 README 寫得更完整——它監測的是多供應商賬戶,不只 DeepSeek:API 供應商顯示餘額,Token Plan 顯示分窗口額度;Token 用量分析不依賴額外憑據。

它解決的是這類問題:

  • 網頁端看不到今日 / 本月 / 累計 Token,也不知道緩存命中率
  • 多個 provider 混用時,同一模型名會混在一起,分不清錢花在哪條路由上
  • DeepSeek、OpenRouter、Moonshot 等賬戶餘額,以及 Z.ai、Kimi For Coding、MiniMax Coding Plan 這類訂閱額度,要分別打開上游控制檯纔看得到
  • 不想把 API Key、Cookie 或管理 PAT 送到瀏覽器裏

README 說明:展示圖使用脫敏演示數據;插件不會把 API Key、Cookie、管理 PAT 或上游原始響應發送到瀏覽器。

核心功能

統一賬戶卡片

面板一次只呈現當前供應商。API 供應商走餘額模式,Token Plan 供應商走分窗口額度。沒有公開賬戶接口的供應商仍會正常統計 Token,賬戶卡片會明確顯示「不支持」,不會猜測餘額。

README 列出的內置適配包括:

  • 餘額:DeepSeek(/user/balance)、OpenRouter(/api/v1/credits)、Moonshot / Kimi API、New API
  • 訂閱 / Token Plan:OpenCode Go、Z.ai / 智譜、Kimi For Coding、MiniMax Coding Plan
  • 自動判別:Sub2API / Passion(錢包響應顯示餘額;帶 quota_limitedsubscription 的響應切到額度窗口)
  • 自定義:通用餘額模板,以及聲明式 JSON Pointer 查詢(只支持受限 GET + JSON,不執行 JavaScript)

瀏覽器只請求當前選擇的 provider。後臺刷新與面板是否打開無關。手動刷新會更新用量、供應商列表,並強制刷新當前賬戶,不會批量強制請求其他供應商。

Token 用量分析

用量面板提供今日、本月、累計、緩存命中率、月曆熱圖,以及按日期 / 供應商 / 模型下鑽。界面支持中文和英文。

統計口徑來自 assistant/chunkassistant/message 裏 provider 上報的 usage,不是本地估算。相同 turn/step 的後續樣本會替換舊樣本,並按 provider/model 歸集。因此同一模型走不同 provider 時會分開統計,例如 deepseek-official · deepseek-chatark · deepseek-chat

「最近 14 天」按本地日曆計算,只顯示窗口內存在用量的日期;未來時間戳不會計入。

後臺監測

服務端啓動即刷新,之後每五分鐘更新全部已配置賬戶與本地 Token 聚合。用量緩存寫在 ~/.dsh/storages/usage-stats-cache.json,只保存聚合 Token、會話 id、不透明 revision 與摺疊遊標,不保存提示詞、回覆或文件路徑。

本機安全邊界

五個 HTTP 端點只接受迴環 GET,並同時校驗 peer socket 與 Host:

Method Path 作用
GET /api/usage-stats/usage 按日期 / provider / model 聚合的 Token 與緩存命中率
GET /api/usage-stats/providers provider 列表、account mode、adapter、狀態與預警摘要
GET /api/usage-stats/account?provider= 當前 provider 的餘額或 Token Plan 快照;refresh=1 強制刷新
GET /api/usage-stats/balance?provider= 0.1.x 餘額兼容路由
GET /api/usage-stats/subscriptions 0.1.x Token Plan 兼容路由

非 GET 返回 405,非迴環請求返回 403。憑據只在服務端解析,併發往校驗後的供應商地址。自定義 monitor 默認要求 HTTPS、同源相對路徑、手動 redirect 和 JSON 響應,body 上限 1 MiB。

安裝與啓用

目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行即可:

dsh plugin add github:Ychris12138/dsh-usage-stats

倉庫 README 寫明:插件需要 DeepSeek Harness 的 web profile,並要求 @deepseek-ai/dsh >= 0.1.0-rc.6。更明確的寫法是帶上 profile:

dsh plugin --profile web add "github:Ychris12138/dsh-usage-stats"

裝完後重啓已經運行的 dsh web,並在瀏覽器中硬刷新。側邊欄底部會出現「用量/餘額」(Usage/Balance)入口。

如需可復現安裝,目錄頁建議固定 commit 哈希。2026-08-17 覈實的 main 最新提交是 24e6d0ff9b2cb98495f3f362958d7f6ef586e8c0

dsh plugin add github:Ychris12138/dsh-usage-stats#24e6d0ff9b2cb98495f3f362958d7f6ef586e8c0

升級或卸載(README):

dsh plugin --profile web update dsh-usage-stats
dsh plugin --profile web remove dsh-usage-stats

無法使用 dsh plugin 時,README 提供兼容安裝器:

npx --yes github:Ychris12138/dsh-usage-stats

安裝器會把運行文件複製到 ~/.dsh/profiles/node_modules/dsh-usage-stats,並在 profiles/web/cordis.patch.yml 中冪等啓用插件。設置了 DSH_HOME 時使用該目錄。dsh pluginnpx 是兩條獨立安裝路徑,選擇其中一種即可;不要同時保留手工 Cordis entry 和 bundle 註冊,否則會重複掛載。

目錄頁和 README 都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。

典型用法

1. 打開面板並下鑽

README 給出的操作步驟:

  1. 點擊側邊欄「用量/餘額」。
  2. 用「當前供應商」切換賬戶卡片;一次只顯示一個 provider。
  3. 使用 / 切換月份,點擊熱圖日期查看當天的 provider / model 明細。
  4. 標題欄刷新會更新 Token、provider 列表,並強制刷新當前賬戶。

2. 配置賬戶憑據

憑據由 Harness 從 ~/.dsh/.credentials.yaml 解析。安裝器不會讀取、創建或修改該文件。不要把真實 Key、Cookie 或管理令牌提交到 Git、公開 issue,或粘貼給編碼 Agent。

DeepSeek、Moonshot 等默認複用對應 provider profile 的 apiKeyEnv。例如:

# ~/.dsh/.credentials.yaml
DEEPSEEK_API_KEY: sk-your-key-here

OpenRouter 是明確的例外:官方賬戶 credits 接口要求 Management Key,不能複用普通推理 OPENROUTER_API_KEY。未配置時顯示「未配置」,不會拿推理 Key 試探:

# ~/.dsh/.credentials.yaml
OPENROUTER_MANAGEMENT_KEY: sk-or-v1-your-management-key

插件按 total_credits - total_usage 顯示 OpenRouter 餘額。普通 Key 的 /api/v1/key 只描述單個 Key 的 spending limit,不會被當作賬戶餘額。

Token Plan 類供應商使用各自的環境變量名,例如 OPENCODE_GO_API_KEYZAI_API_KEYKIMI_API_KEYMINIMAX_API_KEY。中國區 Z.ai 可設 ZAI_API_REGION: bigmodel-cn;中國區 MiniMax 可設 MINIMAX_API_REGION: cn。OpenCode Go 還會依次嘗試 Harness credential 和本地 ~/.local/share/opencode/auth.json

3. 給中轉站加 monitor

monitor 配置要合併進現有的 name: dsh-usage-stats Cordis entry,不要追加第二個插件 entry。monitor 鍵必須是 Harness 中真實存在的 provider id;未知 provider、adapter 或非法映射會在路由和 timer 註冊前阻止插件啓動。

New API 默認用 provider 推理 Token 查詢 /api/usage/token/

# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
    - id: usage-stats
      name: dsh-usage-stats
      config:
        monitors:
          relay-a:
            adapter: new-api

聲明式自定義查詢只支持受限 GET + JSON Pointer。warning.warnBelowwarning.criticalBelow 是餘額絕對值閾值。具有總額度的餘額和 Token Plan 會自動產生 normal / warning / critical 剩餘比例狀態(默認 30% / 10%)。

適用場景與注意事項

適合這些人和場景:

  • 日常使用 dsh web,需要在本機看 Token 消耗和緩存命中,而不是打開上游控制檯
  • 同時配置了 DeepSeek、OpenRouter、Moonshot、Z.ai、Kimi、MiniMax 或多條中轉,想按供應商看餘額或訂閱額度
  • 同一模型名走了多條路由,需要按 provider/model 拆開對賬

使用時注意下面幾條,都來自目錄頁和倉庫文檔,不是額外發揮:

  1. 插件以當前 dsh 進程權限運行。 安裝前檢查源碼與 MIT 許可證;需要可復現安裝時固定 commit。
  2. 不要把端點經反向代理暴露到局域網或公網。 五個接口只爲迴環設計。本機反向代理會讓插件看到代理自身的迴環地址,從而繞過這層限制;確需代理時必須在代理層增加認證與訪問控制。
  3. 憑據只放在 Harness 的 credentials 文件裏。 安裝器不碰 .credentials.yaml。OpenRouter 必須用 Management Key。報告問題或讓 Agent 協助安裝時,不要粘貼 Key、Cookie、原始日誌或未脫敏餘額。
  4. Harness 仍是開發者預覽。 README 寫明當前版本 0.2.0,依賴客戶端模塊加載器、Cordis 服務與 session persistence;預發佈接口變化時可能需要同步適配。
  5. 不要混用兩條安裝路徑。 dsh pluginnpx 安裝器二選一。自定義 monitor 必須掛在已有 entry 下,未知 adapter 會直接阻止啓動。
  6. 安全問題按 SECURITY.md 私下報告。 不要在公開 issue 裏附帶可利用細節或真實餘額。

小結

dsh-usage-statsdsh web 補了一塊本機用量面板:熱力圖和分模型明細看 Token,賬戶卡片看餘額或訂閱額度,後臺按五分鐘刷新,瀏覽器拿不到憑據。對已經在網頁裏跑 DeepSeek Harness、又需要盯消耗的人來說,它把「打開上游控制檯對賬」收成側邊欄裏的一次點擊。

相關地址:

  • 目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-usage-stats/
  • GitHub:https://github.com/Ychris12138/dsh-usage-stats
  • DeepSeek Harness 官方倉庫:https://github.com/deepseek-ai/deepseek-harness
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜