gdy01 / dsh-token-cost

Listed

DSH plugin: per-project LLM token usage and RMB cost (input / cache-hit / output) based on model standard prices.

mainModel View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:gdy01/dsh-token-cost

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 637ea42Synced Aug 17, 2026

dsh-token-cost

A DSH plugin that shows per-project LLM token usage and converts tokens to RMB cost, split into:

  • 输入(未命中) — uncached input tokens
  • 命中 — cache-hit input tokens (cacheReadTokens)
  • 输出 — output tokens

Costs are calculated from the model's standard price table (CNY per 1M tokens). Unknown models are listed with their token counts but no cost, so you can add/override prices without touching code.

Features

  • Reads local DSH session logs (~/.dsh/sessions or $DSH_HOME/sessions).
  • Aggregates by project (the session cwd) and by model.
  • Adds a 💰 button to the DSH web sidebar footer; the panel shows project totals and expandable model-level breakdown.
  • Zero runtime npm dependencies: uses Node's built-in node:zlib Zstandard decoder.
  • Loopback-only HTTP API (/dsh-token-cost/*).

Install

Install the subdirectory dsh-token-cost, not the parent dsh plugin folder. The parent folder has no package.json, so installing it produces no sidebar button.

Use the absolute path (the path contains a space, so quote it):

dsh plugin --profile web add "file:/Users/dg/Documents/dsh plugin/dsh-token-cost"

Or, from inside this directory:

cd /Users/dg/Documents/dsh plugin/dsh-token-cost
dsh plugin --profile web add "file:$PWD"

If you previously installed the wrong folder, remove it first:

dsh plugin --profile web remove "dsh plugin"
dsh plugin --profile web add "file:/Users/dg/Documents/dsh plugin/dsh-token-cost"

Then restart dsh web and refresh the browser. A 💰 button appears at the bottom of the sidebar.

You can also use the included installer script:

./scripts/install.sh

How it works

The host plugin scans every session.jsonl.zstd / session.jsonl under the DSH sessions directory. It replays:

  • session.cwd → project
  • request/header → current model
  • assistant/chunk { type: 'usage' } and assistant/message.usage → input / cache-hit / output tokens

The same (turn, step) usage sample is de-duplicated (a later assistant/message replaces the earlier usage chunk), matching DSH's own token-meter accounting.

Price table

Built-in DeepSeek official RMB prices (元 / 1M tokens):

ModelInput (miss)Cache hitOutput
deepseek-chat / deepseek-v4-flash20.58
deepseek-reasoner / deepseek-v4-pro4116

You can override prices in the profile's cordis.patch.yml (a patch row replaces the whole config, so include every price you want to keep):

- id: token-cost
  config:
    prices:
      deepseek-chat:
        input: 2
        hit: 0.5
        output: 8
      deepseek-reasoner:
        input: 4
        hit: 1
        output: 16
      deepseek-v4-flash:
        input: 2
        hit: 0.5
        output: 8
      deepseek-v4-pro:
        input: 4
        hit: 1
        output: 16

API

  • GET /dsh-token-cost/api/stats — full per-project/per-model JSON
  • GET /dsh-token-cost/api/prices — active price table
  • GET /dsh-token-cost/healthz — liveness

License

MIT

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
Security policyDetected
Contributing guideDetected
DocumentationDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 17, 2026, 8:37 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.