dsh-gpu-pulse
Manifest validFloating GPU monitor (nvidia-smi) for the DSH Web UI — live per-GPU utilization, VRAM, temperature, power and fan, in the corner of the page.
dsh-gpu-pulse
A floating GPU monitor inside the DSH Web UI. Live per-GPU utilization, VRAM, temperature and power, plus the top VRAM-consuming processes when the driver reports them, rendered as a compact, draggable strip (one row per GPU) in the DeepSeek Harness page.
Works on any machine with an NVIDIA driver (Windows or Linux): the data comes from nvidia-smi, so multi-GPU rigs show one instrument block per GPU. nvidia-smi only reports discrete NVIDIA adapters, so integrated GPUs (Intel UHD, AMD iGPU, ...) are never part of the display. No extra service to run and no agent tools to call: the card polls the DSH host's own route.
Note: the plugin is NVIDIA-only (nvidia-smi backend). On machines without an NVIDIA driver it degrades to a small GPU n/a pill and re-probes every 5 minutes, so it lights up on its own once a driver is installed.
Screenshot

The strip stays on top of side panels and side cards (for example the dsh-better-sidebar Files panel) instead of being covered by them.
Positioning
The strip starts at the bottom-right corner and is draggable: press and drag it anywhere on the page. The position is remembered (persisted per browser profile), so it stays where you left it across new sessions and reboots. Double-click the strip to reset it to the default corner.
Install
# from GitHub
dsh plugin --profile web add github:zhubaohi/dsh-gpu-pulse
# or from a local clone
dsh plugin --profile web add /path/to/dsh-gpu-pulse
The npm name dsh-gpu-pulse is reserved: dsh plugin --profile web add dsh-gpu-pulse will work once the npm package is published.
Then restart dsh web. The strip appears at the bottom-right corner of the GUI; drag it wherever you like and the spot is remembered.
What you see
One row per GPU, intentionally compact (about 85 px for two GPUs):
- status dot: green / amber / red by the worst of the row's thresholds
- name: the exact GPU name as reported by the driver (hover for the GPU index and fan speed)
- GPU: utilization (green below 60%, amber 60-85%, red at 85% and above)
- VRAM: used/total GiB (green below 75%, amber 75-90%, red at 90% and above)
- TEMP: temperature (green below 65 °C, amber 65-80 °C, red at 80 °C and above)
- PWR: power draw (whole watts below 1 kW)
- TOP PROCESSES: the biggest VRAM consumers, when the driver attributes memory per process (most recent Windows drivers report
[N/A]for graphics contexts, in which case this section is omitted) - footer: driver (KMD) version + timestamp of the last sample
The exact GPU name (as reported by the driver) is shown in every row.
Configuration
Everything is optional: defaults work out of the box. Override in the profile's cordis.patch.yml (an id-targeted patch replaces the whole config, so restate every field you want to keep):
- id: dsh-gpu-pulse
config:
pollMs: 3000 # client poll interval hint, default 2000, floor 500
showProcesses: true # also collect per-process VRAM consumers
nvidiaSmiPath: 'C:\Windows\System32\nvidia-smi.exe' # default: "nvidia-smi" via PATH
pollMs is a hint served to the client in every status response, so it applies to all open tabs without a browser-side setting.
How it works
- Host (
index.js): registersGET /dsh-gpu-pulse/statuson the DSH host web server. Each request runs up to fournvidia-smiqueries (--query-gpumetrics,--query-gpu=index,name,--version, and optionally--query-compute-apps) with a 4 s timeout, parses the CSV, and returns JSON. Results are cached for ~1.2 s so several open tabs share one process per poll cycle. - Client (
client/client.js): a hand-written__ModuleLoader__bundle (no build step, the only require is the platformreactseed) that mounts the widget into theshell.overlayslot. It polls the status route, styles itself with the active theme's--dsw-*token variables (static fallbacks keep older hosts readable), and handles its own pointer events for dragging (the position is stored inlocalStorageunder adsh-gpu-pulse:poskey). Because side-panel plugins stack above the overlay slot's default z-index, the client promotes the overlay layer to the top of the app's stack at runtime, so side cards and drawers can never cover the widget.
Requirements
- Node ≥ 18,
dsh web0.1.0-rc.6+ (theshell.overlayslot) - An NVIDIA driver with
nvidia-smionPATH(Windows or Linux) - No runtime dependencies beyond Node builtins
License
MIT, see LICENSE. nvidia-smi is a NVIDIA Corporation tool, invoked read-only.
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 1.2.0 | — | — |
Comments
Loading…
Similar plugins
by JoblessJoe
Live btop-style hardware monitor (CPU/mem/temp/GPU) tab for the DeepSeek Harness (dsh) web GUI
★ 1
NOASSERTION
TypeScript
Oct 25, 2026
dsh plugin --profile web add dsh-vitalsby 173787247
Probes nvidia-smi and GPU visibility inside WSL.
★ 1
MIT
JavaScript
Sep 29, 2026
dsh plugin --profile web add dsh-wsl-gpuSidebar system monitor for the DSH Web UI: live host overview (CPU/memory/network/disk), process list, and Docker container status, all read-only.
★ 1
MIT
JavaScript
dsh plugin --profile web add dsh-side-monitorDisplays real-time CPU and memory usage for the machine running the DSH Web server.
★ 0
dsh plugin --profile web add dsh-system-monitorReal-time host performance monitoring for the DeepSeek Harness right Sidebar: CPU / memory / swap gauges plus a sortable process table. · DSH 右侧栏实时性能监控
★ 0
MIT
JavaScript
dsh plugin --profile web add @xmwengxing/dsh-client-ui-sidebar-perfmonby AKS1st
DSH Web 系统状态悬浮窗:实时 CPU/内存/磁盘占用率 | System-status overlay showing live CPU, memory and disk usage for DSH Web
★ 2
↓ 22/wk
BSD-3-Clause
JavaScript
Sep 8, 2026
dsh plugin --profile web add dsh-sysmon