使用 dsh-pet 在 DeepSeek Harness 中添加桌面寵物

前言

DeepSeek Harness(dsh)把模型、工具、技能、會話、界面等都做成插件,官方倉庫的口號就是「一切皆插件」。Web 界面本身也是這條鏈路裏的一環:dsh web 起來之後,界面上能掛什麼,很大程度上取決於當前 profile 裏裝了哪些 bundle。

桌面寵物正好踩在這個接口上。社區裏已經有不少同類項目,有的會跟着 Agent 的思考/工作/完成狀態切動作,有的還會帶番茄鍾、鬧鐘。PC2005-cloud 維護的 dsh-pet 走的是另一條路:運行時不讀任務狀態、不調模型、也不塞業務功能,只在 Web 界面裏放一隻會呼吸、會走動、能點能拖的寵物。倉庫同時把「提示詞 → 綠幕視頻 → 透明動畫 → 可安裝插件」整條素材鏈公開了,不想用默認形象的人可以按同一套流程自己造一隻。

本文依據社區目錄頁、GitHub 倉庫(含 README.mdDESIGN.md、插件包 package.json)以及 npm 上的 dsh-pet@0.1.4 交叉覈對。社區插件目錄 deepseek-harness-plugin.com 是獨立站點,與 DeepSeek / 幻方沒有從屬關係,安裝前仍應回到源碼倉庫自行檢查。

這是什麼

dsh-pet 是一個面向 DeepSeek Harness Web 界面的趣味插件,由 PC2005-cloud 維護。代碼許可證爲 MIT(Copyright 2026 PC2005-cloud)。插件包當前版本是 0.1.4,已發佈到 npm,包名就是 dsh-pet。GitHub 倉庫頁面顯示 62 顆星(社區目錄頁同期顯示 61,以倉庫頁面爲準)。目錄分類爲「趣味」,收錄日期 2026-08-15,最近一次推送在 2026-08-16。

它解決兩件具體的事:

  1. 即裝即用:把一隻帶透明背景的動畫寵物掛到 dsh web 的浮動層上,默認出現在右下角。
  2. 可復現的自制流程:倉庫不是隻有成品插件,而是提示詞、Python 素材鏈、插件包三件套。clone 之後可以換角色、換動作、換風格,再把生成的 webm 裝回插件。

倉庫根目錄的 GitHub 簡介和社區目錄頁仍寫「28 個透明動畫」。當前倉庫文檔(根 README.mdDESIGN.md、插件包 README)以及 dsh-pet/assets/thumb/ 目錄裏的文件都是 51.webm。下文以倉庫內實際資源和文檔爲準。

核心功能

插件自己的 README 把定位寫得很明確:不摻天氣、系統監控、Agent 狀態感知,運行時也不調用 LLM 或外部 API。掛載方式是註冊到 DSH 官方的 shell.overlay 槽,屬於全應用浮動層,不改 Harness 內核。

已在 README / DESIGN.md 中寫明、且能和源碼描述對上的能力如下。

動畫鏈,而不是常駐循環待機。 每一段動畫(包括待機呼吸)都是播完就結束,然後按概率選下一段:30% 待機、10% 轉向、40% 動作、20% 移動。DESIGN.md 裏對應的實現是 pickNext()Math.random() 落到 <0.3 / <0.4 / <0.8 / >=0.8 四個區間;若屏幕空間不夠走,移動會回退成動作。首尾相接,沒有「空檔待機循環」。

51 段透明動畫。 插件包 README 列出的類型包括:待機呼吸、打瞌睡、玩魔方、哼歌、炸毛、吐泡泡、玩水槍、小提琴、藍鯨現世、喫白飯、照鏡子、舞蹈、寫代碼,以及放風箏、堆雪人、喫冰淇淋等季節動作。倉庫 dsh-pet/assets/thumb/ 裏可以覈對到全部 51 個 640×360 的播放用 webm,例如 待機呼吸休閒.webm打瞌睡被驚醒.webm螃蟹走路.webm,以及三支點擊回應和一支拖拽反饋。

朝向、落地和漫遊。 素材按對稱角色製作,朝右時用 CSS scaleX(-1) 鏡像。動畫統一腳底線(設計文檔寫的是 360 畫布上腳底 y=330),寵物看起來站在界面「地面」上,而不是漂在半空。移動時動畫只提供走路姿態,位移由代碼按 video.currentTime 驅動:前後各 2 秒準備/收尾不位移,中間 6 秒走完;出發前會檢查屏幕空間,避免走出可視區域。

點擊和拖拽。 點擊會隨機播一段回應(插件 README 寫的是開心 / 害羞 / 傲嬌三支);拖過約 5 像素判定爲拖拽,鬆手停在拖到的位置。切換用雙緩衝兩個 <video> 交叉淡入,設計文檔強調這樣切動作時沒有空白幀。插件 README 還寫了支持 prefers-reduced-motion

配置目前幾乎走代碼默認值。 插件 README 列出了 size(默認舞臺寬 462px,高度約 260px)、position(默認右下角)、fullRoot(默認 $DSH_HOME/pet-assets,用於更高分辨率母版)。其中 size / position 標明「暫未下發到瀏覽器」,原因是 DSH 客戶端配置管線限制,安裝後改這些項不會生效,只能改源碼裏的默認值。母版資源需要另行下載,不是開箱自帶。

三件套:從提示詞到插件

根 README 把項目畫成三條:

① 提示詞(配方)    →  ② 素材生成鏈(引擎)  →  ③ 插件(成品)
AI 生成動畫的配方     源視頻 → 透明動畫的管線    運行在 DSH 裏的寵物

對應目錄是 prompts/scripts/ + video/dsh-pet/。只想用現成寵物,不必碰前兩步;只有要換角色或加動作時,才需要走完整鏈。

1、按配方生成綠幕視頻

提示詞在 prompts/桌面寵物 10 秒動作提示詞.md。README 要求用 AI 視頻工具生成 51 個 10 秒綠幕視頻(項目自用素材由豆包生成,文檔同時提到可靈、Runway 等同類工具):

  • 比例 16:9,背景純綠幕 #00FF00
  • 人物位置固定:頭頂大約在畫面 20% 高度,腳底大約在 85% 高度
  • 動作全程留在畫幅內,首尾幀是標準正面站立
  • 每段按秒拆開寫動作

源 mp4 不進 git,以控制倉庫體積。需要復現時,從 GitHub Releases 的 assets-videos 標籤下載,放到 video/

mkdir -p video && cd video && gh release download assets-videos --repo PC2005-cloud/dsh-pet

2、綠幕視頻轉成透明動畫

素材鏈在 scripts/,按 README 依次跑四步(設計文檔寫整條鏈一共 7 個 Python 腳本,其中 make_mask_black.pyfill_nn.py 被第一步調用):

cd scripts
python watermark_step01.py   # 水印遮罩填充 → step01/
python chroma_step02.py      # 綠幕摳像轉透明(HSV 色相)→ step02/
python normalize_step03.py   # 歸一化 2160×1215 統一站立居中 → step03/
python encode_thumbs.py      # 轉碼 640×360 播放變體 → step04/

依賴是 Python 3、ffmpeg、numpy、scipy。README 寫明素材鏈會使用工作區 .tools/ 下的 ffmpeg。DESIGN.md 記錄了幾個實際踩過的點:VP9 透明通道必須讓 libvpx-vp9 出現在 -i 之前,否則 alpha 會丟成黑底;摳像最終用 HSV 色相(綠相約 70°–170°,並且飽和度/明度達到閾值才摳),而不是簡單 chromakey;水平居中用非透明像素的 x 中位數,避免手、道具把包圍盒中心帶偏。

中間目錄 step01step04 不入庫,播放用的 640×360 變體才同步進插件包。

3、同步進插件並本地安裝

cp step04/*.webm dsh-pet/assets/thumb/
dsh plugin --profile web add file:/path/to/dsh-pet

README 示例寫的是 Windows 路徑 file:D:/path/to/dsh-pet,換成本機倉庫路徑即可。注意這裏加的是倉庫裏的 dsh-pet/ 子目錄(真正的 npm 包),不是倉庫根目錄。package.json 聲明瞭 dsh.bundle(patch 文件 cordis.patch.yml)以及 dsh.client.platform: web,所以它只面向 Web profile。

安裝與啓用

社區目錄頁給出的安裝命令原文是:

dsh plugin add github:PC2005-cloud/dsh-pet

目錄頁同時提示:如需可復現安裝,應固定 commit 哈希:

dsh plugin add github:PC2005-cloud/dsh-pet#<commit>

<commit> 換成倉庫裏某個具體提交。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼,裝之前應查看源碼和許可證。

插件自己的 README / npm 頁面用的是 Web profile,並直接加包名(npm 上已有 0.1.4):

dsh plugin --profile web add dsh-pet

裝完後需要重啓 dsh web,寵物應出現在界面右下角。卸載對應爲:

dsh plugin --profile web remove dsh-pet

兩種寫法不要混着用錯對象:目錄頁的 github:PC2005-cloud/dsh-pet 從 GitHub 拉整倉;README 的 dsh-pet 走 npm 包。Git 安裝若觸發 pnpm 的 prepare/prepack,在 pnpm 10 及以上可能還要按 DSH 官方文檔把包鍵寫進該 profile 的 pnpm-workspace.yamlallowBuilds。官方說明見 打包與安裝插件

用起來是什麼樣

安裝並重啓 Web 之後,不需要再配模型、也不需要再跑素材鏈。寵物按動畫鏈自己切動作;點擊會播回應,按住可以拖到別的位置。左右朝向由轉向動畫翻轉 facing,所有動作可以鏡像。

如果只是「先看一眼效果」,這條路徑最短:用上面的安裝命令 → 重啓 dsh web → 刷新頁面。倉庫 README 的 GIF 預覽在 dsh-pet/assets/preview/,透明部分在 GIF 裏會顯示成頁面底色,實際 webm 播放纔是透明的。

要換自己的形象,按上一節的三步走:按提示詞出綠幕視頻 → 跑 scripts/ → 覆蓋 assets/thumb/ → 用 file: 重新安裝。設計文檔提到,pnpm 對 file: 依賴是複製而不是即時鏈接,改完源碼或素材後需要 removeadd,否則 profile 裏仍是舊副本。

適用場景與注意事項

適合已經在用 dsh web、只想在界面上放一隻純觀賞寵物的人;也適合想用同一套管線做自定義桌寵、但不想從零寫 overlay 和摳像腳本的人。它不是 Agent 狀態指示器:任務開始、等待輸入、出錯,寵物都不會跟着變。同類但定位不同的社區項目還有 keleus/deepseek-petminybear/DeepSeek-Harness-Pet 等,不要和本倉庫的包名、安裝命令弄混。

使用前需要接受這些限制:

  • 只支持 Web。 package.jsondsh.client.platformweb,CLI / TUI 裝了也不會在終端裏出現這隻寵物。
  • 權限與供應鏈。 插件跑在當前 dsh 進程權限下。目錄頁的安全提示和源碼檢查仍然適用;固定 commit 比追蹤 main 更可復現。
  • 素材許可未單獨寫死。 代碼是 MIT;根 README 寫「素材(動畫/提示詞):見倉庫說明」,DESIGN.md 裏素材協議仍標「待定」。二次分發動畫和提示詞前,應再看倉庫當時的說明,不要默認可以按 MIT 隨便再發布素材。
  • 體積和依賴。 播放資源打進 npm 包;完整綠幕源視頻在 Releases,自制流程還要本機 Python、ffmpeg、numpy、scipy。
  • 目錄頁數字可能滯後。 動畫數量以倉庫 assets/thumb/ 爲準;星標以 GitHub 倉庫頁面爲準。

小結

dsh-pet 做的事情很窄:在 DeepSeek Harness 的 Web 界面裏放一隻不接業務、不耗模型額度的桌寵,並把「AI 視頻 → 透明 webm → 插件」這條鏈一併開源。現成寵物用目錄頁或 npm 一條命令就能裝;要自己的形象,就按倉庫裏的提示詞和四步腳本走一遍。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-pet/

GitHub:https://github.com/PC2005-cloud/dsh-pet

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜