JavenLu233/dsh-cost-monitor--packages-client-ui-turn-cost ↗★ 2
@javenlu233/dsh-client-ui-turn-cost
Session cost readout for Web: whole-session total in the composer stats strip plus a per-turn cost toggle in each assistant message's action row (pure-consumer client plugin) 轻量化呈现 DeepSeek 消费数据。适合需要直观、无感监控每轮对话费用的 Web 用户。
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:JavenLu233/dsh-cost-monitor#2c7f026f3d56f7c7198ac96ba5cab36341f5e662&path:packages/client/ui-turn-costREADME
Read the full README ↗@javenlu233/dsh-client-ui-turn-cost
English | 中文
Cost readout for the Web chat view: the session total (with its cache-hit / cache-miss / output split and cache-hit rate) in the composer stats strip, plus a compact per-turn increment in each assistant message's action row.
- Data: the session total rides the durable
sessionCostprojection (whole log, paging- and compaction-proof, priced per request by its model, including capturedweb_searchmodel usage); the per-turn increment folds that turn's assistant nodes client-side. - Pricing: the DeepSeek price table (CNY per 1M tokens), date-aware: the default route is now
deepseek-flash; V4.1-Flash rates from 2026-09-10 12:00 Beijing time are hit / miss / output0.04 / 2 / 8at peak and0.02 / 1 / 4off-peak, while historical usage keeps its historical rate. - Slots: two list slots —
conversation.composer.dock(session total) andconversation.chat.assistant-actions(per-turn); composing this plugin out removes both. - Dependency: requires the host
@javenlu233/dsh-session-costprojection plugin; without it the session total is absent and only the per-turn increment renders.
Model Experience
None; nothing here reaches a model request.
KV Cache effect
None; this package neither assembles nor sends a provider request.
Known Limitations and Deferred Work
- The per-turn increment is precise only for the loaded window; compacted turns contribute to the session total but have no per-turn line.
- The price table is configurable through the host
session-costplugin's cordis.yml config, not the settings UI. - The stats dialog lists
web_searchmodel spend in its own cut when any search usage was captured; conversation and search tokens for the same model still share the "By model" row.