Chuyển đến nội dung chính

dsh-cost-crystal

Đã xác minh

dsh-cost-crystal · v0.1.0 · Apache-2.0

DeepSeek Harness (dsh web) 成本潮汐观测插件:余额卡片、波峰/低峰状态与切换倒计时、近24h消耗、本会话费用,以及(后续)用量预测。

Cài đặt

dsh plugin add dsh-cost-crystal

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Tác giả

Readme

dsh-cost-crystal 💎

A cost & usage crystal ball for the DeepSeek Harness web GUI — balance, real-time rate, peak/off-peak billing, and a 🔮 next-message cost forecast, all timezone-aware.

中文说明见 README_CN.md

CI

Screenshot

dsh-cost-crystal balance card

Features

  • 🔮 Next-message cost forecast — estimates the token usage and cost of your next message from the current conversation context and historical usage; re-prices instantly when you switch models
  • Balance card — CNY/USD balance with data-freshness hints («just now / Ns ago»); click to refresh instantly
  • Real-time rate — the breathing dot and shimmer light up within 2s of token consumption, showing live tok/s
  • Peak/off-peak billing — status badge, countdown to the next rate switch, and a last-24h spend estimate
  • Plug & play — zero runtime dependencies, dark/light theme aware, API key stays on the Host

Installation

Requires the DeepSeek Harness web profile (@deepseek-ai/dsh).

# Option 1 (recommended): npm package
dsh plugin --profile web add dsh-cost-crystal

# Option 2: from GitHub
dsh plugin --profile web add "github:xxvk/dsh-cost-crystal"

# Option 3: local development
dsh plugin --profile web add /path/to/dsh-cost-crystal

Then restart dsh web and hard-refresh the browser. The package declares dsh.bundle, so dsh plugin mounts it into the profile's bundle layer automatically — no manual config.

Pricing & Timezone

  • Pricing engine implements the official DeepSeek policy timeline: model-aware unit prices, peak/off-peak/flat buckets, dual currency (CNY/USD).
  • Peak (deepseek-v4-flash etc.): hit $0.014 / miss $0.44 / output $1.32 per M tokens; off-peak at half price. Windows 01:00–04:00 and 06:00–10:00 UTC.
  • Windows are defined in UTC; state/price judged in UTC; display uses the browser's local timezone.
  • Spend/cost covers local Harness sessions only; display conversion uses a fixed rate of 7.1.
  • ⚠️ All spend/cost figures are local-log estimates and may differ from the official bill.

Roadmap

  • v0.1.0 (now): balance card + real-time rate + peak/off-peak + countdown + 24h spend + 🔮 next-message forecast
  • v0.2.0 (planned): VL model statistics — model-switch button + per-model cost/token buckets
  • v0.3.0 (planned): forecast deepening — weighted window, budget burn-down, peak hints, top requests

See ROADMAP.md and TODO.md.

Development

npm install           # only typescript devDependency
npm run build         # generate injected-script templates + tsc → lib/
npm test              # build + all tests + line rules (TDD gate)
npm run build:profile # generate local hot-reload profile plugin (dev)

Architecture: Host logic (src/index.ts / src/pricing.ts / src/usage.ts) is TypeScript; injected scripts are plain-JS sources (src/scripts/card.inline.js + card-fmt.inline.js + card-render.inline.js) escaped into generated src/card-script.ts by scripts/build-scripts.mjs (generated files: never hand-edit).

Testing (TDD gate)

Every code change must pass to be "done":

npm test    # = tsc build + node --test (all tests) + check-lines
  • Node built-in node:test, zero runtime deps; CI (.github/workflows/test.yml) runs on push/PR
  • Line rules: src/test ideal ≤200 / hard cap 300; generated lib/ exempt. See CONTRIBUTING.md

License

Apache-2.0