Passer au contenu principal
1

dsh-usage-dashboard-plus

1helloman1/dsh-usage-dashboard-plus

Plugin web DeepSeek Harness (dsh) : widget de barre latérale pour le solde API + la dépense du jour, route /api/dsh-usage, comptabilité des appels de vision externes (journal d'usage JSONL), plus un tableau de bord complet d'usage par session (journal des appels, stats par modèle, taux de cache, export CSV).

Installer

dsh plugin --profile web add github:1helloman1/dsh-usage-dashboard-plus

README

dsh-usage-dashboard-plus

English | 中文

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 via prices).

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 usageDashboard session 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 the dsh.client mechanism.

Migrating from dsh-stats-dashboard

  1. Remove or disable the old dsh-stats-dashboard plugin from the web profile.
  2. Install dsh-usage-dashboard-plus.
  3. Restart dsh web and 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
# restart `dsh web` — the profile patch layer is not hot-reloaded

The npm package ships dsh.bundle and cordis.patch.yml, so the install command inserts usage-dashboard into the target profile without manual directory copies or patch editing.

Verify:

dsh --profile web --dump-config   # expect a usage-dashboard-plus row

Then hard-refresh the GUI (Cmd+Shift+R) — the footer widget appears next to 设置/Settings.

Configuration

All settings live under the usage-dashboard namespace in ~/.dsh/settings.yaml (hot-reloaded):

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 <dsh home>/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: <dsh home>/vision-fallback/usage.jsonl. Set externalUsageLog: off to disable.

Development

npm test    # validates the npm package, dsh.bundle, and cordis.patch.yml

License

MIT — forked from dsh-usage-dashboard (MIT).

Plugins associés