feely0208/dsh-token-cost:在 DSH 側欄裏看 token 花費與預算進度

前言

DSH 把每一次模型調用的 usage 都寫進了會話日誌,日誌是 session.v4.jsonl.zstd,落在
~/Library/Application Support/DeepWhale Desktop/dsh-home/sessions 下,按工作區與會話分目錄。
想算清這段時間花了多少錢,傳統做法是自己拼一條管道:zstd -dc 解壓、再用 jq 把 usage
撈出來、按時間窗聚合、再套定價表換算。日誌一多,這一步基本沒人會去做。

下面介紹的 feely0208/dsh-token-cost 把這件事做完了:插件讀本機日誌,把 token 用量和花費
做成側欄面板,當期花費、緩存節省、模型與會話排行、預算進度都能直接看到,還能導出 CSV / JSON。
先說清楚一點:金額是本機估算,不是官方賬單——按本機日誌裏逐次調用的 usage 與 DeepSeek
官方定價頁快照計算,不含平臺贈送額度、優惠和匯率波動。

這是什麼

插件名是 @deepwhale-cn/dsh-token-cost,倉庫 feely0208/dsh-token-cost,維護者 feely0208,
作者署名是溫州深鯨智能科技有限公司,許可證 MIT。當前版本 0.1.1,包聲明滿足的宿主範圍是
dsh >=0.1.0-rc.6 <0.3.0、node >=18。

定位一句話:把 DSH 會話日誌裏的 token usage 變成側欄裏的花費視圖,只讀本機數據,不聯網、
不上傳。它同時給出按模型和按會話的排行,讓「錢花在哪」這個問題有可回溯的答案,而不是
只能看賬單總數。

面板裏有什麼

區塊 內容
四個窗口 今日 / 近 7 天 / 近 30 天 / 本月(按本地自然日,本月按本地 1 日起)
概覽 花費(美元 + 人民幣)、緩存命中節省、緩存命中率、調用次數 / token 總量
預算進度 本月花費對比預算,進度條 + 剩餘;預算只存在本機瀏覽器 localStorage
日趨勢 近 30 天每日花費柱狀圖(懸停看當天金額 / 次數 / token)
按模型 按金額排序,含服務商;第三方模型標「未知價」不計入金額
按會話 前 20 個最貴會話,帶工作目錄、token 量、是否子代理
導出 CSV(按日 / 會話 / 模型)與 JSON(含彙總與明細),只含本機統計

預算這一項值得單獨說一句:預算數字只存在瀏覽器 localStorage 裏,不改任何配置文件,也不會
同步到別處。想設默認預算,用環境變量 DSH_TOKEN_COST_BUDGET。

安裝與啓用

安裝命令來自 README 原文:

dsh plugin --profile web add @deepwhale-cn/dsh-token-cost

裝好後側欄會多一個「Token 花費」圖標,點開就是上面的面板。

前置條件只有一個:系統裏有 zstd 可執行文件。沒有它讀不了 .zstd 日誌。macOS 可以
brew install zstd;插件默認會找 /opt/homebrew/bin/zstd、/usr/local/bin/zstd,也走 PATH,
不新增任何 npm 依賴。

數據從哪來

下面是默認路徑與目錄結構,只讀,不修改、不刪除、不移動任何日誌:

~/Library/Application Support/DeepWhale Desktop/dsh-home/sessions/--<workspace>--/<sessionId>/session.v4.jsonl.zstd

日誌是 zstd 多幀、追加寫入。插件從中讀取兩類事件(README 註明 2026-10-29 用真實日誌核過):

  1. assistant/message:取 data.usage { inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, totalTokens },模型與服務商在 data.message.source。
  2. compaction/summary:取 data.usage,服務商和模型在 data.provider / data.model。

解析全部在本機進程內完成,不聯網、不上傳;導出文件也不會離開本機。可用環境變量:

變量 作用
DSH_SESSIONS_DIR 覆蓋會話日誌根目錄
DSH_ZSTD_BIN 指定 zstd 可執行文件路徑
DSH_TOKEN_COST_USD_CNY 美元→人民幣匯率(默認 7.2)
DSH_TOKEN_COST_BUDGET 默認月度預算;≤1000 視爲美元,否則視爲人民幣

價格口徑

價格快照取自 2026-10-29 的 DeepSeek 官方定價頁,單位是美元 / 百萬 tokens:

模型 輸入(緩存命中) 輸入(緩存未命中) 輸出
deepseek-flash(V4.1-Flash-1017)峯時 $0.006 $0.30 $1.20
deepseek-flash 閒時 $0.003 $0.15 $0.60
deepseek-v4-pro 峯時 $0.044 $1.32 $3.96
deepseek-v4-pro 閒時 $0.022 $0.66 $1.98

計算規則:

  1. 閒時價是峯時的一半;峯時 = 週一至週五 01:00–04:00、06:00–10:00 UTC,其餘(含週末)爲閒時。
  2. 每條調用按發生時刻逐條判斷峯 / 閒,再按三檔累加。
  3. 緩存節省 = 命中 token ×(未命中價 − 命中價)。
  4. 舊名 deepseek-v4-flash / deepseek-v4-flash-vision-exp 按官方註釋歸到 Flash 價格。
  5. 只有 deepseek-official / deepseek-account 兩個服務商按官方價計;其它網關(例如 agnes)標「未知價」,只統計 token、不計金額,並單獨提示。
  6. 未扣除中國法定節假日(官方節假日全天按閒時),所以法定節假日會按峯時多算,屬於偏保守估算。
  7. 官方保留調價權利,插件只是某一時刻的快照,不構成賬單。

驗證與發佈前檢查

README 給出的驗證命令:

node --check lib/index.js          # 以及 lib/*.js、tests/*.mjs
node scripts/preflight-client.mjs . # 客戶端 bundle 預檢(模擬宿主加載/激活/渲染)
node tests/smoke.mjs                # 定價 + zstd 多幀假日誌端到端
node tests/http.mjs                 # HTTP 出口
node tests/client-render.mjs        # 用真實形狀的報告渲染面板,抓渲染期異常

其中 preflight-client.mjs 是白屏事故後的強制關卡:任一客戶端插件 entry 激活失敗,宿主整頁
會顯示「Failed to load plugins」。package.json 裏 prepublishOnly 也指向同一個腳本,所以
發佈前必須跑。

適用場景與注意

適合這幾類人:想知道「這兩天到底花了多少、花在哪個模型和哪個會話上」的 DSH 使用者;想盯
本月預算的;想驗證緩存命中到底省了多少的人。對只想看官方賬單的人來說,面板裏的金額不夠
精確,直接用 DeepSeek 後臺賬單更合適。

注意事項:

  1. 插件以當前 dsh 進程的權限運行,會讀本機會話日誌目錄。安裝前應當先檢查源碼與許可證(MIT)。
  2. 日誌格式是 DSH 的內部格式,未來版本若改結構,插件會顯示「沒有數據」而不是猜測。
  3. 已知盲區:會話標題生成、Search & Fetch 等不在會話日誌 usage 裏的調用不會計入;平臺贈送餘額、
    限時折扣、匯率波動也不在口徑裏。

結尾

這個插件的價值不在於讓計費更精確,而在於讓本機已有的日誌產出一個能日常看一眼的視圖:
當期花了多少、緩存省了多少、錢花在哪個會話上。數據全程留在本機,導出與否由使用者自己點。

目錄頁:https://www.skillhub.cn/plugins/feely0208/dsh-token-cost
GitHub:https://github.com/feely0208/dsh-token-cost

羽毛球分组比赛记分
小程序二维码

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

小夜