Just for Fun

dsh-pixel-whale

yoke233/dsh-pixel-whale · ★ 1

yoke233

dsh-pixel-whale adds a compact, animated point-cloud whale immediately before the Deep diving... status in DeepSeek Harness Web. It appears with a running turn, follows the…

License
MIT
Added
2026-08-23
Maintenance
active
Install kind
github

No manifest check is available; listing does not imply compatibility or security review.

安装

dsh plugin --profile web add github:yoke233/dsh-pixel-whale

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. See it in DSH Web
  2. Install
  3. How it works
  4. Design details
  5. Development
  6. Compatibility
  7. License

dsh-pixel-whale adds a compact, animated point-cloud whale immediately before the Deep diving... status in DeepSeek Harness Web. It appears with a running turn, follows the status across UI remounts, and leaves when the turn ends.

See it in DSH Web

This screenshot is rendered from the production browser bundle. In motion, the whale's large head stays weighty while the body bends, the tail and fin rebound, and small bubble scenes rotate between loops. Its pixels use a restrained blue palette with stable colors—movement comes from the body, not flashing points.

Install

dsh plugin --profile web add github:yoke233/dsh-pixel-whale

Restart DSH Web after the first installation. The whale appears automatically while a turn is running; there are no commands or settings to configure.

The installer may report peer-dependency warnings for DSH and React packages. Those packages are supplied by the DSH Web host; a completed install ending with Done is expected.

How it works

  1. The plugin mounts through DSH's session-scoped conversation.input.dock lifecycle.
  2. useSession provides the authoritative running state.
  3. A scoped MutationObserver follows the current conversation's status row.
  4. A React portal places the whale before Deep diving... and cleans it up when the turn stops or the plugin unloads.

DSH does not currently expose a public Slot inside its private turn-status component, so the small DOM adapter is intentionally isolated to one selector and one current-conversation observer. It does not replace the status text or write session data.

Design details

  • Compact: renders at 36 × 26px and stays on the status line.
  • State-aware: visible only while the current session is running.
  • Calm motion: stable pixel colors, restrained breathing, larger body and tail movement.
  • Accessible: respects prefers-reduced-motion.
  • Web-only: no prompt, tool, model-request, or host behavior changes.

Development

pnpm install
pnpm check

pnpm check runs TypeScript validation, motion and DOM-lifecycle tests, then builds the host and browser entries. Release packages are built entirely from published npm dependencies and include only the generated lib output, bundle patch, README, and license.

Compatibility

  • DeepSeek Harness packages: ^0.1.0-rc.6
  • Node.js: ^22.19.0 || >=24
  • Surface: DSH Web

The status-row selector follows the current DSH Web markup. If DSH later exposes a dedicated turn-status Slot, the adapter can move to that Slot without changing the animation engine.

License

MIT