Introduction¶
DeepSeek Harness (DSH) provides a text-based status line at the bottom, displaying information such as turns, steps, elapsed time, and tok/s. This format has low information density and is easily overlooked. The dsh-better-status plugin replaces this text line with an intuitive, prominent chart panel on the right side of the page and refreshes it automatically every second. It also adds a display of the current run cost and DeepSeek account balance.
Installation and Enablement¶
This plugin is a standard plugin package. Once installed, it appears in the DSH plugin list and is loaded automatically at each startup.
- Locate the DSH profile directory (default
~/.dsh/profiles/<profile>/). - Edit
package.jsonand add the dependency and bundle configuration:
{
"dependencies": {
"dsh-better-status": "https://github.com/Yaing-Yan/dsh-better-status/archive/refs/tags/v1.0.0.tar.gz"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-better-status"
]
}
}
}
- Run
pnpm installin that profile directory. - Restart DSH. Open any session view, and a chart refreshing every second appears on the right side of the page.
Features¶
- Automatic per-second refresh: driven by the
timerservice, forcing re-render and re-reading the latest projection. - Zero chart dependencies: all drawn with native React + SVG + CSS, with no build step.
- Authoritative data: directly reads session projections
sessionStats,tokenUsage, andcontextPressure, using the same source as the official status line. - Cost and balance display:
- Cost: estimated as token usage × unit price (the unit price can be modified).
- Balance: read on the Host side by calling DeepSeek
/user/balancethrough Typert Remote (cached for 60 seconds).
- Automatic fallback: when the
sessionStatsprojection is missing, it falls back to local folded node data. - Theme adaptive: colors use
--dsw-*variables and adapt automatically to light and dark themes.
Chart Contents¶
The panel includes the following visualization components:
* Turns / Steps: two large number cards (blue / purple).
* Current Cost / Account Balance: two number cards.
* LLM Time vs Tool Time: SVG donut chart + legend.
* Average Time to First Token / Generation Speed: gradient progress bar.
* Cache Hits: circular progress ring.
* Input / Output Tokens: stacked bar chart.
* Context Usage: circular progress ring (additional).
Secondary Development¶
The plugin source code is located in lib/client.js and includes hook-free purely presentational functions such as Tile, Donut, Ring, Bar, StackedBar, and LegendItem.
- Change the color scheme: modify the
Cpalette inlib/client.js. - Change panel position/width: modify
top / right / widthfor.bsb-panelin the CSS insidelib/client.js. - Change the cost unit price: modify
PRICINGat the top oflib/client.js(unit: USD per million tokens). - Change the balance refresh interval: the Host caches the result for 60 seconds (
60000inlib/index.js), and the Client fetches it every 60 ticks (tick % 60inlib/client.js).
Notes¶
- Balance feature: requires being able to read your API Key. Configure
DEEPSEEK_API_KEYon the DSH Models settings page (or defineapiKeyEnvunder thellm-deepseeksettings). If not configured, the balance displays “—”, while the other charts are unaffected. - Permissions and security: the plugin runs with the current DSH process permissions. It is recommended to review the source code and license (MIT) before installing.
Repository¶
https://github.com/Yaing-Yan/dsh-better-status