前言¶
用 DeepSeek Harness(DSH)跑 Agent 时,任务往往在浏览器或终端里进行:最小化窗口后,很难一眼看出当前是在思考、等授权还是已经失败。Web UI 能看会话详情,但不适合当作「始终可见」的状态指示器。
DSH Pet(仓库 sundusk/dsh-pet)是社区维护的 macOS 桌面伴侣:默认以像素形象「小雨」展示 Agent 状态,并配合菜单栏与桌面控件查看任务、收提醒、向 Harness 发消息。它依赖本机正在运行的 DSH,通过插件把会话事件桥接到原生应用;分类上常归入「模型推理」相关生态,本质是状态与输入桥接,而非替代 Harness 本体。
这是什么¶
DSH Pet 由维护者 sundusk 发布,当前 README 标注的应用版本为 v0.6.2,可从 GitHub Releases 获取 DSH-Pet.app.zip。
项目由两部分组成:
- DSH Pet.app:macOS 14+、SwiftUI 原生桌宠(纯菜单栏应用,不占 Dock)。默认小雨皮肤,也可在设置里切回「心情球」。
- dsh-moodball-status(npm 包名
@sundusk/dsh-moodball-status):DSH 侧的状态与输入桥接插件。订阅 Agent 会话事件,提供 HTTP 兼容接口与本地 Unix Socket;在 Harness 设置里没有插件配置卡片(配置都在 app 内)。
插件包名与应用数据目录仍沿用 dsh-moodball / MoodBall,以兼容旧配置;安装脚本会清理旧版 MoodBall.app。
核心功能¶
Agent 状态可视化¶
小雨(或心情球)会根据 Harness 状态切换动作或颜色,包括但不限于:未连接、待机、思考、等待授权、等待回答、完成、失败;待机时双击可挥手,拖动时有奔跑帧。心情球模式下,README 给出了各状态与颜色对应表(如空闲蓝色、工具调用紫色、未连接灰色等),颜色可在设置面板自定义。
任务与提醒¶
桌宠下方功能栏可展开:输入消息、当前任务、最近任务。当前工作区的普通 Harness 会话显示为任务卡片;多任务时按「等待操作、失败未读、完成未读、运行中、最近更新」等规则排序,最多直接展示四张,其余在区域内滚动。详情页提供「打开 Harness」与「复制会话 ID」(README 说明尚未发现可用的官方外部深链精确打开会话)。
向 Harness 发消息¶
宠物旁短横条在鼠标靠近时可展开输入框:首次发送前选择已注册工作区;Enter 发送,Shift+Enter 换行。第一条消息会创建 DSH Pet 专用会话,后续沿用同一会话;执行中或等待授权/回答时暂不能继续发送。「新建会话」只解除当前绑定,不删除旧任务。
支持全局快捷键(默认 Option+Space 唤起输入,可在「设置 → 快捷键」修改)。可在输入框粘贴剪贴板图片或使用框选截图,经官方 sessionController.prompt 附件入口提交;限制以当前 Harness 部署返回为准。
状态桥接方式¶
插件优先向 ~/Library/Application Support/MoodBall/moodball.sock 推送换行分隔的状态 JSON。本地 Socket 不可用时,app 回退到设置中的 HTTP 地址 /api/moodball/status,并继续尝试本地 Socket。桌面版 Harness 以本地 Socket 为主;DSH Pet 不会启动、停止或修改 Harness,也不模拟 Web UI。
安装与启用¶
先运行 DeepSeek Harness¶
DSH Pet 需要 macOS 14+ 且本机 DSH 已运行。README 示例之一为安装 Node.js 后:
npx @deepseek-ai/dsh web
默认 Web UI 在 http://127.0.0.1:3080。若使用 DeepSeek Harness 桌面版,插件需在桌面版「插件」页面安装 github:sundusk/dsh-pet 并重启桌面版(desktop profile;公开 dsh plugin CLI 不管理桌面版 profile)。
推荐:安装脚本(应用 + 插件)¶
在另开终端执行(命令来自项目 README):
git clone --depth 1 https://github.com/sundusk/dsh-pet.git
cd dsh-pet
bash install.sh
脚本会检测正在运行的 Harness(桌面版、NPX/NPM 或源码版),在对应 profile 安装状态插件,下载或复用 DSH Pet.app,优先装入 /Applications,无权限时回退 ~/Applications 并启动。插件刚装上而 Harness 仍在跑时,脚本会继续装 app;任务结束后需重启一次 Harness 加载插件,不必再跑安装脚本。安装器不会自动重启 Harness。
源码版 Harness 可显式指定根目录:
DSH_SOURCE_ROOT="$HOME/Projects/deepseek-harness" bash install.sh
仅补装桥接插件¶
若只装了 app、需单独装插件,按 Harness 启动方式择一执行后重启 Harness:
# 通过 npx 运行 Harness
npx @deepseek-ai/dsh plugin --profile web add github:sundusk/dsh-pet
# 已安装全局 dsh 命令
dsh plugin --profile web add github:sundusk/dsh-pet
# 从源码运行:先进入 deepseek-harness 源码根目录
pnpm dsh plugin --profile web add github:sundusk/dsh-pet
桌面版请用应用内「插件」页面,上述 CLI 仅针对 web profile。
典型用法¶
- 安装并启动 DSH Pet 后,菜单栏右侧出现状态图标,桌面右下角出现桌宠;Harness 未启动时会显示「未连接」,启动后自动连接。
- 日常打开:
open -a "DSH Pet",或从「应用程序」双击 DSH Pet。 - 菜单栏可查看连接状态与桥接方式,隐藏/显示宠物,打开设置或退出(退出不影响 DSH)。
- 用 Option+Space(或自设快捷键)唤起输入框,选工作区后发消息;待机时从底部栏查看当前/最近任务卡片。
- 「设置…」中调整外观(桌宠皮肤、大小、气泡、穿透)、行为(锁定位置)、API 与轮询;「行为」页可检查 GitHub Releases 更新。
卸载可执行仓库中的 bash uninstall.sh,按提示选择是否移除 dsh-moodball-status 插件(移除后需重启 dsh web)。
适用场景与注意¶
适合谁:主要在 macOS 上使用 DSH 做 Agent 开发或日常任务,希望浏览器最小化后仍能看到状态、快速发一条 prompt 或扫一眼多会话进度的人。
环境限制:仅 macOS 14+;Linux/Windows 不在 README 支持范围内。
插件权限:桥接插件随当前 DSH 进程权限运行,会接触会话事件与 Web 侧 API。安装前应阅读 sundusk/dsh-pet 源码与许可证(README 写明 MIT;npm 包 metadata 为 BSD-3-Clause,以你审阅的文件为准)。
常见问题:小雨未连接或心情球灰色时,确认 Harness 在跑、插件已安装并启用;CLI 版看 web profile 与 Web 服务,桌面版看「插件」列表是否「已挂载」且已重启。「设置 → 插件」里没有 DSH Pet 配置卡片是正常现象——桥接插件无 Harness 内设置项。
DeepSeek Harness 生态强调「一切皆插件」;社区目录 SkillHub 上的 dsh-pet 条目 与 GitHub 仓库相互独立,并非 DeepSeek / 幻方官方应用商店。
结尾¶
DSH Pet 把 Harness 的 Agent 状态从 Web 里「拎」到桌面:小雨或心情球负责可见反馈,dsh-moodball-status 负责事件与输入桥接。若你已在 macOS 上稳定使用 DSH,可按 README 跑 install.sh 或手动 plugin add github:sundusk/dsh-pet,重启 Harness 后即可在菜单栏与桌宠侧配合现有工作流使用。
- 目录页:https://www.skillhub.cn/plugins/sundusk/dsh-pet
- GitHub:https://github.com/sundusk/dsh-pet