When debugging or optimizing DeepSeek Harness (DSH) Web interactions, developers often need to monitor decoding throughput (tok/s) and time to first token (TTFT) in real time during model generation. The dsh-live-perf-gauges plugin provides a car-dashboard-like real-time performance strip below the editor in the Web UI to display these key metrics.
This is a client-side plugin for DeepSeek Harness Web, developed by maintainer TnzGit and licensed under the MIT License. It does not depend on a backend and implements performance monitoring by projecting the session event stream.
Core Features¶
The plugin mainly provides the following monitoring capabilities:
- Decoding tok/s: Refreshed every 250 milliseconds during generation. It uses cumulative usage data when provided by the adapter; otherwise, it estimates based on the character/token ratio of completed steps in the same session.
- TTFT measurement: Calculates the time difference from
step/startuntil the first streamed text, reasoning, or tool-parameter increment appears. - Prompt/TTFT calculation: Logical prompt (input + cache reads/writes) divided by end-to-end TTFT. This metric reflects DSH overhead, network/queueing time, and the impact of cached tokens.
- Stream event reporting: Reports the logical increment for each event and the number of tokens generated per event. After provider usage is received, the latter is exact.
- Output progress: Displays the progress of generated tokens.
- Privacy protection: Does not access network services and does not store message text, prompts, tools, or credentials. It only projects timestamps, counts, and final token usage.
Installation and Enablement¶
- Run the following command to install the plugin:
dsh plugin --profile web add github:TnzGit/dsh-live-perf-gauges
- After installation, restart the running
dsh webservice. - Hard-refresh the page in your browser. The strip will appear below the editor after the next model step begins.
Technical Details and Notes¶
- The plugin is based on the DSH 0.1.x Web profile and uses the
conversation.composer.dock,sessionProjections, andcontextPressureinterfaces. - One SSE event is not equal to one token. This is important for speculative decoding (MTP): an accepted MTP group can deliver multiple generated tokens within a single streamed event.
- The plugin does not include network interactions and does not store session data. It relies only on the timestamps and counts already present in the session event stream.
Summary¶
This plugin is suitable for developers who need to monitor performance metrics locally and value data privacy. The project code is hosted on GitHub and can be accessed via the directory page.