Skip to main content

deepseek-harness-desktop/packages/dsh-particle-theme

156Stars5Forks6Issues0Watchers

Adds a fullscreen whale particle background effect to DeepSeek Harness Web UI. The plugin recognizes page state changes and automatically adjusts particle density and speed accordingly. Does not replace the current skin.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki

ⓘ This plugin is a sub-package of the ningbainb/deepseek-harness-desktop monorepo — stars and activity count the whole repository.

Language
TypeScript
License
BSD-3-Clause
Branch
main
ai-agentai-coding-assistantcodexdeepseekdeepseek-harnessdesktop-appdshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add --allow-build=@linxin666/dsh-particle-theme github:ningbainb/deepseek-harness-desktop#path:packages/dsh-particle-theme

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin ningbainb/deepseek-harness-desktop/packages/dsh-particle-theme for me: review the repository at https://github.com/ningbainb/deepseek-harness-desktop first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Sentence Positioning

Adds an extra layer of whale particle background covering the entire workspace for the DeepSeek Harness Web UI. The plugin detects the user's current page state and automatically reduces particle intensity around input areas and popups, making the visuals lively without distracting from content.

Core Capabilities

  • Mounts a full-screen canvas that doesn't receive mouse/keyboard interactions to draw whales and floating particles on the main interface background
  • Switches between five performance modes based on page state: Normal, Input Focused, Dialog Open, Reduced Animation, Page Hidden
  • Provides a settings card to adjust particle density, opacity, and movement speed, with one-click theme toggle
  • Automatically adjusts quality through an adaptive frame budget mechanism—long periods of slow frames reduce particles, stable fast frames restore them
  • Detects system prefers-reduced-motion: reduce preference and automatically freezes the visuals when triggered
  • Registering a new particle scene only requires writing an ID and update/dispose implementation to ParticleThemeRegistry without modifying the controller

Technical Implementation

  • Language: TypeScript + React 18
  • Key Dependencies: @deepseek-ai/cordis (plugin runtime), @deepseek-ai/dsh-client-runtime (settings scope/slots/locale), @deepseek-ai/dsh-client-ui-settings (settings card UI), schemastery (configuration schema)
  • Architecture Pattern: Standard cordis bundle plugin (cordis.patch.yml registers particle-theme), host half (src/index.ts) only declares settings namespace, browser half (src/client/) registers locale, binds settings scope, injects settings card, and starts canvas controller; exposes entry via ctx.slots.inject('web-ui.plugin.item', …) on the settings page
  • Entry Files: src/index.ts (host half), src/client/index.ts (browser half exports apply)

Applicable Scenarios

Users who want the DSH workspace to feel more lively without replacing their current theme. The particle background runs independently above work content, making prolonged use less monotonous without affecting readability; particularly useful for users who enjoy customizing visual atmosphere and want to extend the whale from the launch screen into the workflow.

Prerequisites & Compatibility

DependencyMinimum VersionDescription
DSH Platform SDK>=0.1.0-rc.7@deepseek-ai/dsh-client-* series in peer/devDependencies all require ^0.1.0-rc.7
React^18.2.0package.json peerDependencies
Node RuntimeNot Declaredpackage.json doesn't declare engines field
PlatformCross-platform (Browser Web)dsh.client.platform = web; runs in DSH Web UI browser half, no native module dependencies
Native ModulesNoneOnly depends on schemastery, no native bindings like node-pty or sqlite

Installation

dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/dsh-particle-theme

Configuration Options

ConfigTypeDescriptionDefault
enabledBooleanWhether to mount the global particle canvas. Immediately removed when disabled, no restart neededtrue
themeStringSelect registered scene. Current schema only accepts built-in whale; extending new scenes requires also expanding the enumwhale
densityNumber (0.35–1.5)Scale total particle count in the view1
opacityNumber (0.08–0.55)Scale overall view transparency, default prioritizes text clarity0.26
speedNumber (0.4–1.6)Scale whale tail movement and ambient particle speed; automatically frozen when system-level "Reduce Motion" is enabled1

FAQ

Q: Will enabling it affect content display in the chat interface?

A: The canvas has pointer-events: none and aria-hidden="true", neither intercepting mouse clicks nor being read by screen readers; when the input box gains focus or a dialog opens, the controller automatically reduces density, opacity, and speed by one level, prioritizing text contrast.

Q: Can it run on lower-performance computers?

A: Yes. AdaptiveFrameBudget dynamically degrades based on sustained frame time: if 40 consecutive frames exceed 26ms, particle count is reduced (minimum 0.45x), and restored when 180 consecutive frames stay below 18ms; device pixel ratio is capped at 1.5, and the entire render loop pauses when the page is hidden.

Q: What if settings changes don't take effect?

A: Settings are instantly published to the browser-side canvas through the standard settings scope; under normal circumstances, changes take effect the next frame; if the interface shows "Particle theme config not exposed to settings page," the current DSH version's settings bridge doesn't include this plugin—you need to upgrade the Web UI settings bridge or configure the particle-theme namespace directly in settings.yaml.

Q: How to disable without uninstalling?

A: Turn off the enable toggle in "Settings > Plugin Config > Whale Particle Theme," and the canvas is immediately removed from the page without affecting other features; next enable doesn't require restart.

Q: Will it consume model tokens or increase request latency?

A: No. This plugin is pure rendering-side implementation, doesn't read conversation content, send network requests, or enter the model call chain; model experience is completely unchanged before and after installation.

Q: How to extend my own particle scene?

A: Client exports ParticleThemeRegistry and ParticleThemeDefinition interfaces; for a new scene, write a factory that returns { update(state), dispose() }, assign a unique id during registration; the controller automatically reuses existing lifecycle, settings subscription, and page awareness logic.

Q: Can it be used on mobile or tablet browsers?

A: Yes, but the canvas adapts to window size with no dedicated mobile interaction adaptation; it's recommended to disable the theme on mobile to save battery.

Q: Will there be residual files after uninstall?

A: No. The plugin doesn't write local storage or create external resources; after uninstall, the canvas is removed from DOM during controller dispose() and all subscriptions/listeners are unbound.

Getting Started Difficulty

Beginner — Default configuration works after installation, all parameters have graphical sliders on the settings page, no code or documentation reading needed to dial in your preferred atmosphere.

Known Issues & Limitations

  • The theme field in settings schema currently only accepts built-in whale ID; new scene packages need to extend the optional theme enum in addition to registering the definition to be selectable in the settings card (src/index.ts:17)
  • Adaptive quality is based on sustained frame time rather than GPU telemetry; won't主动降级 on devices where GPU is actually strained but frame rate is acceptable (README.zh.md:53)
  • Canvas z-index: 3, if other skins or plugins place overlay elements at higher layers, they may visually cover the particle layer
  • Version during installation is 0.1.15, in early iteration stage; configuration fields or tier values may be adjusted in future releases

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/ningbainb/deepseek-harness-desktop/packages/dsh-particle-theme)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory