sundusk/dsh-pet ↗★ 0

@sundusk/dsh-moodball-status

DeepSeek Harness Agent status bridge for the DSH Pet macOS desktop pets: a host-only plugin with HTTP compatibility and a local Unix socket transport. 适合macOS用户,通过桌面宠物直观展示DSH Agent的连接状态。

패키지
@sundusk/dsh-moodball-status
호환성
미검증
Harness peer 범위
^0.1.5-rc.2
Cordis peer 범위
^4.0.1
버전
0.6.0
라이선스
MIT
최근 업데이트
2026. 9. 26.

같은 패키지 이름의 다른 저장소

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sundusk/dsh-pet

✨ 使用

安装并启动后,桌面上没有任何窗口——它是个纯菜单栏应用(不占 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 服务与 web profile;桌面版检查应用内「插件」页面与 desktop profile,插件刚安装后需重启桌面版。
  • 「设置 → 插件」里怎么没有 DSH Pet 插件卡片? 这是正常的——桥接插件没有任何设置项 (所有配置都在 app 的设置面板里),所以不显示配置卡片。可在「设置 → 插件 → 插件列表」 中查看它(状态为「已挂载」)。