dsh-statusline-plus
Displays account quotas, Git state, context usage, public API reference costs, Subagent activity, and streaming speed in DeepSeek Harness Web.
Install
dsh plugin --profile web add dsh-statusline-plus
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<img src="icon.svg" width="32" height="32" alt=""> dsh-statusline-plus



[English](#english) | [简体中文](#简体中文)
<a id="english"></a>
A responsive statusline for DeepSeek Harness (dsh web). Account quotas appear in the header; workspace and session metrics appear beside the composer.
Screenshots
<p><img src="docs/images/overview.png" width="680" alt="Header quotas, session metrics and detail panels: DeepSeek balance, Kimi Code usage, peak countdown, API reference cost and subagent activity"></p>
Screenshots use the actual UI with sample data, without account or conversation data.
Features
- Balances and quotas: DeepSeek, Kimi Code, Z.ai / Zhipu, Claude, Antigravity, Codex, OpenCode Go and OpenRouter, plus other subscriptions your Magpie reports. Click a chip for details and refresh.
- DeepSeek peak hours: status, countdown and daily timeline, plus a sidebar indicator. In a year with no calendar, a weekday inside a peak window stays unknown while weekends and hours outside the windows are still off-peak; when the official rule wording no longer matches, the schedule is still applied and the indicator warns that rules may have changed.
- Workspace and session: Git branch and changes, context usage, streaming TPS, API reference cost, direct child agents and tool activity.
- Layout: component switches, ordering, presets and an interactive preview. Groups wrap on narrow screens; an optional switch disables this plugin's bottom status line when the input area is at most 480px wide, including when sidebars narrow it.
- Self-update: when npm publishes a newer version, the settings header shows an update button naming it (checked when the page opens, cached for a minute; hover shows the installed and latest versions). It stays hidden otherwise, is not offered for a linked development checkout, and installs in place on one click, using the Host's own
dsh plugin addand falling back topnpm. The Host then swaps the new copy into the running profile through HMR, so a refresh is enough; a profile without HMR asks for a restart instead.
Installation
Requires DSH 0.2.0-rc.2 or later, with no upper bound, so a DSH upgrade never disables the plugin; tested on 0.2.0-rc.2, 0.2.1-rc.2 and the Windows Desktop build (0.2.1-rc.3). Install from npm:
dsh plugin --profile web add dsh-statusline-plus
The same release is also published as a GitHub Release tarball for pinned and offline installs:
dsh plugin --profile web add https://github.com/overact/dsh-statusline-plus/releases/latest/download/dsh-statusline-plus.tgz
For development, install a local clone with dsh plugin --profile web add file:/path/to/dsh-statusline-plus. The bundle registers its own plugin row and ships prebuilt files. With HMR enabled, plugin switches and settings apply live; linked source changes also hot reload when their directory is watched. Refresh the browser afterward. Restart DSH only when installation or an upgrade reports restart-required, and wait until no sessions are active.
For an earlier manual installation, remove the @local/dsh-statusline-plus row and dependency first to avoid duplicate registration. Existing statusline-plus settings remain compatible. See [release notes](CHANGELOG.md).
Settings
Open DSH Web → Settings → Statusline. Settings are saved under statusline-plus in the native profile.
Display switches, layout presets, ordering, quota sources and refresh options
<p><img src="docs/images/settings.png" width="680" alt="Statusline settings: component switches and ordering, layout preview, narrow-screen option, quota and peak toggles, account sources, cache and timeout"></p>
Setting · Default · Effect
enabled · true · All plugin displays and refreshes
hideBottomOnNarrow · false · At input-area widths ≤480px, unmount this plugin's bottom status line and stop its client activity; restore it when wider. Native stats remain visible
showGit, showContext, showCost, showActivity, showTools · true · Individual bottom components
showTps · false · Streaming speed
componentOrder · Git, context, TPS, cost, activity, tools · Bottom component order
showQuota, quotaAuto, quotaOnStep · true · Header quotas, provider selection and shared step refresh
showDeepseekPeak, deepseekPeakCountdown, showPeakDot · true · DeepSeek peak indicators and countdown
cacheTtlMs · 60000 · Quota result reuse; UI displays seconds, effective minimum 15s
fetchTimeoutMs · 10000 · Request timeout; UI displays seconds
quotaSources · {} · Per-subscription source pin, e.g. { "codex": "cpa" }, set in each source card. With none set: Magpie, then CPA, then the official tool's login file (read only, never refreshed). A pinned source has no fallback. See docs/features/quota/sources.md.
showClaudeQuota · true · Allow the Claude subscription chip.
quotaShowAll · false · Show every enabled subscription chip (Codex / Antigravity / Claude / OpenCode) and other subscriptions Magpie reports, instead of selecting one from the model
providers · Built-in sources · Credential references, source switches and endpoint overrides
The narrow-screen switch is in Bottom status line. It affects this plugin's bottom components; header quotas, peak indicators and native composer stats remain available.
DeepSeek reuses DEEPSEEK_API_KEY for API-key models (deepseek, deepseek-official). Models on DSH's signed-in `deepseek-account
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::8,最后更新 2026-11-05