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.

  1. Locate the DSH profile directory (default ~/.dsh/profiles/<profile>/).
  2. Edit package.json and 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"
      ]
    }
  }
}
  1. Run pnpm install in that profile directory.
  2. 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 timer service, 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, and contextPressure, 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/balance through Typert Remote (cached for 60 seconds).
  • Automatic fallback: when the sessionStats projection 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 C palette in lib/client.js.
  • Change panel position/width: modify top / right / width for .bsb-panel in the CSS inside lib/client.js.
  • Change the cost unit price: modify PRICING at the top of lib/client.js (unit: USD per million tokens).
  • Change the balance refresh interval: the Host caches the result for 60 seconds (60000 in lib/index.js), and the Client fetches it every 60 ticks (tick % 60 in lib/client.js).

Notes

  • Balance feature: requires being able to read your API Key. Configure DEEPSEEK_API_KEY on the DSH Models settings page (or define apiKeyEnv under the llm-deepseek settings). 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