DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Ui Pet — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
U

@nkj/dsh-ui-pet

Ui Pet

A canvas sprite-sheet pet that follows the pointer, rendered in the dsh web shell.overlay slot.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Nkjv2/dsh-ui-pet#038a6d232225b9705f1e2b034fbb91103aeac149
READMECompatibilityVersions

Compatibility and provenance

Ui Pet is published as @nkj/dsh-ui-pet and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/23/2026

Versions

0.1.0stable
8/23/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
8/23/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Pet@linxin666/dsh-petMulti-pet companion plugin for the dsh web GUI: a registry-driven floating pet that reacts to model activity, with per-pet naming, petting/feeding interactions and an affinity score

README

@nkj/dsh-ui-pet

A canvas pet for the DeepSeek Harness web GUI. It follows the pointer and is styled as a subtle background decoration in the shell.overlay layer: position:fixed (no layout impact), fully click-through (pointer-events:none), a low z-index (below other overlay entries and dialogs), and < 1 opacity so the page content shows through — visible without covering or blocking the real UI. v1 is presentation-only (pointer follow) with a procedurally-drawn vector mascot; a later version reacts to session / agent activity.

How it plugs in

The package is a dsh bundle (dsh.bundle → cordis.patch.yml) that is also a client plugin (dsh.client). Installing it into a profile with dsh plugin --profile web add <pkg> auto-registers it (the CLI reconciles installed dependencies that declare dsh.bundle into dsh.profile.bundles), then the client module system serves /plugins/@nkj/dsh-ui-pet/client.js on the next boot. No manual cordis.yml edit.

Built-in dev loop

# once: install build deps
pnpm install

# build both artifacts (lib/index.js host half + lib/client.js browser bundle)
pnpm run build

# iterate: rebuild the browser bundle on source change (the dsh host stat-polls
# the served bundle and broadcasts a reload, so the browser refreshes on write)
pnpm exec tsdown --watch

Verify locally (before publishing)

dsh plugin --profile web add /absolute/path/to/dsh-ui-pet
pnpm dsh web          # bind http://127.0.0.1:3080

In the browser at http://127.0.0.1:3080, confirm:

  1. In the tree — dsh --profile web --dump-config contains the ui-pet row.
  2. Bundle served — DevTools → Network shows /plugins/@nkj/dsh-ui-pet/client.js (200); or curl http://127.0.0.1:3080/plugins/@nkj/dsh-ui-pet/client.js.
  3. Rendered, and visible — DevTools → Elements: the <canvas> is inside the shell.overlay layer, position:fixed, pointer-events:none, low z-index, and opacity < 1. Move the pointer; the pet follows it, and the page content remains visible through the semi-transparent pet (it never blocks or covers the UI).
  4. Behavior — move the pointer; the pet follows it. The overlay does not block clicks (the layer and canvas are pointer-events:none).

While SPRITE is empty in src/client/sprite.ts, the pet draws a colorful placeholder blob, so step 4 is verifiable without any asset.

Publish

pnpm run build
npm pack            # confirm lib/, cordis.patch.yml, and src are in the tarball
npm publish --access public

After publishing, a user installs it with:

dsh plugin --profile web add @nkj/dsh-ui-pet

Customizing the pet

  • Make a sprite sheet, then set SPRITE (asset path or URL) and tune FRAME_COLS/FRAME_ROWS/FRAME_W/FRAME_H/FPS in src/client/sprite.ts. Set SIZE/scale in src/client/Pet.tsx to match.

Model Experience

None. The pet manages browser-only presentation; nothing reaches a model request.

KV Cache effect

None; this package neither assembles nor sends a provider request.

Target version

Runtime-compatible with dsh 0.1.1-rc.2 (the web profile). The host dsh install supplies the runtime react, @deepseek-ai/cordis, and the slots service.

The published package is intentionally build-dependency-free: the source uses no @deepseek-ai/* imports (the DSH-specific types are left structural/untyped), so the standalone build needs only react + tsdown + typescript. The DSH integration is by convention: apply receives a ctx with a slots service, and the bundle is the standard window.__ModuleLoader__.load closure factory.

Known Limitations and Deferred Work

  • v1 is pointer-follow only. Reacting to session / agent streaming (the asset/activity animation) is deferred: the pet can read the active session through the standing runtime hooks the shell.overlay slot provides.
  • The pet lives in the shell.overlay floating layer, so it paints above the app content (it is deliberately semi-transparent and small so it does not obscure it). Rendering it genuinely behind the content is impossible from a plugin without DSH source changes: the conversation/details/sidebar surfaces are opaque and would fully cover a behind-content canvas.
  • The ctx / slot types are structural and untyped to keep the standalone build self-contained. When developing inside the dsh monorepo, restore the real ClientContext / PropsRuntime<'shell.overlay'> types for full checking.
  • The bundle format (closure factory + React externalization) is reproduced from the dsh clientBundle preset; iterate against a live dsh web to confirm exact output.