Back to home

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