DeepSHPlugins
deepseek-cost-usage-status-plugin 專案預覽
GITHUB / COMMUNITY PROJECT

deepseek-cost-usage-status-plugin

安全與運維TypeScriptMIT

在 DSH 會話統計行下方新增彩色狀態行,實時顯示 DeepSeek API 費用、用量與賬戶餘額,並帶高峰/錯峰計費指示。

2 StarsZenjibad 更新時間 2026-08-28
訪問 GitHub 倉庫
deepseek-cost-usage-status-plugin 專案預覽

專案介紹

中文

在 DSH 會話統計行下方新增彩色狀態行,實時顯示 DeepSeek API 費用、用量與賬戶餘額,並帶高峰/錯峰計費指示。

English

Adds a colored status line under the DSH conversation stats showing live DeepSeek API cost, usage and account balance, with on/off-peak pricing indicators.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
Zenjibad
倉庫
Zenjibad/deepseek-cost-usage-status-plugin
GitHub Stars
2
Forks
0
開發語言
TypeScript
許可證
MIT
最近推送
2026-08-28
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

55/ 100
維護活躍
91
文件與實用資訊
100
生態關注度
14
安裝便捷訊號
55
專案宣告訊號
100

近 14 天仍在更新;README 含完整安裝與使用說明;關注度尚低(2)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:Zenjibad/deepseek-cost-usage-status-plugin

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

DeepSeek Cost / Usage / Status Plugin for DeepSeek Harness

A packaged Cordis plugin for DeepSeek Harness (DSH) that adds a second, colored status line under the shipped conversation stats line, showing live DeepSeek API cost, usage, and account balance.

● Off-peak 00:47 · −50%  ·  Cost ¥0.0412  ·  ~¥1.23/min  ·  Balance ¥12.42  ·  Model deepseek-v4-flash   ← CNY account
● Off-peak 00:47 · −50%  ·  Cost $0.0057  ·  ~$0.17/min  ·  Balance $1.73  ·  Model deepseek-v4-flash   ← USD account (cost auto-converted from CNY)

Features

  • On / off-peak indicator — green when off-peak (idle), red when peak, using DeepSeek's official Beijing-time peak windows (09:00–12:00, 14:00–18:00). The clock shows your local timezone; the decision is Beijing-time so the color matches what DeepSeek actually bills.
  • Session cost — real per-session token usage accumulated from the llm/stream waterfall, priced with official CNY rates including the 50% off-peak discount, then converted into your account's currency (from the balance API) so cost and balance are directly comparable.
  • Burn rate — ~/min in the same display currency, i.e. session cost ÷ elapsed minutes since the session's first model call.
  • Account balance — polled from DeepSeek's /user/balance every 60s using DSH's own DEEPSEEK_API_KEY; degrades to Balance — if the key is unavailable/network fails.
  • Current model + reasoning effort.
  • Font-matched to the shipped stats line (12px/20px, muted tertiary color, centered) so it reads as the same family.

Quick start

This is a packaged profile plugin — install once with the official CLI, it loads on every DSH boot and survives restarts (no cordis_define):

dsh plugin --profile web add deepseek-cost-usage-status-plugin
# or from a local checkout:
dsh plugin --profile web add ./deepseek-cost-usage-status-plugin

Then restart DSH. The plugin renders its line in the conversation.composer.dock slot (a new cell beside the shipped stats cell), fed by GET /deepseek-cost/api.

Requirements

  • DSH 0.1.0-rc.6+ with the web UI and a configured DeepSeek provider.
  • A DeepSeek API key stored as DEEPSEEK_API_KEY in ~/.dsh/.credentials.yaml (reused for the balance read). Without it, balance shows —; the rest still works.

How it works

  • Host half (source of truth): wraps the llm/stream waterfall, forwards every chunk untouched, reads the terminal usage chunk per completed call, accumulates per-session token/model/timing, computes cost from the PRICING table (official CNY, peak-class; idle = 50%) with the Beijing-time peak decision, and polls balance via curl.exe + subprocess. Serves the snapshot over GET /deepseek-cost/api (a webServer route — the packaged-plugin replacement for the dynamic harness.handle RPC seam).
  • Client half: registers in conversation.composer.dock, polls /deepseek-cost/api every 2s, and renders the font-matched line with a green/red peak chip.

User-currency cost display

Cost and burn rate are computed in CNY (the pricing table's basis) and then displayed in your account's currency — the one returned by GET /user/balance (usually USD). That way Cost and Balance share the same unit. The conversion uses a hybrid FX rate:

  1. Live — fetched from open.er-api.com (/v6/latest/CNY, free, no key) through the same curl.exe + subprocess path as the balance poll, refreshed hourly by default (fxRefreshMs).
  2. Fallback — a configured fixed rate (fallbackFxRate, CNY per 1 unit of the display currency, e.g. 7.2 for USD), used only when the live fetch fails.

If neither a live rate nor a fallback is available — or the balance is unknown (no API key / network failure) — cost simply stays in CNY. No wrong numbers are ever shown.

Configuration

Set from a patch layer, e.g. $DSH_HOME/cordis.patch.yml:

deepseek-cost-usage-status-plugin:
  config:
    fallbackFxRate: 7.2   # CNY per 1 USD — used when the live FX fetch fails
    fxRefreshMs: 3600000  # live FX refresh interval (default 1 h)
optiondefaultmeaning
fallbackFxRateunsetFixed CNY→display-currency rate used when the live FX fetch fails
fxRefreshMs3600000How often to refresh the live FX rate (min 60 000)

The currency symbol follows the account currency (¥, $, €, £, …); unmapped ISO codes render as their 3-letter code.

Pricing table (official DeepSeek CNY, per 1M tokens, effective 2026-08-17)

modelcache-hit incache-miss inoutput
deepseek-v4-flashidle¥0.05¥1.5¥4.5
deepseek-v4-proidle¥0.15¥4.5¥13.5

Update PRICING in src/index.ts (single place) when rates change.

FAQ

  • The line shows Cost … / Balance —? The host route is unreachable, the balance key is missing (~/.dsh/.credentials.yaml → DEEPSEEK_API_KEY), or the balance call failed (network / non-200). Cost/peak still work without balance; the line self-recovers on the next poll.
  • Why does the balance read put the API key on a curl command line? The key travels as an Authorization header argument to curl.exe (visible to other processes on this machine) — an accepted tradeoff for this readout tool. No key is stored or logged by the plugin itself.
  • Why is cost shown in my account's currency? The plugin converts the CNY price into the currency your balance API returns (usually USD), so cost and balance are comparable. The rate is fetched live (hourly) and falls back to your configured fallbackFxRate when the fetch fails; without any rate, cost stays in CNY.

Layout

  • src/index.ts — the host half (waterfall wrap, pricing, balance poll, /deepseek-cost/api route).
  • src/client/index.tsx — the client bundle (2s poller, dock line).
  • cordis.patch.yml — dsh.bundle.patch: mounts the plugin row at boot.
  • tsdown.config.ts — builds host (node ESM) + client (CJS ModuleLoader closure).
  • tests/fixtures/balance.json — real-shape /user/balance response sample.
  • AGENTS.md — guide for AI agents / maintainers.
  • README.zh.md — 中文文档.

License

MIT — see LICENSE.

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案