Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

dsh-deep-pet

一个支持 DeepSeek Harness(DSH)网页版和桌面端的桌宠插件(Windows x64)。一个无边框、透明、置顶的小窗口, 在你跑任务时打字、完成时庆祝、出错时垮脸,闲着会自己找乐子。

桌宠 桌宠 桌宠

安装

最省事的办法——直接跟 DSH 说:

安装插件 https://github.com/0x3fffff/dsh-DeepPet

DSH 会读到这份说明并照着装。手动装的话:

dsh plugin --profile <你的-profile> add @0x3fffff/dsh-deep-pet

网页版和桌面端都可以在所用 profile 中安装同一插件。装完重启 DSH,桌宠会出现在主屏右下角。

国内用镜像源的注意:npmmirror 同步新版本要滞后一阵。装到旧版时不会报错, 只是新功能不在——看起来像「装了但功能没做」,很难往版本上想。想装最新版就 显式指定官方源:

dsh plugin --profile <你的-profile> add @0x3fffff/dsh-deep-pet --registry=https://registry.npmjs.org

已经装成旧版的话,npm view @0x3fffff/dsh-deep-pet version 看一下镜像上的版本, 或直接用上面的命令重装。

给 AI 助手:安装步骤

如果你是替用户执行安装的 AI,照下面做:

  1. 确认平台:目前只提供 Windows x64 二进制。其他平台请告诉用户需要自行 编译,别硬装。
  2. 问清 profile:上面命令里的 <你的-profile> 是占位符,不要照抄。 先问用户在用哪个 DSH profile;或让用户自己确认后再执行。
  3. 执行:dsh plugin --profile <profile> add @0x3fffff/dsh-deep-pet
  4. 不要加 --no-optional 或 --omit=optional。桌宠二进制是通过 optionalDependencies 按平台分发的,跳过它插件能装上但桌宠起不来。
  5. 让用户重启 DSH,插件在加载时才会拉起桌宠窗口。
  6. 确认成功:主屏右下角出现桌宠窗口。没出现的话看 DSH 日志——二进制没装上 时插件会明说。
  7. 用户在国内、npm 配了 npmmirror 镜像时,加 --registry=https://registry.npmjs.org。 镜像同步滞后会让 ^x.y.z 落回旧版,装上之后表现是「新功能不存在」而不是报错。

DSH 版本要求

本插件支持 DSH 0.1.x 与 0.2.x(peer 范围同时覆盖两代)。

⚠️ 0.2 起有个静默跳过陷阱,值得单独说清楚:DSH 0.2 的 dsh-app-boot 在组合 profile 时,会拿 bundle 声明的 @deepseek-ai/dsh-* peer 去比当前运行时版本; 只要有一条不满足,就把整个 bundle 跳过(丢进 skippedBundles)—— 不报错、不加载、桌宠不出现,而 DSH 自己照常启动。从外面看和「装坏了」完全 一样;原因只写在该进程的 stderr 上,GUI 启动时看不到。旧写的 peer 范围是 ^0.1.x,而 semver 里 ^0.1.1-rc.1 的上界是 <0.2.0-0,正好把 0.2.0-rc.2 排除掉,于是桌面版(0.2.0-rc.2)上必然踩中。

0.3.4 起 peer 已含 ^0.2.0-rc.1,正常安装不会再撞上。 若你装的还是 0.3.3 或更早、又想跑在 DSH 0.2.x 上,需手动放行一次,二选一:

  • 在 DSH 的插件管理器里对该插件点「允许版本」(等价 dsh plugin allow-version);

  • 或写 profile 的 compatibility.json (~/.dsh/profiles/<profile>/compatibility.json,重启 DSH 生效):

    {
      "@0x3fffff/dsh-deep-pet@0.3.3": ["0.2.0-rc.2"],
      "@0x3fffff/dsh-deep-pet-client@0.3.3": ["0.2.0-rc.2"]
    }

    两边都要写:host 包是 profile 直接加载的 bundle,网页端那半由 bundle 的 patch 插进来,各自独立判定。键和值都必须是精确版本,不支持范围。

它会做什么

  • 拖动:按下并左右拖动时播放 8 帧跑步动画,水平方向决定朝向(左=原帧朝左,右=水平镜像朝右;纯垂直拖动按朝左),松手停在原地并记住位置。
  • 空闲:默认 平常.webp 静态图,每隔 25~70 秒随机播一段待机动作(不连播同一个),播完回静态。
  • 工作中:DSH 开始跑任务时先播「开始打字」入场,播完接「持续打字」循环。进入有 800ms 防抖——半秒就结束的任务不该闪一下入场再跳走。
  • 任务进度:间歇式气泡,取自真实数据(todo/write 的 in_progress 优先,tool/call 兜底),显示 3 秒后消失、静默 1.5 秒,不常驻占屏。不播音效。
  • 长时间无操作:系统级空闲超过 5 分钟后播「打瞌睡 / 玩手机」并循环,60~120 秒换一个;一有输入立刻醒。
  • 屏幕边缘:拖到左/右边缘 24 逻辑像素内松手会吸附贴边,播「靠屏幕」入场后定格常驻;贴边期间不播待机一族的动作。
  • 任务完成:DSH 一次顶层 agent 运行结束时,播一段完成动画 + 气泡「{对话名称}」完成 + 播放 任务完成.mp3,随后回到空闲。会话还没生成标题时气泡退化成「任务完成」。
  • 任务出错:该轮出过错时,中断完成动画、改摆 晕.webp + 气泡「{对话名称}」出错了,不播音效(只有一个「任务完成」音效,失败时放它是错的)。
  • 任务终止:你点了「终止对话」时,摆 坐下.webp + 气泡「{对话名称}」已终止,同样不播音效。既不庆祝也不当成错误——是你自己按的。
  • 双击:气泡显示当前 DeepSeek API 余额(余额 ¥X.XX),失败时显示原因。
  • 余额提醒:默认开启,阈值 5。任务结束后和每 10 分钟各查一次余额,跌破阈值时播一段专门的动画 + 余额快用光了.mp3 + 气泡台词。提醒过一次就安静下来,直到你充值回阈值的 1.2 倍以上才会再提醒(中途继续烧到阈值的 40% 时允许再提醒最后一次)。工作中只出气泡不打断打字动画。开关和阈值在设置里。
  • 右键:弹出菜单。「打开 DSH」用默认浏览器打开 DSH 网页——地址取自 DSH 自己的 web 服务,所以 DSH 还在跑、网页被你关掉时正好用它找回来。(只有当前仍连接的 DSH 网页服务可用时显示;仅启动桌面端、未启动网页版时隐藏。)「设置」打开设置窗口(大小 / 气泡样式 / 气泡时长 / 台词 / 音效 / 余额提醒 / 重置位置 / 退出桌宠 / 退出 DSH)。其中「退出 DSH」会关掉整棵 DSH 进程树(连同正在跑的任务和桌宠自己),要点两次确认,正在跑任务时确认文案会提示。开发用的「测试面板」只在 DSH_PET_DEBUG 下露出。
  • 单击:无操作。
  • 网页端:DSH 网页侧栏底部有一个「启动桌宠」按钮——桌宠没在跑就拉起它,已经在跑就把它叫回主屏右下角(拖丢了、或跑到已拔掉的显示器上时很有用)。
  • 断连:与 DSH 断开时空闲态换成 寻找.webp 并每 1.5 秒重连一次;DSH 重启能在 30 秒内回来就继续陪你,超过 30 秒则自行关窗(见下)。
  • 穿透:只有立绘本身吃鼠标事件,窗口其余部分(气泡留白区)的点击直接穿到背后的窗口(见下)。
  • 尺寸:立绘高度 = 屏幕短边(宽高中较小者)的 1/10 × 倍率,宽度按 3:4 等比;桌宠与气泡各有一个 50%~200% 的倍率,在设置里调;初启位于主屏右下角。

配置项

写在 profile 的 cordis.patch.yml 里:

- id: deep-pet
  config:
    label: web
键 默认 说明
enabled true 是否启用
label "" 本 profile 的标识,非空时气泡前缀 [label]。一只桌宠服务多个 profile 时用来区分来源
apiKeyEnv DEEPSEEK_API_KEY 查余额时用的 key 环境变量名(双击手动查和余额提醒都走它)
balanceBaseUrl https://api.deepseek.com 余额接口 base URL
petBinary "" 桌宠二进制路径。留空即可——只有自行编译时才需要指过去
logEvents false 把收到的 agent 事件打进 DSH 日志,排查用

大小倍率、气泡样式、气泡时长、音效、台词开关、余额提醒不在这里——那些是 桌宠自己的显示行为,右键「设置」里调,改完立刻生效。余额提醒的阈值不带货币 单位:余额接口可能返回人民币也可能返回美元,桌宠只跟它返回的数字比。

许可

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages