DSH Hub
dsh-macos-pet cover

Dkrillex/dsh-macos-pet

dsh-macos-pet

BundleDesktop1 GitHub stars· updated 2026-08-27

dsh-macos-pet is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-macos-pet

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-macos-pet DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-macos-pet.svg)](https://dshhub.dev/plugins/dsh-macos-pet)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Dkrillex/dsh-macos-pet, cleaned of badges and images.

DSH macOS Pet

<p align="center"><a href="README_EN.md">English</a> · <b>简体中文</b></p>

<b>一只跟着你的 agent 换表情的 macOS 桌宠。<br> 换成你自己的猫也行。</b>

<sub>进去一张照片,出来六个状态:空闲、干活、等你、报错、开心、睡着。<br> 生图跑的是你自己的工具、烧的是你自己的额度,我这边不往任何地方传东西。</sub>

<sub>它是一个真的 macOS 窗口,不是塞进 DSH 页面里的挂件。<br> 盖在我正在用的一切上面,全屏也盖得住,不用我告诉它现在该显示什么。</sub>


它解决什么

你让 agent 跑一个长任务,然后切去做别的事。它跑完了吗?挂了吗?还是卡在等你点一下授权?

要知道答案,你得切回去看。切回去本身不费时间,费的是它打断你手上正在做的事 —— 而一轮任务里你会切很多次。而且卡在等你授权是最贵的一种:agent 什么都没干,只是在等,而你不知道。

桌宠就是「不用切回去看」。它浮在所有窗口之上,全屏也盖得住,瞄一眼屏幕角落就知道现在是哪种情况。

安装

已经有 DSH 的话,一条命令:

dsh plugin --profile web add dsh-macos-pet
dsh web

装完宠物就浮在桌面上了,DSH 页面本身不会被塞任何东西。

从旧版本升级得带 @latest

dsh plugin --profile web add dsh-macos-pet@latest

不带的话写进去的是 ^0.x 范围,而 caret 作用在 0.x 上会锁住次版本号,^0.1.0 永远不接受 0.2.0。裸命令会报一句 Already up to date,旧版本原地不动。

不想装 DSH、只想看宠物:克隆下来跑 ./bin/dsh-macos-pet

想跟 main 分支而不是发布版:

dsh plugin --profile web add github:Dkrillex/dsh-macos-pet#main

零依赖。 装它不用先装别的东西,不用编译,也不需要 ffmpeg。跑的是系统自带的 python。

使用

按住身体任意处。放哪下次就从哪开始。
点一下展开会话清单:有哪些 DSH 会话、哪个还活着、各自在干什么。再点一下收起。
免打扰让它安静,直到你自己关掉。agent 照常干活,宠物不再反应。摸它还是会弹一下。
右键菜单:免打扰、会话清单、皮肤、宠物出现在哪、项目主页、检查更新、退出。
停掉./bin/dsh-macos-pet --stop,或者直接停 dsh web

它是后台进程,启动之后就脱离终端了,所以开它的那个窗口可以直接关。

状态

跟着本地 DSH 自动变,没有需要配的东西。

stateDiagram-v2
    [*] --> 空闲
    空闲 --> 干活: DSH 开始跑
    干活 --> 等你: 卡在确认或授权
    等你 --> 干活: 你回应了
    干活 --> 报错: 这一轮失败
    干活 --> 开心: 这一轮跑完
    开心 --> 空闲: 3.2 秒后自己回落
    报错 --> 干活: 下一轮开始
    空闲 --> 打盹: agent 与鼠标同时安静 90 秒
    打盹 --> 空闲: 任何动静,或者戳它一下
状态什么时候
空闲没事干,会呼吸、偶尔眨眼
干活DSH 正在跑
等你卡在确认、授权、要你输入
报错跑挂了
开心刚跑完一轮,3.2 秒后自己回到空闲
睡着agent 闲着你的鼠标也不动了才打盹,一有动静或者你戳它就醒

皮肤

在右键菜单的皮肤子菜单里挑,或者用 --skin <id> 指定启动时用哪套。每套六个状态齐全,每个状态三帧。

前五套是图像模型画的。Claude 和星星是几何画的 —— scripts/draw_skin.py 用纯标准库生成十八张源图,再走和其他皮肤同一条构建管线。所以没有生图工具、没有 API 额度也能重现它,而且每次生成的结果逐字节一致。想照这个路子做自己的皮肤:docs/DRAWN-SKINS.md

皮肤动起来
深索鲸(默认)<img src="docs/media/loop-deepseek.gif" width="120" alt="deepseek">
蓝鲸<img src="docs/media/loop-bluewhale.gif" width="120" alt="bluewhale">
线核<img src="docs/media/loop-threadcore.gif" width="120" alt="threadcore">
鹦鹉螺<img src="docs/media/loop-nautilus.gif" width="120" alt="nautilus">
水母<img src="docs/media/loop-jellyfish.gif" width="120" alt="jellyfish">
Claude<img src="docs/media/loop-claude.gif" width="120" alt="claude">
星星<img src="docs/media/loop-star.gif" width="120" alt="star">

空闲是 2.4 秒静止,然后一次很短的眨眼。三帧均分我试过,效果不好。

每套皮肤的六个状态

顺序:空闲 · 干活 · 等你 · 报错 · 开心 · 睡着

<p align="center"><sub>深索鲸(默认)</sub></p> <p align="center"><sub>蓝鲸</sub></p> <p align="center"><sub>线核</sub></p> <p align="center"><sub>鹦鹉螺</sub></p> <p align="center"><sub>水母</sub></p> <p align="center"><sub>Claude</sub></p> <p align="center"><sub>星星</sub></p>

用一张图做你自己的皮肤

把一张图交给你的 agent,让它做一套桌宠皮肤。插件里带了个 skill,负责把这张图扩写成一套皮肤要的十八个姿势,六个状态每个三帧。生图是你自己的工具在跑,烧的是你自己的额度,我这边不往任何地方发东西。做好的皮肤落在 ~/.dsh-macos-pet/skins/,在安装包外面,所以升级插件不会把它删掉。

十八张图烧的是真金白银,所以 skill 中途会停两次让你确认:第一张画出来先看角色对不对,第二张画出来再确认还是同一个角色。半路失败会告诉你缺哪几个,已经生出来的那些留着。

做好之后可以拿出来给人看。一条命令把六个状态拼成一张图:

./bin/dsh-macos-pet --skin-sheet <你的皮肤id>

欢迎投进 皮肤画廊,只交那一张预览图,帧素材留你自己机器上。

参数

Related plugins