1HelloMan1/dsh-usage-dashboard-plus ↗★ 2
dsh-usage-dashboard-plus
DeepSeek Harness (dsh) web plugin: API balance + today's spend sidebar widget, /api/dsh-usage route, external vision-call accounting (JSONL usage log), plus a full per-session usage dashboard (call log, per-model stats, cache rate, CSV export) via the usageDashboard session projection — merged from dsh-stats-dashboard.
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗dsh-usage-dashboard-plus
A fork of dsh-usage-dashboard with external vision-call accounting: a sidebar-footer widget for DeepSeek Harness (dsh) showing your DeepSeek API balance and today's spend, estimated from session logs.
This is now the only actively maintained usage-dashboard repository. The former dsh-stats-dashboard implementation has been fully merged into Plus; do not install both statistics plugins in the same profile.
What "Plus" adds
- Counts external vision-model calls (e.g.
dsh-vision-fallback's Mimo V2.5 requests) into the today-spend stats via an optional JSONL usage log — the base package only counts calls recorded in DSH session logs. - Bundles a pricing entry for
mimo-v2.5(opencode Zen GO rates) so those calls get a cost estimate out of the box (override viaprices).
Features
- API balance — resolves the DeepSeek key through the DSH credentials service and queries the balance endpoint (cached).
- Today's spend (est.) — scans session logs (and the external usage log) for today's token usage × price table.
- Sidebar footer widget —
余额 ¥xx · 今日 ¥xx, click to open a detail card (calls, tokens, per-model breakdown, pricing notes). - Peak/off-peak pricing schedule — date-gated DeepSeek rate tables (2026-08-17 onward).
- Full usage dashboard — per-provider/per-model calls, latency, TTFT, throughput, input/output/cache tokens, cache rate, and estimated cost.
- Call-log analysis — filter and search by session, provider, and model; inspect recent calls and export filtered rows as CSV.
- Inherited Stats implementation — the
usageDashboardsession projection, 500-row call-log cap, whole-session model aggregates, and replay-safe historical statistics are included in Plus. - No build step — host half (
lib/index.js) + browser bundle (lib/client.js) via thedsh.clientmechanism.
Migrating from dsh-stats-dashboard
- Remove or disable the old
dsh-stats-dashboardplugin from thewebprofile. - Install
dsh-usage-dashboard-plus. - Restart
dsh weband hard-refresh the Settings page.
Plus reads the existing session logs, so historical sessions do not need to be migrated. Do not keep both statistics plugins enabled; the old repository is retained only as a historical source and is no longer maintained independently.
Install
dsh plugin --profile web add dsh-usage-dashboard-plus
## Configuration
All settings live under the `usage-dashboard` namespace in `~/.dsh/settings.yaml` (hot-reloaded):
```yaml
usage-dashboard:
apiKeyRef: DEEPSEEK_API_KEY # credential ref for balance queries
baseURL: "" # empty → $DEEPSEEK_BASE_URL → api.deepseek.com
prices: # per-model CNY per 1M tokens (input/cacheRead/output)
"mimo-v2.5": { input: 2, cacheRead: 0.05, output: 8 }
priceSchedule: [] # date-gated peak/idle tables
balanceCacheMs: 60000
sessionsRoot: "" # default /sessions
scanWindowMs: 172800000 # only scan session logs modified within this window
externalUsageLog: "" # JSONL log of external model calls
External usage log (externalUsageLog)
dsh-vision-fallback (and other plugins that call models outside the DSH session-log pipeline) can append one JSON line per external call:
{ "ts": 1755000000000, "model": "mimo-v2.5", "inputTokens": 1200, "outputTokens": 320, "cacheReadTokens": 0, "cacheWriteTokens": 0 }
Default path: /vision-fallback/usage.jsonl. Set externalUsageLog: off to disable.
External usage log (externalUsageLog)
dsh-vision-fallback (and other plugins that call models outside the DSH session-log pipeline) can append one JSON line per external call:
{ "ts": 1755000000000, "model": "mimo-v2.5", "inputTokens": 1200, "outputTokens": 320, "cacheReadTokens": 0, "cacheWriteTokens": 0 }
Default path: /vision-fallback/usage.jsonl. Set externalUsageLog: off to disable.