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.

Combo — DSH Plugin for DeepSeek Harness
← Plugins
C

dsh-combo

Combo

PowerMode-style real-time streaming token and tool-call combo feedback for DeepSeek Harness, featuring 5 distinct presets, 6 synthesized audio themes, and a live HUD simulator.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:QuentinCrane/dsh-combo#1bdc0bad42c07e2f45ac3603eb52fcc91cf7e527
READMECompatibilityVersions
Countdown demo

Compatibility and provenance

Combo is published as dsh-combo and currently resolves to version 0.6.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/16/2026

Versions

0.6.0stable
10/16/2026
0.5.0stable
10/3/2026
0.4.0stable
10/2/2026
Show 1 more versionCollapse versions
0.3.0stable
10/2/2026

Related plugins

Loading related plugins…

Latest
0.6.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/16/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
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

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-combo

English | 简体中文

A lightweight DeepSeek Harness (DSH) plugin that displays per-turn thinking and tool-call combos in DSH Web and DSH Desktop. Each completed model round (assistant/message) and committed tool/call adds one; the counter resets at a turn boundary.

Countdown demo

Features

  • Listens to real-time streaming chunks (assistant/live-chunk) to compute token-level combos as the model types, delivering immediate visual and audio hits! Also respects Host's dshCombo projection and committed tool calls.
  • Keeps the counter turn-based by default. Set expireMs to opt into an idle timeout; adjust tokensPerCombo to tune tokens needed per combo hit.
  • Shows the latest thinking/tool/output activity, tiered visual feedback, optional sound, and a per-session pin that can carry a streak across turns.
  • Carries its own configuration page on the Plugins page, where every setting — sound included — is saved into the profile and applied live.
  • Runs in the DSH Web Client, including the Web UI embedded in DSH Desktop. It does not add content to model requests or contact a third-party service. Pin state is stored in the client page's localStorage.

Install with the official CLI

This is an independent community plugin installed through the official dsh plugin CLI. It is not produced by DeepSeek. It ships runnable JavaScript with no install-time build scripts.

Install into the profile you use. Web and Desktop have separate profiles:

# DSH Web UI
dsh plugin --profile web add github:QuentinCrane/dsh-combo

# DSH Desktop
dsh plugin --profile desktop add github:QuentinCrane/dsh-combo

For DSH Desktop, launch the app once to initialize its profile, fully quit it, and run Desktop's bundled dsh command. If that command is not on your PATH, enable it through Manage dsh Command in the app first. Reopen Desktop after installation. See the official Desktop guide.

To install a local checkout instead, use the path to the directory containing package.json:

dsh plugin --profile <profile> add link:/absolute/path/to/dsh-combo

Check that the bundle layer appears in the profile before launching:

dsh --profile web --dump-config
dsh --profile web

The plugin contributes a Host projection and a DSH Client module. DSH Desktop embeds the same Web application, so the module also runs there when installed into the desktop profile. DSH requires Client modules to declare platform: web; this describes the Client runtime contract and does not mean the plugin is limited to the standalone Web profile. After installing or changing package files, restart the profile unless its HMR setup has applied the change.

Configure

In the app

Open Plugins in the sidebar, select the dsh-combo bundle, and use the configuration section on its page. Every setting lives there — including the sound switch, volume and starting combo — and a save is written into the profile's row config and applied immediately, with no restart and no page reload.

The HUD's own gear panel stays a per-browser quick tune on top of that: it previews changes for this browser only and keeps them in local storage. Saving the same key from the Plugins page clears that local override, so the profile value is what you see. The panel's 恢复默认设置 drops every local override and goes back to the configured values.

In the profile patch

The bundle provides working defaults in cordis.patch.yml. To override them by hand, add a later row for dsh-combo in the profile's cordis.patch.yml:

- id: dsh-combo
  config:
    enabled: true
    showToolName: true
    animation: normal
    particles: true
    preset: particles
    timerMs: 10000
    powerThreshold: 0
    effectFrequency: 1
    shake: true
    shakeIntensity: 3
    scale: 1
    offsetX: 18
    offsetY: 10
    barHeight: 7
    particleCount: 0
    particleSize: 4
    particleSpread: 1
    effectDurationMs: 820
    glow: 1
    accentColor: ''
    numberColor: ''
    showGain: true
    showTimer: true
    position: top-right
    excludeTools: []
    expireMs: 0
    sound: false
    soundTheme: blip
    soundVolume: 0.35
    soundFrom: 10
    pinPromptMs: 5000

DSH patch layers replace a row's complete config object. Include every setting you want to keep when overriding the row.

SettingDefaultMeaning
enabledtrueShow the HUD.
comboModehybridCombo calculation mode: hybrid (stream tokens + tool calls), tokens (streaming tokens only), or tools (classic: tool calls and settled rounds only).
showToolNametrueShow the most recent tool below the counter.
animationnormaloff, normal, or strong; strong uses a larger pop. Reduced-motion preferences disable CSS animation.
particlestrueEmit the selected effect on each combo gain while animation is enabled; particle density grows with the combo tier.
presetparticlesDefault effect: particles (particles), fireworks (fireworks), slash (blade slash), aura (energy aura), or glitch (cyber glitch).
positiontop-righttop-right, top-left, bottom-right, or bottom-left.
excludeTools[]Tool names to ignore, matched without case sensitivity.
expireMs0Optional idle reset in milliseconds; 0 enables infinite mode (never reset on idle). Includes quick presets `[ ∞ Infinite
soundfalsePlay synthesized audio hits; rapid calls within 60 ms coalesce.
soundThemeblipAudio theme: blip (soft chime), keyboard (mechanical switch thock), (satisfying pop), (8-bit chiptune), (sci-fi beam), (rising pentatonic scale).

Invalid enum values use their defaults; numeric settings are clamped to their documented ranges. The Host half declares every setting as a volatile field of its Schemastery Config, which is what puts them on the Plugins page and lets a write apply without restarting the row.

Display behavior

A completed model round counts once even when the provider does not expose reasoning text; its label is 思考. Streaming chunks, failed attempts, interrupted prefixes, history replacements and repeated settlement of the same turn/step do not add combos. Thinking and tools both refill the countdown.

CountDisplay
1–9Green multiplier, bar and glow and square particles
10–19Larger multiplier, yellow-green glow and more particles
20–49Yellow glow, slight shake and denser particles
50+Orange glow, largest multiplier and densest particles

The unboxed PowerMode-style meter displays a bold multiplier beneath a bright bar. Use the selector below it to switch between 5 distinct visual presets (particles, fireworks, slash, aura, and glitch); switching previews the effect without changing the count. Your choice is saved locally and overrides the configured default preset. All presets share count-driven colors: green at 1–9, yellow-green at 10–19, yellow at 20–49, orange at 50–99, cosmic violet at 100+, cyber cyan at 200+, inferno crimson at 300+, and hyper prismatic rainbow at 500+. Presets change the motion, while explicit custom colors and color themes override this palette.

The 📌 button keeps the current run as a streak for that Session. When an unpinned turn ends, a run of at least two calls stays dimmed for pinPromptMs; pin it during that window to continue counting across turns. Pin state survives a page reload in local storage.

Appearance and rhythm

Use the gear beside the meter to edit appearance, timing and effects immediately. Preferences are saved locally; Reset clears local overrides and restores the configured defaults.

The countdown bar visually shows the remaining active combo window. When expireMs is configured, the countdown bar drains over that window and resets the combo upon expiry; when set to 0 (or the ∞ Infinite preset), it runs in infinite mode without idle timeout. Pinned streaks remain preserved across turns.

OptionDefaultRangeDescription
expireMs00–600000 msIdle reset time; 0 indicates infinite mode (never expires on idle). Quick preset buttons available.
timerMs100001000–60000 msBase countdown bar duration; overridden by expireMs when idle reset is active.
powerThreshold00–1000Combo needed to activate feedback and effects.
effectFrequency11–20Combo gains per burst; batches crossing a trigger boundary also emit.
shaketruebooleanIndependent combo-shake switch.
shakeIntensity30–12 pxShake amplitude.
scale10.5–2Scale the meter and its particles.
offsetX180–240 pxHorizontal edge offset.
offsetY100–240 pxVertical edge offset, clearing window chrome at the top.
barHeight72–16 pxCountdown bar height.
particleCount00–80Particles per burst; 0 automatically scales with combo tiers.
particleSize41–12 pxParticle size.
particleSpread10.25–2Spread multiplier.
effectDurationMs820200–2500 msBurst animation duration.
glow1

Inspired by VS Code PowerMode: remaining time expresses rhythm, threshold and frequency control feedback, and presets combine with independent customization. This implementation uses CSS animations and DSH session projections, with completed model rounds and tool calls driving feedback.

Repository layout

dsh-combo/
├── index.js              # Host Session Projection and config route
├── client.js             # DSH Client module and overlay HUD
├── cordis.patch.yml      # Installable DSH bundle layer
├── package.json          # Bundle and Client module manifests
├── test/                 # Host and Client unit tests with local runtime shims
├── docs/                 # Development, publishing, and troubleshooting notes
├── README.md
├── README.zh-CN.md
├── CONTRIBUTING.md
├── CHANGELOG.md
└── LICENSE

Development

Run the local unit suite with:

npm test

The Client reads the active binding from uiSession.adapter.current and subscribes to sessions.binding(id).session.projections.faceOf('dshCombo'). The Host owns the fold over committed Session events. dsh.client.inject lists package relationships; the Client plugin's exported Cordis inject list declares the runtime services it waits for.

Release and npm distribution notes live in docs/publishing.md: the release workflow tests, publishes the version to npm once NPM_TOKEN is configured, and always creates the GitHub release with the packed tarball.

For the public bundle and Client contracts, see the DSH plugin publishing guide, Client Modules reference, Session Projections reference, official Client package rules, and Desktop guide. DSH is in developer preview and may introduce breaking API changes.

For GitHub discoverability, add the dsh-plugin topic to the repository.

bubble
arcade
laser
melodic
soundVolume0.35Hit volume from 0 to 1.
soundFrom10First count that plays a hit. Range: 0 to 1000.
pinPromptMs5000How long a finished run of at least two calls remains available to pin. Maximum: 60000; 0 disables the prompt.
0–2
Glow strength; 0 turns it off.
accentColor''#RRGGBB or emptyOverride glow and particle color; empty uses combo tier colors.
numberColor''#RRGGBB or emptyOverride the number and bar color; empty follows combo tier colors.
showGaintruebooleanDisplay the floating +N gain.
showTimertruebooleanDisplay the countdown bar.