πŸ“¦ @goodandready/dsh-cost-meter

September 13, 2026 Β· View on GitHub

Live Session Cost Chip, Peak/Off-Peak Tariff Switcher & Token Pricing for DeepSeek Harness

npm version license DSH Plugin Node version

GoodAndReady Showcase

πŸ‡¬πŸ‡§ English β€’ πŸ‡·πŸ‡Ί Русский β€’ πŸ‡¨πŸ‡³ δΈ­ζ–‡θ―΄ζ˜Ž

⭐ If you like this plugin, please star it on GitHub β€” it shows me that the plugin is useful to you and motivates me to keep developing it.

πŸ› If you find a bug or would like to request a feature, open a GitHub issue in any language β€” I will review your proposal and implement useful suggestions in a future plugin version.

⚑ Overview & The Problem

AI development and agentic coding consume large volumes of tokens across prompt generation, reasoning, and context caches. Without continuous financial feedback, developers risk unexpected billing spikes, missing off-peak discount windows, or failing to identify runaway subagent expenses.

@goodandready/dsh-cost-meter embeds a high-precision cost telemetry chip directly into the DeepSeek Harness conversation header (conversation.session.header.utilities):

● β‰ˆ \$0.12  0:17     ← Live session cost chip with tariff countdown

Clicking the chip expands an interactive breakdown modal displaying 1M token rate tables across peak and off-peak tiers, active UTC window status, and per-model session expenditure summaries.


πŸ›οΈ Architecture

graph TD
    subgraph StreamTelemetry ["DeepSeek Harness Runtime"]
        Req["LLM Request / Header<br/>(provider, model)"]
        StreamHook["Incremental Streaming Chunks"]
        Proj["costByModel Projection<br/>(30-min UTC Slots)"]
    end

    subgraph PricingCatalog ["Tariff Resolution Engine"]
        Manual["Manual Config Rates<br/>(settings.yaml: prices)"]
        DeepSeekTier["DeepSeek Official Tier<br/>(Peak vs Off-Peak 50% discount)"]
        OpenRouterTier["OpenRouter API Catalog<br/>(Cached Daily)"]
    end

    subgraph UI ["User Interface Surfaces"]
        Chip["Header Cost Chip<br/>(Active tariff + countdown)"]
        Modal["Breakdown Drawer<br/>(Rates per 1M, UTC windows, model table)"]
        Settings["Settings Card<br/>(Currency, USD rate, timezones)"]
    end

    Req --> Proj
    StreamHook --> Proj
    Proj --> Chip
    PricingCatalog --> Proj
    Manual --> PricingCatalog
    DeepSeekTier --> PricingCatalog
    OpenRouterTier --> PricingCatalog
    Chip --> Modal

✨ Features & Key Capabilities

  1. Incremental Streaming Telemetry: Computes prompt, completion, and cache read/write tokens in real-time without polling or UI stutter.
  2. Dual-Tier Tariff Engine: Official DeepSeek peak windows (01:00–04:00 and 06:00–10:00 UTC) with automatic 50% off-peak discount detection.
  3. UTC Half-Hour Slot Immutability: Historical session expenditure is permanently anchored to the rate active at the moment of execution.
  4. Provider-Aware Routing: Distinguishes direct provider connections from hosted gateways (e.g. OpenRouter vs native endpoints).
  5. Interactive UI Modal & Settings: Custom currency symbols ($, €, β‚½, Β₯), exchange rates, and timezone configurations.

πŸ“¦ Installation

dsh plugin --profile web add @goodandready/dsh-cost-meter

Restart your DeepSeek Harness instance and refresh the browser.


βš™οΈ Configuration Reference (settings.yaml)

dsh-cost-meter:
  currency: "$"
  usdRate: 1.0
  displayTimeZone: "UTC"
  useOpenRouter: true
  prices: {}
  modelMap: {}

Configuration Parameters

ParameterScope / LocationTypeDefaultDescription
currencyGUI / settings.yamlstring"$"Display currency symbol (e.g. $, β‚½, €)
usdRateGUI / settings.yamlnumber1.0Exchange rate multiplier: units of currency per 1 USD
displayTimeZoneGUI / settings.yamlstring"Europe/Moscow"IANA timezone for peak/off-peak windows formatting
useOpenRouterGUI / settings.yamlbooleantrueAutomatically fetch rates & discount windows from OpenRouter
refreshHoursGUI / settings.yamlnumber24Hours between periodic OpenRouter catalog updates
deepseekPeakPricessettings.yaml onlyobject{}Override built-in DeepSeek peak rates by model id
pricessettings.yaml onlyobject{}Manual rates per 1M tokens { input, output, cacheHit?, cacheWrite? }
modelMapsettings.yaml onlyobject{}Route override: "provider/model" -> OpenRouter model id
manualPeakWindowsUtcsettings.yaml onlyarray[]Manual peak windows HH:MM-HH:MM UTC used with manual prices
manualOffPeakMultipliersettings.yaml onlynumber1.0Multiplier applied outside manual peak windows

Note on GUI vs YAML: Primary scalar parameters (currency, usdRate, displayTimeZone, useOpenRouter, refreshHours) are directly editable in the GUI Settings Card under Settings β†’ Plugins β†’ Plugin Settings β†’ Cost Meter. Advanced structured rules (prices, modelMap, deepseekPeakPrices, manualPeakWindowsUtc, manualOffPeakMultiplier) are configured in settings.yaml due to their complex dictionary/array schema.


πŸ§ͺ Testing

Run the automated test suite:

npm test

πŸ“„ License

MIT Β© GooDAnDReaDY

Performance & Smart Cost Features (v0.8.1)

  • O(K) Rate Change Calculation: Next schedule transition is resolved in O(K)O(K) boundary hops instead of full-day iterations.
  • Server Cache & ETag: High-throughput state polling with 304 Not Modified support and internal tariff LRU cache.
  • Manual Catalog Sync: On-demand catalog fetch via POST /dsh-cost-meter/refresh or UI "Sync Now" button.
  • Savings Advice & Budget Threshold: Popover hints on impending off-peak discounts (50% off) and optional warning thresholds (budgetThreshold).
  • Quick Summary Export: Instant markdown/text summary copy to clipboard.

UI Refinements & Language Standards (v0.8.2)

  • Native Dot Status Indicator: Header chip uses a refined status dot (green for off-peak, amber for peak, pulsing red for budget overrun, neutral for flat/idle) rather than full-fill backgrounds.
  • Context Cache Savings: Automatically calculates and highlights financial savings gained from prompt caching (e.g. Cache saved: β‰ˆ \$0.14 (-68%)).
  • Multi-Model Accordion: Clean collapsible list when 3 or more models are used in a single session.
  • DSH Locale Standards: Full English (en) and Chinese (zh) locale dictionaries registered directly in the client bundle. Russian translations are provided externally via @goodandready/dsh-russian-lang.