中文EN

dsh-thinking-token-stat

usage装不上npmMIT

在底部 Dock 添加模型思考 token 统计信息的轻量化插件。

下载量 / Downloads
1,680
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-thinking-token-stat

沙箱测试结果

阶段结果
1 安装✗
2 列装—
3 挂载—
4 启动—
第一条错误
dsh: initialized profile web at /home/node/.dsh/profiles/web

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-thinking-token-stat

English | [中文](./README_zh.md)

![awesome · DSH plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)

![dsh](https://github.com/deepseek-ai/deepseek-harness)

![license](./LICENSE)

![npm version](https://www.npmjs.com/package/dsh-thinking-token-stat)

![npm downloads](https://www.npmjs.com/package/dsh-thinking-token-stat)

![repo](https://github.com/Six6stRINgs/dsh-thinking-token-stat)

![GitHub stars](https://github.com/Six6stRINgs/dsh-thinking-token-stat/)

A lightweight thinking/reasoning token statistics plugin for DeepSeek Harness (DSH). Displays whole-session thinking token totals and ratios right in the composer dock, with official frosted-glass detail popovers and turn-by-turn model breakdowns.

Features

1. Composer Dock Readout

Always visible in the status line below the message input box:

💭 37.2K · 70.7% · 4 / 6 turns
  • Total Thinking Tokens: The cumulative count of reasoning tokens across the entire conversation.
  • Thinking / Output Ratio: The proportion of thinking tokens relative to total reasoning output.
  • Reasoning Turns: Active thinking turns out of total turns (displayed when non-thinking turns exist).

2. Session Overview Panel

Clicking the dock readout opens the overview panel, fully styled according to DSH official popover design and frosted-glass vibrancy:

  • Thinking / Reasoning Output: Share of thinking tokens within reasoning-capable turns.
  • Thinking / All Tokens: Share of thinking tokens out of total billed session tokens (input + output + cache).
  • Turn Counts: Total turns vs. active reasoning turns.
  • Estimate Transparency: When a model does not report token counts, the estimated turn count and token volume are clearly broken out with a ? explaining the formula.
  • Scope Audit: Statically proves what the figures cover (empty turns, fork-excluded prefixes, etc.).

3. Turn-by-Turn Breakdown

Click "Detailed turn statistics" in the overview to open the per-turn table (newest turns first):

  • Turn Number & Thinking Tokens: Per-turn count (estimated figures prefixed with ~ and highlighted in business accent).
  • Turn Total Output: Total tokens written in that turn.
  • Thinking Source: Indicates whether the count was provider-reported, text-estimated, or mixed.
  • Model Attribution: Exact Provider and Model names (e.g. deepseek-official/deepseek-reasoner), tracking retries and model switches accurately.
  • Output Share: Percentage of the turn's output spent on reasoning.
  • Quick Filtering: Filter by Reported, Estimated, or None (collapsed by default).
  • Jump to Reply: Jump button on each row pages DSH history and navigates straight to the message.

Token Counting & Estimation

Not all model providers report reasoning tokens via API usage metadata. To ensure accurate and meaningful statistics in every environment, the plugin employs a transparent hybrid strategy:

Provider Response · Method · Display

Reports reasoning tokens · Uses exact provider count · Stated exactly; marked as Reported

Provides reasoning text only · Multi-script density estimation · Prefixed with ~ (e.g. ~5.1K); marked as Estimated

Provides neither · Counted as non-thinking · Collapsed by default in the turn list

Multi-Script Character Density Rules

Estimating tokens using a flat 4 characters/token English heuristic undercounts dense scripts by 2–4×. This plugin segments text by script family:

Script · Characters / Token · Rationale

CJK (Chinese, Japanese kana, Korean Hangul, fullwidth) · 1 · Measured tokenizers range ~0.6–1.7 tokens/char (DeepSeek/Qwen tokenizers sit at 0.6–0.8). 1 char/token is conservative and avoids overestimating.

Cyrillic, Greek, Arabic, Hebrew, Indic, Thai, etc. · 2.5 · Typically measured at 2–3 characters per token.

Latin, digits, punctuation, whitespace · 4 · Standard empirical benchmark for English and Western prose.

All estimated numbers are explicitly prefixed with ~ and never misrepresented as exact provider telemetry.


Architecture & Performance

  • Durable Session Projection:
  • Folded incrementally on the host Node process as an event-driven Reducer over assistant/message settlements.
  • Persisted as a session projection checkpoint (<root>/session_projcache/sessions/<id>.json), requiring only a few KB per session.
  • Covers the complete session event log, immune to client-side window paging, virtual scrolling, or compaction.
  • Zero Frontend Overhead:
  • The browser half simply reads a single projection value via useProjection("thinkingStats"). No message parsing, no background API requests, and no localStorage caching.
  • Native DSH Alignment:
  • Strictly adheres to DSH stat-dialog.module.css specs, incorporating var(--dsw-menu-backdrop-filter) (40px blur) and var(--dsw-radius-lg) corner radius.
  • Automatically adapts to Light and Dark themes.
  • Matches the client UI language automatically (Chinese & English).

Installation

Method 1: DSH Plugin Market (Recommended)

Open the Market in DSH Desktop or Web GUI, search for dsh-thinking-token-stat, and click Install.

Method 2: Command Line

Run in your terminal:

dsh plugin add dsh-thinking-token-stat

*Or install the latest development br

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:12,最后更新 2026-10-18

链接

GitHub · Homepage · npm

同类插件