@sundusk/dsh-moodball-status
连接DSH状态至macOS桌面宠物应用 适合macOS用户,通过桌面宠物直观展示DSH Agent的连接状态。
同名包的其他仓库
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sundusk/dsh-pet说明文档
阅读完整 README ↗✨ 使用
安装并启动后,桌面上没有任何窗口——它是个纯菜单栏应用(不占 Dock、不抢焦点): 菜单栏右侧出现状态图标,桌面右下角出现小雨(或你选择的其他皮肤)。
以后怎么打开?
- 访达 → 应用程序(或 ~/Applications):找到「DSH Pet」,双击
- 终端:
open -a "DSH Pet"
菜单栏图标功能
| 菜单项 | 功能 |
|---|---|
| 状态文字 | 当前连接状态、状态名与桥接方式(如「已连接 · 工具调用 · 本地桥接」) |
| 隐藏 / 显示宠物 | 隐藏或显示桌宠及其操作栏 |
| 设置… | 打开设置面板 |
| 退出 | 退出 app(不影响 DSH 本体) |
小雨交互
- 拖动:按住小雨拖动,她会朝拖动方向奔跑,并记住停留位置
- 双击:待机时小雨会挥手
- 锁定位置(设置面板 → 行为)开启后不可拖拽,仍可双击
第一阶段:快捷入口
- 默认按 Option+Space,可在「设置 → 快捷键」重新录入组合键或关闭。快捷键冲突时 DSH Pet 不会抢占其他应用,并会在设置面板提示。
- 「设置 → 快捷键」的“功能快捷键”区域可分别修改或关闭输入消息、新建会话、选择工作区、打开 Harness、显示/隐藏宠物、打开设置和状态展示的菜单快捷键;默认使用不冲突的
⌘组合键。 - 快捷键会显示并聚焦输入框;输入框已打开时重复按下不会关闭、不清空草稿。按 Esc 收起输入框,中文输入法选字时 Enter 仍只确认候选文字。
- 菜单栏“隐藏/显示宠物”同时控制桌宠及其操作栏。点击穿透设为“永远点击穿透”时,仍可通过全局快捷键唤起输入框。
向 Harness 发送消息
宠物下方的短横条会在鼠标靠近时变成笔记按钮。点击后展开原生输入框:
- 首次发送前选择 Harness 已注册的工作区,DSH Pet 会记住目标。
- Enter 发送,Shift+Enter 换行;中文输入法选字时 Enter 只确认候选文字。
- 第一条消息创建 DSH Pet 专用会话,后续消息沿用同一会话;执行中、等待授权或等待回答时暂时不能继续发送。
- “新建会话”只解除当前绑定,不会删除或停止旧 Harness 任务;“打开 Harness”进入现有 Harness 首页。
- 命令插件不可用时仍可显示旧版状态,但输入功能会明确禁用;草稿不会被静默丢弃。
第二阶段:多任务卡片与提醒
- 待机时保留宠物下方的短横线;鼠标靠近后展开底部功能栏,从左到右分别是输入消息、当前任务和最近任务。

小雨与底部功能栏(透明背景)
- 当前工作区的普通 Harness 会话会显示为任务卡片,子 Agent 不单列。多任务默认只显示排序第一项,箭头展开纵向列表,最多直接显示四张,超出部分在卡片区域内滚动。
- 排序优先级为等待操作、失败未读、完成未读、运行中、其他最近更新任务。点击卡片查看详情并标记已读;“继续此会话”才会切换输入目标,当前草稿不为空时会先阻止切换。
- 任务标题、状态图标和更新时间优先来自 Harness;标题服务不可用时使用工作目录和会话 ID 后缀回退。未读位置由 DSH Pet 本地保存,首次加载不会把历史任务批量标成未读,重连后会继续使用已读位置。
- 精确打开会话仍未发现可由插件调用的官方外部深链,因此详情提供“打开 Harness”和“复制会话 ID”。
第三阶段:截图附件
- 在输入框内直接粘贴剪贴板图片,或点击回形针菜单选择“框选截图”;框选期间桌宠和快捷控件会暂时隐藏,完成或取消后恢复。
- 图片先保存在 DSH Pet 的私有草稿目录并显示缩略图,可移除;提交失败会保留文字和图片,并提供重试。只有 Harness 确认接收后才清理应用私有副本。
- 支持图片单独发送,也支持图片随文字发送。数量、单张大小和总大小使用当前 Harness 部署返回的限制,不写死默认值。
- DSH Pet 将图片交给官方
sessionController.prompt附件入口,由 Harness 校验当前模型的图像能力并持久化;不会把本机临时文件路径作为消息内容,也不会删除 Harness 已保存的附件。
桌宠皮肤
设置面板 →「外观」→「桌宠」可即时切换:
首次安装默认显示小雨;之后会记住你选择的宠物。
- 小雨:使用迁移自 Harness Desktop 的像素图集,支持待机、思考、授权、提问、完成、失败、挥手,以及左右拖拽奔跑。
- 心情球:保留原有呼吸、眨眼、气泡和状态颜色。
两种皮肤共用 Agent 状态、显隐、大小、气泡、发光、穿透和位置记忆设置。 小雨的悬浮窗口按精灵和光晕收紧;状态气泡出现时才向上扩展,精灵之外的透明区域不会触发展开操作栏。
状态展示
菜单栏 →「状态展示…」(⌘D):查看每个状态下心情球的实时外观,可切换气泡文字的显示与隐藏, 并可将当前状态保存为 PNG 图片。
心情球的颜色含义
| 状态 | 心情球 | 颜色 |
|---|---|---|
| 空闲 | ![]() | 蓝色 |
| 正在思考中 | ![]() | 绿色 |
| 工具调用 | ![]() | 紫色 |
| 等待你的授权 | ![]() | 黄色 |
| 做出你的抉择 | ![]() | 粉色 |
| 搞定啦 | ![]() | 青色 |
| 出错了 | ![]() | 红色 |
| 停止 / 中断 | ![]() | 黑色 |
| 未连接 / 插件未装 | ![]() | 灰色 |
心情球的颜色可以在设置面板自定义。
状态桥接与设置面板
插件会优先向 ~/Library/Application Support/MoodBall/moodball.sock 推送换行分隔的状态 JSON;本地桥接不可用时,app 自动回退到设置中的 HTTP 地址 /api/moodball/status,并继续尝试本地 Socket。桌面版的 Host 默认端口与 CLI Web 版不同,使用桌面版时以本地 Socket 为准。
DSH Pet 的状态 Socket 只读;输入功能由独立的用户级命令 Socket 转发到官方 workspaceRegistry / sessionController。DSH Pet 不会启动、停止、升级或修改 Harness,也不模拟 Web UI。
菜单栏 →「设置…」可调整:球大小、呼吸速度、8 种状态颜色、眼睛开关与颜色、 气泡文字开关、发光开关、锁定位置、API 地址、轮询间隔、点击穿透模式等,修改立即生效。
「行为」Tab 底部还有版本与更新:显示当前版本,自动/手动检查 GitHub Releases 是否有新版本,有则给出「前往下载」链接。
卸载
git clone --depth 1 https://github.com/sundusk/dsh-pet.git
cd dsh-pet
bash uninstall.sh
脚本会退出并移除 DSH Pet.app 与旧版 MoodBall.app(检查 ~/Applications 和 /Applications),
并询问是否同时移除 dsh-moodball-status 插件(移除后重启 dsh web 生效)。
常见问题
- 小雨显示未连接,或心情球是灰色的? 先确认目标 Harness 正在运行、状态插件已安装并启用。CLI 版检查 Web 服务与
webprofile;桌面版检查应用内「插件」页面与desktopprofile,插件刚安装后需重启桌面版。 - 「设置 → 插件」里怎么没有 DSH Pet 插件卡片? 这是正常的——桥接插件没有任何设置项 (所有配置都在 app 的设置面板里),所以不显示配置卡片。可在「设置 → 插件 → 插件列表」 中查看它(状态为「已挂载」)。








