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.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
C

dsh-chibi-pet

Chibi Pet

A floating chibi pet for the DeepSeek Harness Web GUI: it follows one session, reacts to what that session is doing, and takes work you type into it. Unofficial non-commercial fan project, not affiliated with Hololive or DeepSeek.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:Cheva1234/dsh-chibi-pet#67e77a6907960c25920ed752d659795799e1225f
READMECompatibilityVersions
Settings → General

Compatibility and provenance

Chibi Pet is published as dsh-chibi-pet and currently resolves to version 1.0.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/18/2026

Versions

1.0.1stable
10/18/2026

Related plugins

Loading related plugins…

Latest
1.0.1
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
10/18/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 Session Titles Bundle@deepseek-ai/dsh-experimental-session-titles-bundleRefresh session titles as new human prompts arrive.Personalized Recommendations@deepseek-ai/dsh-personalized-recommendationsPersonalized pages and built-in plugin recommendations offered as cards below answersWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editin

README

dsh-chibi-pet

Unofficial fan project. Not affiliated with, endorsed by, or produced by COVER Corp., Hololive Production, or DeepSeek. Free and non-commercial; the artwork follows COVER's Derivative Works Guidelines — see ATTRIBUTION.md.

A chibi pet for the DeepSeek Harness Web GUI. It floats over the frame, belongs to one session, and shows what that session is actually doing — thinking, running tools, waiting for an approval, finishing, failing, dozing off. You can drag it anywhere, pat its head, and type a request straight into it: whatever you write is queued into its session.

The pet's poses

Install

The plugin is a Harness bundle. Pick whichever route you like — all three end up in the same place.

From the GUI (easiest). Open Settings → Plugins, paste one of these into the install field, and confirm:

dsh-chibi-pet                                    # after it is on npm
github:Cheva1234/dsh-chibi-pet                   # straight from this repo
https://github.com/Cheva1234/dsh-chibi-pet/releases/download/v1.0.1/dsh-chibi-pet-1.0.1.tgz

From the Plugin Manager tool (used by an agent, or by you):

{ "action": "install_bundle", "target": "github:Cheva1234/dsh-chibi-pet" }

From a clone, for development:

git clone https://github.com/Cheva1234/dsh-chibi-pet
# then point the Plugin Manager at that absolute directory

There is no build step at install time: the browser bundle is committed, so the installer only fetches files. Disable or uninstall it from the same Plugins page whenever you like.

Using it

InteractionWhat happens
click the pethead pat — refused while an approval or a failure is on screen
drag the petit moves and leans further the further you carry it
speech-bubble buttonopens the input: type a request, Enter sends it to the pet's session
right-clicksends the pet back to its corner
sidebar switch, Settings row, or Ctrl/⌘+Shift+.show or hide the pet

The sidebar switch

Position is remembered across reloads, and the pet only captures the pointer inside its own small box — everything under it stays clickable.

One session per pet

The pet attaches to a single session and reacts to nothing else. The first conversation it sees becomes its session; after that, other sessions never move it. The chat input's header names the session it serves, and if that session disappears the pet says so and offers to follow the conversation you are looking at.

Turn on follow mode (the switch inside the chat input) and the pet re-homes onto whichever conversation you are viewing instead of staying put.

Talking to it

The chat input

Enter queues your line into the bound session exactly as the composer would send it — it can never interrupt a running turn. Esc or a click outside closes the input. A rejected prompt is reported in the input instead of failing silently.

Carrying it

Holding the pet hangs it straight down; carrying it leans it into the direction of travel, further the further it goes. Distances are measured from where you picked it up, so pausing mid-drag never drops it back upright.

The carried pose building up

While you are looking elsewhere

If the bound session finishes a turn, fails, or needs an approval while it is not the conversation on screen, a small dot appears on the pet and on the sidebar switch. It clears as soon as you look at that session or open the pet's input.

Settings

Settings → General

SettingDefaultWhat it does
Chibi petonshow or hide the pet in this window
Pet sizeMediumSmall 84 px / Medium 112 px / Large 140 px wide
Pet nap time2 minhow long the pet stays idle before it falls asleep; Never keeps it awake
Follow the conversation I am viewingoffre-home the pet onto whatever you are viewing

Preferences live in this browser (localStorage), not in the Harness profile, so they do not travel between browsers or machines.

What the pet reacts to

PoseTriggerPlayback
greetingonce per page load, ~250 ms after mount, only when nothing is runningonce
thinkingsession running, assistant text streamingloop
workingsession running with a live tool callloop
waitinga new pending interaction (approval / question), deduped by its keyonce, then holds until answered
successa turn that ran > 600 ms ends without a new erroronce
errora new agent error appearsonce
head-patyou click the pet, unless an approval or a failure is showingonce
idlenothing to reportloop
sleepidle for the configured nap time with no work pendingloop
dragbeing carried — two drawings, one per directionheld

With prefers-reduced-motion: reduce the pet shows the first pose of each state and switches only when the state changes.

The pet is decoration: it never approves, denies, submits or dismisses anything, and it cannot see or influence tool policy.

Build it yourself

client.js is generated: it is src/pet-client.js with the sprite table inlined. The Harness serves a client plugin as JavaScript only — a plugin package cannot fetch its own PNGs over HTTP — so the atlases travel inside the bundle as WebP data URIs.

python3 tools/build_sprites.py --zip  /path/to/sprite-pack.zip
python3 tools/build_sprites.py --pack /path/to/extracted-pack

The layout it expects: <state>/frames/<state>-NN.png (six 512×560 RGBA poses per state) and <state>/animation.json (timed sequence and loop policy), for idle, thinking, working, waiting, success, error, head-pat, drag, sleep, greeting.

Useful flags: --frame-width 224 for a smaller bundle (display sizes scale down), --quality 80 for more compression. The module id in the bundle is taken from package.json, so the two can never drift.

Tests

node --check client.js           # the bundle parses as a browser script
node tools/check-bundle.mjs      # module id, atlas count, Loader row
node tools/test-machine.mjs      # 22 behaviour checks, no browser needed

tools/test-machine.mjs loads the real bundle with a stubbed window.__ModuleLoader__ and drives the exported behaviour fold: greeting once, no greeting over live work, thinking vs working, approval dedupe and hold, success threshold, error dedupe, head-pat urgency, sleep and wake, no cheer on a session switch, the three carry levels, and the preference table.

Rendering was verified in headless Chrome against a stand-in shell: every pose, light and dark, both carry directions, the chat input sending a real prompt, all three sizes, the sidebar switch, the Settings rows, the attention badge, follow mode, the keyboard command and prefers-reduced-motion.

Layout

PathRole
package.jsonbundle manifest, dsh.client, display metadata, icon
cordis.patch.ymlinserts the dsh-pet Loader row
index.jsHost half — intentionally inert
src/pet-client.jsclient source: state machine, renderer, slots, preferences
client.jsgenerated bundle served to the browser
tools/build_sprites.pysprite pack → atlas table → bundle
tools/check-bundle.mjsCI guard for the generated bundle
tools/test-machine.mjsbehaviour tests
locale/en.json, locale/zh.jsonPlugin Manager title and description
docs/the images in this README

Requirements and limits

  • The Harness Web GUI. The pet draws into shell.overlay, sidebar.footer.action, settings.general.item and conversation.composer.dock.
  • It floats anywhere inside the Harness window. An always-on-top window over your OS desktop is not something a web plugin can create.
  • Sending work uses the Client sessions service and queues into the bound session; it never approves anything on your behalf.
  • The keyboard command uses one of the few physical combinations the Web composition admits; rebind it in Settings → Shortcuts if it clashes.

Licence

Code: MIT.

The sprite artwork is third-party fan art and is not covered by that licence. It is used under COVER Corp.'s Derivative Works Guidelines as a free, non-commercial fan project, with no official affiliation — read ATTRIBUTION.md before reusing or forking, and note that the guidelines themselves are the authority and can change.