dsh-pet
PC2005-cloud/dsh-petDSH Web UI 桌面宠物,Windows / macOS / Linux 三端可用:浏览器浮层或透明置顶桌面窗口,106 个透明动画、带挤压与粒子的甩抛反弹物理、随会话事件实时联动的工作状态气泡、碎碎念与带持久记忆的对话、余额展示、表情包配图、多开同屏,并支持直接放入的自定义动画与宠物种类(pet pack)。
A floating companion for the DeepSeek Harness web GUI (dsh web). A draggable cartoon cat or dog sits on the UI, changes expression with the current session, and chats in short lines. Drag it, click it, or double-click to tuck it away. Skins live on their own Companion settings page, picked from a thumbnail grid.
https://github.com/user-attachments/assets/3e2c4737-ffda-43fd-96af-e79537123468
Open Settings → Companion and tap a breed. The choice is remembered locally.
| Orange | Ragdoll | Maine Coon | Golden shaded | Silver shaded |
|---|---|---|---|---|
| Cream | Poodle | Border Collie | Corgi | Shiba |
|---|---|---|---|---|
Same character, same pose — only the face changes. The orange cat as an example:
| Neutral | Working | Writing | Happy | Thinking | Sad |
|---|---|---|---|---|---|
It blinks while idle. Whole-body motion kicks in for thinking, tool calls, streaming, done, and errors.
| Mood | When | What you see |
|---|---|---|
| Idle | Nothing running | Breathe + blink, “Here whenever you need me~” |
| Queued | Message sent, not started | A hop, “Got it! Joining the queue” |
| Confirming | Approval or a question waiting | Head tilt, “Waiting for your approval~” |
| Thinking | Running, no output yet | Thoughtful, “Let me think…” |
| Working | A tool is running | A sway, “Still busy, hang on~” |
| Streaming | Answer tokens arriving | “Writing the answer…” |
| Done | Turn just finished (~4 s) | A cheer, “Done! 🎉” |
| Error | Turn failed | A shake, “Oops, something went wrong…” |
| Greeting | You just switched sessions (~4 s) | “Hi there!” |
You need a DeepSeek Harness that can run dsh --profile web (@deepseek-ai/dsh-client-* ≥ 0.1.0-rc.5).
Add it to the web profile with the official command:
dsh plugin --profile web add @falser101/mascot
Restart dsh --profile web. The companion appears in the lower-right corner; Settings gains a Companion page. Without npm: dsh plugin --profile web add github:falser101/dsh-mascot.
For a local checkout:
dsh plugin --profile web add /path/to/dsh-mascot
Remove it with:
dsh plugin --profile web remove @falser101/mascot
pnpm build # emit lib/ (host half + browser bundle)
pnpm watch # hot-reload the client half
pnpm test
lib/ is committed, so git and npm installs need no extra build step.
To swap art: overwrite the same-named jpgs under docs/<breed>/ → node scripts/build-art-assets.mjs → rebuild. Prompt pack: docs/character-art-prompts.md.
MIT