Skip to content
dsh-market Browse plugins GitHub 中文

MannixHu/dsh-statusbar-config

Configurable statistics row below the composer via a ${variable} display template — which segments appear and how they are labelled is fully user-defined.

Stars ★ 0 Category UI Enhancements Listed 2026-09-03 npm dsh-statusbar-config

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add dsh-statusbar-config

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

README

English | 中文

A DeepSeek Harness web UI plugin that makes the conversation statistics row below the composer fully template-driven — JS template-literal syntax ${variable}, write whatever you want, applies live.

It shadows the shipped stats entry in the conversation.composer.dock slot (lower priority wins the cell) with the same data and precision as the official StatsLine; the display content is entirely your template.

Template variables

Variable Meaning Example
${ttft} average time to first token, seconds (bare number) 5.8
${tps} decode throughput, tok/s (bare number) 69
${cache} cache hit percent (no % sign) 93
${input} billed input tokens (compact) 63.7M
${output} output tokens (compact) 178K
${turns} / ${steps} turns / steps 12 / 34
${llm} / ${tool} cumulative LLM / tool time (unit included) 3m12s

Units, separators, and any literal text are yours to write in the template; unknown variables stay verbatim; variables without data yet render empty.

Install

dsh plugin --profile web add github:MannixHu/dsh-statusbar-config

Then restart dsh web (the loader graph is frozen at process start).

Configure

Two equivalent ways:

  • In the UI — Settings → Plugins → Status bar template card: click a variable chip to insert at the cursor, Enter to save, applies immediately (recommended).
  • In ~/.dsh/settings.yaml — the status-bar-config namespace:
status-bar-config:
  enabled: true
  template: 'TTFT avg ${ttft}s · ${tps} tok/s | Cache ${cache}% | In ${input} tok · Out ${output} tok'

renders:

TTFT avg 5.8s · 69 tok/s | Cache 93% | In 63.7M tok · Out 178K tok

Empty template = default statistics row (the full shipped segments); enabled: false hides the row. The 0.1 per-segment toggles are superseded by the template — legacy yaml boolean keys are ignored; switch to template after upgrading.

Migration

From the 0.1 segment toggles: 0.2 replaces them with the template. Legacy boolean keys in yaml are ignored — rewrite your toggle combination as one template: line; for example, with only ttft/throughput/cacheHit/input/output on:

status-bar-config:
  enabled: true
  template: 'TTFT avg ${ttft}s · ${tps} tok/s | Cache ${cache}% | In ${input} tok · Out ${output} tok'

From leonardoxr/dsh-status-bar-config: this plugin keeps the same status-bar-config namespace, so your existing settings section loads as-is. That plugin's inject list depends on @deepseek-ai/dsh-client-runtime / dsh-client-ui-slots, which the 0.1.2-alpha reorganization removed; this plugin is rewritten against the post-alpha package graph and needs no inject patch.

Compatibility

  • Requires DSH 0.1.7+ (client config goes through the configForms service; use 0.2.1 on older hosts).
  • The built bundle (lib/) is committed, so installing from git needs no build step and no onlyBuiltDependencies entry.

Build from source

pnpm install
pnpm check   # typecheck + build (lib/index.js host half, lib/client.js browser half)

License

MIT

Content from the project README on GitHub ↗

Comments

Comments live in GitHub Discussions. Sign in with GitHub to post or react.