xbc996
schnauzer-pet
A floating, draggable, interactive schnauzer desktop pet for DeepSeek Harness (dsh). Cartoon + photo modes, agent-status reflection.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
schnauzer-pet
A floating, draggable, interactive schnauzer desktop pet for DeepSeek Harness (dsh). It sits above the Web UI, wags its tail, barks when clicked, and switches between a Q-version cartoon and your own photo.
给 DeepSeek Harness (DSH) Web 界面加一只悬浮、可拖拽、会互动的雪纳瑞桌宠。默认 Q 版卡通造型,也支持切换成真实照片;可以拖到任意位置,点击会汪汪叫、转圈圈,还有摇尾巴、眨眼、呼吸等动画。
Features / 功能
- Floating overlay — pinned above everything with the highest z-index; drag it anywhere with mouse or touch, position remembered in
localStorage. - Two looks — a built-in Q-version cartoon schnauzer (upright ears, silver brows + beard, pink-blue bow tie) by default; toggle to a real photo (assets/schnauzer.png) from the context menu.
- Agent status reflection — the pet reacts to what the agent is doing: paces while it thinks, shakes while it works (tool calls), and bounces with a "done!" bubble when a turn finishes.
- Interactions — click to bark & bounce, double-click to spin, right-click menu (pet it / speak / spin / reset position / hide / switch look).
- Idle animations — tail wag, blinking, beard breathing, occasional look-around and idle chatter.
- Summon — double right-click anywhere on the page brings a hidden pet back.
- Zero dependencies — plain browser JS in the dsh client plugin protocol; no build step, no framework.
悬浮覆盖层 / 卡通+照片双形象 / 反映 Agent 状态(思考、干活、完成)/ 点击互动 / 右键菜单 / 待机动画 / 召唤找回 / 零依赖。
Install / 安装
dsh plugin --profile web add schnauzer-pet
Restart dsh web, then refresh the page. The pet appears at the bottom-right corner.
安装后重启 dsh web 并刷新页面,右下角即出现桌宠。
Local dev: clone the repo and run
dsh plugin --profile web add .from the checkout (built artifacts are committed; no extra build needed). 本地开发:clone 后在仓库目录运行dsh plugin --profile web add .(构建产物已提交,无需额外构建)。
Usage / 使用
| 操作 | 效果 |
|---|---|
| 左键拖拽 | 移动宠物,位置自动记住 |
| 单击 | 汪汪叫 + 弹跳 |
| 双击 | 转圈圈 |
| 右键 | 菜单:摸一下 / 说句话 / 转圈圈 / 卡通模式 / 照片模式 / 回右下角 / 藏起来 |
| 页面任意处双击右键 | 召回藏起来的宠物 |
Configuration / 配置
Edit the plugin row in cordis.patch.yml:
- insert:
- id: schnauzer-pet
name: schnauzer-pet
config:
size: 150 # pet size in px
photo: false # true = start in photo mode (assets/schnauzer.png)
Replacing the photo / 更换照片
Drop your own image at assets/schnauzer.png (PNG with transparency recommended) — the client serves it via /schnauzer-pet/assets/schnauzer.png and the context menu's 照片模式 uses it instantly.
把照片放到 assets/schnauzer.png(推荐透明底 PNG),右键菜单「照片模式」立即生效。
Security / 安全
- The pet photo is served from a loopback-only route with a path-traversal guard.
- The plugin is pure client-side: it only adds a DOM overlay and two loopback routes. No network calls, no credentials touched, no code execution beyond the browser sandbox.
纯前端插件:仅一个 DOM 悬浮层 + 两个回环路由(图片服务、配置读取),带路径穿越防护;不联网、不碰凭据。
License
MIT