DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Dashboard — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
D

@jinhun-tqtteam/dsh-dashboard

Dashboard

Session Dashboard plugin for DeepSeek Harness - every session, task progress, background jobs and KPIs on one page inside the harness web GUI. Installable with 'dsh plugin --profile web add @jinhun-tqtteam/dsh-dashboard'. Unofficial third-party plugin.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:jinhun-tqtteam/dsh-dashboard#5461b44c832c25ec57d77b7f48d50a2e7d6f1011
READMECompatibilityVersions
Dashboard screenshot

Compatibility and provenance

Dashboard is published as @jinhun-tqtteam/dsh-dashboard and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/13/2026

Versions

0.1.0stable
10/13/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Declares side effects by file
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/13/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsAb Chartdsh-ab-chartChart rendering tool with the browser card that draws its calls, in one publishable plugin packageWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editin

README

dsh-dashboard

Unofficial third-party plugin — not affiliated with, sponsored, or endorsed by DeepSeek AI.

Session Dashboard for DeepSeek Harness — every session, task progress, waiting-for-approval states, background jobs and token/KPI metrics on one page, injected straight into the harness web GUI. No separate server or page.

Features

  • Sidebar trigger — Dashboard toggle + sticky pin; icon-only rail mode with tooltips when the sidebar is collapsed
  • Full-screen panel (never covers the sidebar):
    • 18 KPI tiles, tone-coded (running blue / completed green / waiting amber / errors red) — the status tiles double as clickable filters
    • Search + status filter chips with status dots (All / Running / Approval / Needs input / Errors / Completed / Idle)
    • Session tables with labeled status pills, keyboard support (Enter opens, D opens details), sticky column headers
    • Attention ripple on sessions waiting for user approval/input
    • Workspace grouping, live job activity feed, subagent hierarchy tree
    • Slide-over detail drawer: todo progress, live jobs, session stats, token-usage composition with legend, context-pressure gauge
  • Floating live summary (sticky) — follows you across pages, minimized pill with a waiting counter
  • Notifications — in-page toasts + audio chimes + native OS banners for completed / error / waiting states, wired through a requestAnimationFrame frame bridge so they fire even when the tab is unfocused
  • Status model splits approval / question / plan-review out of pendingInteraction; errors come from crashed producer jobs
  • Colors ride DSH design tokens (--dsw-*) — light/dark theme for free; respects prefers-reduced-motion

Requirements

  • A running DeepSeek Harness install with the web GUI (this plugin only ships a client bundle)
  • Node.js >= 18 (only needed when building from source)

Install

One command (recommended)

The package is a profile bundle: it declares dsh.bundle.patch, so the harness CLI installs it and stacks its patch layer automatically — no manual cordis.patch.yml edits.

From a local checkout (no npm publish needed):

# run from this repo's directory
dsh plugin --profile web add .

# or from anywhere, with an absolute path
dsh plugin --profile web add C:/path/to/dsh-dashboard

From GitHub (pnpm git install of the prebuilt lib/):

dsh plugin --profile web add github:jinhun-tqtteam/dsh-dashboard

From npm (once published):

dsh plugin --profile web add @jinhun-tqtteam/dsh-dashboard

The command adds the package as a profile dependency, appends it to dsh.profile.bundles (its dsh.bundle.patch declares the loader entry), and restarts pick it up.

Manual (no CLI)

Copy the package folder (with the prebuilt lib/) into the profile's plugin store and register the loader entry by hand:

<profile>/web/node_modules/@jinhun-tqtteam/dsh-dashboard

Add to <profile>/web/cordis.patch.yml:

- insert:
    - id: dsh-dashboard
      name: "@jinhun-tqtteam/dsh-dashboard"

The loader entry name must exactly equal the bundle's registered id (the package name). The client module graph rejects a bundle that registers a different id.

Restart

Plugin-set changes need a harness restart; bundle-only changes reach the graph via a browser refresh.

Usage

ActionHow
Open the dashboardDashboard button in the sidebar footer (or the rail icon when collapsed)
Pin the live summarySticky pin button
Open a sessionsingle-click a row
Session detailsdouble-click a row, press D, or single-click in the sticky
Filterclick the KPI tiles or the status chips
CloseEsc (closes the detail drawer first, then the panel)
Toggle notificationsthe bell in the panel header or sticky header (dot: green = banners granted, amber = blocked)

Notification sounds & banners

The first bell click warms the audio context, asks for window-notification permission and starts a keep-alive so background tabs never silence alerts.

If the bell dot stays amber:

  1. Allow notifications for the harness origin in the browser (padlock icon in the address bar).
  2. Check the OS-level setting for the browser app, e.g. Windows Settings -> System -> Notifications.

How it works

The package registers one host-side plugin (an empty apply, purely to appear in the Loader) and one client bundle served at /plugins/@jinhun-tqtteam/dsh-dashboard/client.js. The bundle registers itself through window.__ModuleLoader__.load in the lazy-CJS shape the DSH client module system expects, mounts three shell.overlay entries (panel, sticky, notifications) plus one sidebar.footer.action entry (the trigger), and receives the openSession descriptor through the standard inject mechanism.

src/ is the source of truth; lib/ is committed so the manual copy install works without a build step.

Development

npm install
npm run build   # esbuild src/ -> lib/client.js (ModuleLoader CJS shape)
npm run smoke   # structural checks: bundle shape, slot registration, exports

The build fails if the bundle comes out suspiciously small. CI runs build + smoke on Ubuntu, Windows and macOS.

See CONTRIBUTING.md for the full contribution guide.

Troubleshooting

SymptomFix
bundle ... loaded without registering "<id>" in the logThe loader entry name and the package name differ — make them identical
Trigger button missingThe loader entry was not composed in yet — restart the harness after editing cordis.patch.yml
Panel opens but is emptySessions appear once the host publishes them; make sure at least one session exists
No sound while the tab is unfocusedToggle the bell once per page load (it enables the keep-alive + audio warm-up)

License

MIT © Tran Quang Tien