- Home
- Plugins
- UI Enhancements
- dsh-pixelwhale
dsh-pixelwhale
lkrain821/dsh-pixelwhale
Turns the "deep diving" thinking status into a pixel font, with an animated pixel blue whale spouting and wagging its tail beside it.
Install
dsh plugin --profile web add github:lkrain821/dsh-pixelwhaleREADME
PixelWhale 🐋
![]()
深度求索时,派一只像素蓝鲸为你喷水摆尾。
A DSH (DeepSeek Harness) web UI plugin: while the model is thinking, the native 「深度求索中…」/ "Deep diving…" status row becomes a pixel-art DeepSeek blue whale spouting and wagging its tail, next to the same status text rendered in a pixel font with a glyph-level shimmer.
Features
- 🐋 Animated pixel whale — the hand-drawn DeepSeek blue-whale art (40×25 grid,
6-tone palette), expanded into an 84-frame spout + tail-wag loop, downsampled to
27×18 and painted as a CSS sprite sheet (
steps()animation). - 🔤 Real pixel font — Fusion Pixel 12px, subsetted to exactly the characters the status row uses (ASCII + the Chinese glyphs + a narrowed middle dot), embedded as WOFF2 so it works offline.
- ✨ Glyph-level shimmer — the moving highlight is clipped to the text glyphs
(
background-clip: text), so it travels across the strokes instead of the row. - 📐 Sits on the text baseline —
align-items: baselineon the status row puts the bottom of the whale on the same line as the bottom of the glyphs, hugging the text on its left. - 🎯 Non-invasive — the native text node, language, timer and update logic are untouched; only CSS is applied to the thinking row.
- 🪶 Zero runtime overhead — no
MutationObserver, no polling, no timers, no DOM writes after setup. The client half injects a single<style>element and nothing else runs, so there is no per-frame work and no memory growth while streaming.
Install
From the DSH plugin market, or:
dsh plugin --profile desktop add https://github.com/Lkrain821/dsh-pixelwhale
Then restart DSH.
How it works
- The host half (
lib/index.js) is a client-only cosmetics entry — it just mounts the bundle and exposes the browser half viaexports["./client"]. - The client half (
lib/client.js) injects one<style>element containing:@font-facerules for the subsetted pixel font, scoped withunicode-range;- a sprite-sheet
background-image+@keyframeson the native whale icon ([data-chat-running="true"] [class*="runningIcon"]), which replaces the shipped whale drawing without inserting any node; background-clip: textshimmer and the pixel font on the status text;align-items: baselineonrunningContentso the whale bottom lines up with the text baseline;- a
prefers-reduced-motion: reducefallback that pins the first frame and drops the shimmer.
Everything is keyed on the [data-chat-running="true"] attribute DSH puts on the
thinking row, so the whole effect appears and disappears with that row.
Verified against DSH 2.0.20-next. Selectors are attribute/substring based
(data-chat-running, runningIcon, runningContent, runningText) rather than
hashed CSS-module names, so they tolerate ordinary client rebuilds.
Font license
The embedded pixel font is Fusion Pixel Font,
licensed under SIL Open Font License 1.1 (OFL-1.1). See FONT-LICENSE-OFL.txt.
Font copyright belongs to TakWolf (https://takwolf.com) and upstream font authors.
The whale frames are derived from the DeepSeek blue-whale art used by dsh-TUI / dsh-ui-whale, courtesy of @lhh010.
License
MIT (see package.json). The bundled font carries its own OFL-1.1 license.
Related plugins
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-TUI
ccch1mneyyy/dsh-tui
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui