HUD status panel: Git status, MCP servers, skills, model and token usage in a floating side panel.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:a903067276-rgb/dsh-hud
GitHub-sourced plugins run build scripts on your machine at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A HUD status panel plugin for DeepSeek Harness (dsh) web.
One button in the input toolbar opens a floating panel showing:
- 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 %)
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.
Platform support
| Platform | Status |
|---|---|
| macOS | ✅ Fully tested (development environment) |
| Windows / Linux | ⚠️ Not yet tested — expected to work, see docs/install.md |
Requirements
- DSH web (run with
npx @deepseek-ai/dsh web) 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.
Installation
This repository is an official bundle plugin (dsh.bundle + dsh.client in the root
package.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
pnpmon PATH (dsh pluginforwards to pnpm):npm i -g pnpmif missing, matching the profile store's major version. A manual fallback (file-path + package-name double mount in~/.dsh/cordis.patch.yml) exists for environments withoutdsh plugin— see docs/install.md. Use either the bundle install or the manual mount, never both.
Usage
Click 📊 HUD in the input toolbar. The panel opens on the right side (default 240px);
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).
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.
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's
node_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 the
dsh-plugin topic.
License
Links
More in this category
zhu1090093659/dsh-web-ui★ 1766
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
ccch1mneyyy/dsh-TUI★ 829
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 705
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
huiliyi37/dsh-tianshu-tui★ 131
A terminal UI (TUI) for DeepSeek Harness.
omdsh-dev/dsh-at-file★ 117
Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.
Nagi-ovo/dsh-visualize★ 79
In-conversation generative UI: the model renders interactive HTML cards into the chat stream, with streaming preview and sandboxed rendering.