dsh-whale-bg
English | 简体中文
An unofficial DeepSeek Harness Web UI background that rebuilds the DeepSeek
fish silhouette as a swarm of varied-size particle tiles.
This is a community project. It is not affiliated with, maintained by, or
endorsed by DeepSeek. The fish geometry is reused from the MIT-licensed
DeepSeek Harness repository; see THIRD_PARTY_NOTICES.md.
Features:
- Entrance — particles assemble from a scattered state into the whale
- Idle swimming — edges stay loose, the tail carries a travelling wave
- Hover — a radial mouse push with cubic falloff + per-tile angle noise
- Flashlight lighting — the light hugs the cursor: the whale is nearly
invisible until the mouse comes near, then brightens inside a small radius
- Themes — light (multiply blend, deep blue) and dark (screen blend, glow)
- 30 FPS rendering to keep the decorative layer inexpensive
Compatibility
Developed and tested against @deepseek-ai/dsh@0.1.0-rc.6 on its Web profile.
DeepSeek Harness is still in developer preview, so future releases may require
plugin changes.
Install
Install the dsh CLI by following the
DeepSeek Harness instructions.
This plugin is currently installed from a local checkout:
git clone https://github.com/gooosie/dsh-whale-bg.git
cd dsh-whale-bg
npm ci
npm run check
dsh plugin --profile web add .
dsh web
DSH's web command always boots the profile named web, so the plugin must be
installed into that profile. A local installation links to this checkout; do
not move or delete the directory while the plugin is installed.
The dsh.bundle patch inserts the whale-bg row and the dsh.client
declaration mounts the browser half as /plugins/dsh-whale-bg/client.js.
Verify the composed configuration with dsh web --dump-config.
Remove:
dsh plugin --profile web remove dsh-whale-bg
Development
npm ci
npm run build # tsdown -> lib/index.js (ESM host) + wrapped lib/client.js
npm test # validate manifests, entries, DSH handoff, injection, and theme API
npm run check # strict types + clean build + package verification
npm run watch
Structure
dsh-whale-bg/
├── package.json # dsh.bundle (patch) + dsh.client (web module) manifests
├── cordis.patch.yml # inserts the whale-bg composition row
├── tsdown.config.ts # ESM host bundle + CJS client bundle
├── scripts/ # package-level regression verification
├── README.zh.md # Simplified Chinese documentation
├── THIRD_PARTY_NOTICES.md
└── src/
├── index.ts # no-op host entry (enables the Loader entry / scan)
└── client.ts # the whole whale background plugin
Tuning
All knobs live in src/client.ts:
| Knob | Location | Default |
|---|
| Particle density | SAMPLE_SIZE, MODEL_STEP | 60, 0.18 |
| Whale size / position | computeLayout | ≤720×540, center |
| Flashlight radius | lightDistance / 7 | 7 model units |
| Idle visibility floor | light = 0.05 + … | 0.05 |
| Mouse push radius | distance < 4.9 | 4.9 model units |
| Frame rate | 1000 / 30 | 30 FPS |
Contributing and license
Contributions are welcome; see CONTRIBUTING.md. Project code
is available under the MIT License. Third-party notices and the
non-affiliation statement are in
THIRD_PARTY_NOTICES.md.