Editor's note

haxi8/dsh-JujutsuKaisen-rainlove

Animated video background for the DeepSeek Harness (DSH) web GUI — a GPU-friendly looping video behind the interface, with a mute toggle, tab-hidden pause, and skin-center occlusion/blur support.

This is a DeepSeek Harness (DSH) plugin. Review its GitHub README, installation information, maintenance status, and public security signals here.

dsh-video-bg

Animated video background plugin for the DeepSeek Harness (DSH) web GUI: plays a looping video behind the interface, GPU-friendly by design.

English | 中文

What it does

  • A full-screen looping video sits behind the dsh web interface (muted by default, per browser autoplay policy).
  • A small floating control (bottom-right) carries: a restore-original button, play/stop, mute, one occlusion slider and a volume slider; all choices are remembered.
  • The restore button turns the video background completely OFF (video layer + translucency removed) and returns the exact original look; click again to bring it back.
  • The single occlusion slider (背景遮挡) walks the whole see-through → blocked range: 0 = most transparent, the same level as the aionui right panel (surfaces keep their tuned translucent alpha incl. text backgrounds, no veil — the video is bright); 100 = fully occluded, the background completely blocked (surfaces fully opaque + a full veil). It drives --dsh-video-bg-scale and --dsw-skin-scrim in sync, so one knob controls the main interface — the aionui right panel keeps its own unmodified look, and no other plugin's behaviour is changed.
  • The shipped asset is a 1440p / 30 fps loop; replace it with your own video at assets/background.mp4.
  • Playback pauses while the tab is hidden (decode drops to zero — the biggest GPU/CPU saving) and resumes on return.
  • prefers-reduced-motion users get the static veil only, no playback.
  • Works with the dsh-web-ui skin center background controls: the occlusion slider (背景遮挡) and backdrop blur still apply to the video, because the layer sits behind the skin-center blur element.
  • The host serves the video over a read-only, same-origin-fenced route with Range support; no video data is embedded in the JS bundle.

Install

Requires DSH with dsh web working.

From a local checkout (development / self-hosted):

pnpm install
pnpm build
dsh plugin --profile web add link:$(pwd)
# restart dsh web, then refresh the browser page

From npm (once published):

dsh plugin --profile web add dsh-video-bg

Replace the packaged video with your own: drop a compressed loop at assets/background.mp4 (MP4 / H.264, 1440p or lower, ~10-15 s loop recommended) and rebuild, or fork this repo.

Config

No configuration. Replace the asset to change the video.

Known limitations

  • Opacity slider: 0 = the tuned see-through look (same level as the right panel), 100 = fully opaque, background completely blocked. Readability at 0 is carried by a light veil (plus the skin-center occlusion slider when you want it darker). Pairing with a translucent skin (e.g. whale-song from dsh-web-ui) is optional — it adds a frosted-glass look on top.
  • Browsers block unmuted autoplay: audio starts muted; click the floating button to hear it.
  • A video backdrop continuously uses GPU decode; keep the source short and low-resolution. The tab-hidden pause is the main safeguard.
  • Only one video is supported per install.

Security model

The host route (/api/video-bg/video.mp4) is GET/HEAD only, streams the single fixed packaged file (no path input), and rejects cross-site requests (Sec-Fetch-Site / Origin fence), mirroring the dsh-web-ui skin-center policy. No credentials, no user data, no remote execution.

Demo

  1. Start dsh web and open the GUI.
  2. Refresh the page — the video plays behind the interface, muted.
  3. Use the floating control (bottom-right): the monitor button restores the original background (click again to show video), the play/pause button stops or resumes, the speaker icon toggles mute, the occlusion slider walks the whole range (0 = transparent like the right panel, 100 = fully blocked), the last slider sets the volume.
  4. Hide the tab for a few seconds and return — playback resumes (it was paused in the background).
  5. In the skin-center background controls, drag 背景遮挡 to veil the video, or set a backdrop blur.

License

Apache-2.0 — see LICENSE.

REPOSITORY SIGNALS

Security & install evidence

This score is based solely on public repository metadata and the install evidence registered here — it is not a code security audit.

Traceable source

From a public plugin catalog, linked to a public GitHub repository.

License

The repository declares the Apache-2.0 license.

Maintenance activity

Code updates within the last 180 days.

Install evidence

No verifiable install metadata registered yet — please review the repository instructions manually.

Install lifecycle scripts

Detected prepare — review the scripts before installing.

Things to notelifecycle-scripts