插件目录 / UI & Skins / dsh-hud
dsh-hud
已验证 · 实测可装 a903067276-rgb
功能简介
HUD状态面板:git状态、MCP服务器、技能、模型与token用量浮动面板。
可用 — 实测通过,早期项目
HUD状态面板:git状态、MCP服务器、技能、模型与token用量浮动面板。 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-hud 📊
A HUD status panel plugin for DeepSeek Harness (dsh) web: one button in the input toolbar opens a floating panel with git status, MCP servers, skills, official usage info and balance.
Unofficial project: independently developed and maintained by a community member, not an official DeepSeek product.
Screenshot


The gauge button in the input toolbar opens the floating panel showing git status, commit history, MCP servers, skills and official usage info (tokens, cache hit rate, turns/steps, LLM & tool time, context usage).
Features
- Git — branch, ahead/behind, unstaged / staged / untracked files (collapsible groups),
per-file+N/-Nsummaries, click a file to expand its full diff, last 5 commits - MCP — connected MCP servers (derived from
mcp__<server>__<tool>tool names) - Skills — skills available to the current agent
- Official info — current model + reasoning effort, plan mode state, token usage
(input / output / cache-hit rate), session stats (turns, steps, LLM & tool time, decode
tok/s, context usage %) - Balance — official DeepSeek account balance, auto-fetched from
GET /user/balanceusing theDEEPSEEK_API_KEYcredential (the key never leaves
the host; shows--when unavailable) - Per-model usage — current session's token buckets broken down by model
(requests, input, cache, output), so flash/pro usage both remain visible after
switching
The button also shows a live badge with the number of uncommitted files, so you can see
at a glance that a project has pending changes without opening the panel.
Install
This repository is an official bundle plugin (dsh.bundle + dsh.client in the rootpackage.json), installed through the official profile manager:
dsh plugin --profile web add "github:a903067276-rgb/dsh-hud#main"
Then restart dsh web (bundle layers are composed at startup; HMR does not apply).
Requires pnpm on PATH (dsh plugin forwards to pnpm).
Manual mount fallback: see docs/install.md.
Usage
Click the gauge icon in the input toolbar (official DSH design tokens, follows
dark/light theme). The panel opens on the left side by default (240px wide), clear of the
official right-edge turn navigator; drag its title bar to move it anywhere (position
remembered in localStorage, restored on reopen); drag its left edge to resize
(200–480px, remembered in localStorage). Section headers
with count badges are clickable to collapse/expand. Data auto-refreshes every 30s (when
the panel is closed, only the lightweight git badge keeps polling).
Platform support
| Platform | Status |
|---|---|
| macOS | ✅ Fully tested (development environment) |
| Linux | ⚠️ Not yet tested — expected to work, see docs/install.md |
| Windows | ⚠️ Not yet tested — expected to work, see docs/install.md |
Requirements
- DSH web >= 0.1.1-rc.1 (run with
npx @deepseek-ai/dsh web) - Version compatibility (the per-model usage projection uses the DSH 0.1.1+ contract; 0.1.0-rc.7/rc.8 still use the old one):
- Maintenance policy: this plugin keeps evolving with the latest DSH releases; compatibility with older DSH versions is best-effort only and not guaranteed going forward.
| Your DSH version | Install this | Note |
|---|---|---|
| 0.1.1-rc.1 and newer | main (v1.2.15+) |
Full features |
| 0.1.0-rc.7 – 0.1.0-rc.8 | v1.2.11 — dsh plugin add github:a903067276-rgb/dsh-hud#v1.2.11 |
Last release with the pre-0.1.1 projection contract |
| 0.1.0-rc.6 and older | rc6-compat — dsh plugin add github:a903067276-rgb/dsh-hud#rc6-compat |
Frozen, no maintenance — upgrade recommended |
gitCLI on PATH- No extra shell needed: DSH's
shellservice executes everything viabash -con all
platforms (Git Bash on Windows), so if DSH runs, this plugin runs.
How it works
┌─ Host (Node, cordis plugin) ──────┐ ┌─ Browser (client bundle) ──┐
│ lib/index.js │ │ lib/client.js │
│ │ │ │
│ webServer.register(/api/dsh-hud) │──fetch──▶ input.left seat: button │
│ ├ /api/dsh-hud git/mcp/... │ │ shell.overlay seat: panel │
│ └ /api/dsh-hud/diff per-file │ │ │
└───────────────────────────────────┘ └────────────────────────────┘
The host serves JSON over the webServer prefix route and runs all git commands in a
single bash -c call with __HUD_[BHSLN]__ segment markers (fast project switches).
The client is a hand-written window.__ModuleLoader__.load(...) bundle with zero build
step, sharing state between the button and the panel through a module-level store
(useSyncExternalStore). Details and known pitfalls for maintainers:
docs/architecture.md.
Notes
- Use either the official bundle install or the manual mount — never both.
- All data is gathered locally from the running
dshinstance; the only outbound call is
the official balance API using theDEEPSEEK_API_KEYcredential (the key never leaves
the host). DSH_HUD_NO_WATCH=1disables file watching entirely — the HUD then refreshes purely
via its 30s polling + manual/focus refresh. Useful on machines with enormous directory
trees (e.g. a parent folder containing dozens of repos) where macOS file watchers are
unreliable; the watcher is also capped at 128 by default (deeper changes surface via
polling within ~30s).
Development
lib/index.js host half — data routes (git / mcp / skills / model)
lib/client.js client half — UI (button + panel), final bundle, no build step
cordis.patch.yml bundle patch — single package-name mount (official bundle flow)
docs/ install guide & architecture notes
examples/ manual double-mount example (fallback install path)
To test locally: symlink (or dsh plugin --profile web link) into the web profile'snode_modules, add the two mount entries, restart dsh web.
Design philosophy
Simple by design. dsh-hud is deliberately minimal:
- Zero dependencies — no runtime packages, no build step; the client bundle is the
final artifact in the repo - Read-only — it only reads git status, MCP/skills listings and official projections;
no git write operations, no file mutations - One button, one panel — no settings pages, no config files
It is an independent community project: not an official DeepSeek product, and not
affiliated with, forked from, or sharing code with any other DSH plugin project. If your
workflow needs heavyweight SCM operations (commit/push UI, file trees, git graphs), other
plugins cover that; dsh-hud deliberately stays a glanceable status HUD and coexists with
them.
Community
This is a plugin for DeepSeek Harness. Find more plugins via thedsh-plugin topic.
License
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-hud」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:a903067276-rgb/dsh-hud Headless(CLI)profile:
dsh plugin --profile headless add github:a903067276-rgb/dsh-hud 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。
使用场景
改变 dsh 的外观或交互方式——一套主题、皮肤或新面板,重塑工作区。
适合谁
在 web UI 里一待几小时、想让它按自己的习惯好看又好用的人。
二次开发建议
皮肤、面板和主题 token 是扩展点——写新皮肤、加面板,或与上游配色同步 token。