🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

桌面精灵 purezhi/dsh-plugin-pando

DeepSeek Harnessv1.0.1
purezhi26 天前有提交已提供中文文档扫描:含敏感能力

复刻 confirmo for DeepSeek Harness

30.7/100
综合分
1
GitHub 星标
135
npm 周下载
—/5
用户评分

数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @purezhi/dsh-plugin-pando
npm 源 · @purezhi/dsh-plugin-pando 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过

安装清单取自 dsh-plugin-pando/package.json

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@purezhi/dsh-plugin-pando @ 1.0.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:21:13

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 18 处,展示前 16 条)
  • 读取本地文件
    lib/index.js:80
    return JSON.parse(readFileSync(join(PACKAGE_ROOT, "package.json"), "utf8"));
  • 读取本地文件
    lib/index.js:190
    const st = await stat(file);
  • 发起网络请求
    lib/index.js:193
    const resp = await fetch(url, {
  • 写入本地文件
    lib/index.js:200
    await mkdir(cacheDir, { recursive: true });
  • 写入本地文件
    lib/index.js:202
    await writeFile(tmp, buf);
  • 写入本地文件
    lib/index.js:203
    await rename(tmp, file);
  • 请求外部主机api.sprites.confirmo.love
    lib/index.js:254
    const resp = await fetch(`https://api.sprites.confirmo.love/sprites?${params.toString()}`, {
  • 发起网络请求
    lib/index.js:254
    const resp = await fetch(`https://api.sprites.confirmo.love/sprites?${params.toString()}`, {
  • 读取本地文件
    lib/index.js:286
    const data = await readFile(file);
  • 读取本地文件
    lib/index.js:316
    data = await readFile(full);
  • 读取本地文件
    lib/index.js:355
    entries = await readdir(root, { withFileTypes: true });
  • 读取本地文件
    lib/index.js:364
    st = await stat(join(dir, "sheet.png"));
  • 发起网络请求
    lib/client.js:1049
    fetch("/pando/info", { signal: AbortSignal.timeout(5000) })
  • 发起网络请求
    lib/client.js:2091
    return fetch("/pando/local-sprites", {
  • 发起网络请求
    lib/client.js:2126
    return fetch("/pando/sprites?page=1&limit=40&sort=trending", {
  • 发起网络请求
    lib/client.js:2167
    fetch("/pando/sprite/" + encodeURIComponent(s.id) + "?url=" + encodeURIComponent(s.spriteUrl), {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:api.sprites.confirmo.love

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 复刻confirmo

README

由 DeepSeek 最新模型翻译生成
DSH UI Pando 桌宠 在 DeepSeek Harness (DSH) 的 Web UI 里复刻 confirmo.love 的桌宠体验:一只会动、可拖拽、可换形象的 AI 编码小伙伴,并支持 sprites.confirmo.love 社区精灵图。 交互、视觉与素材规范均致敬 confirmo.love 及其社区精灵图画廊。 📸 效果预览 | 待机 | 拖拽 | 工作状态 | | 待机 | 拖拽 | 工作状态 | | 开心 | 兴奋 | 睡觉 | | 开心 | 兴奋 | 睡觉 | ✨ 功能 7 个精灵状态 每个 sprite 是 8 列 × 7 行 = 56 帧 的精灵图,每行一个动画: | 行 | 状态 | 触发方式 | | Row 1 | 待机 Idle | 默认基础状态 | | Row 2 | 开心 Happy | 单击(250ms 手势窗口确认) | | Row 3 | 兴奋 Excited | 双击 + 整体弹跳 | | Row 4 | 睡觉 Sleepy | 5 分钟无 agent 动作/宠物交互自动入睡,3 个 Z 飘动 | | Row 5 | 工作 Working | 检测到 DSH agent 运行自动切换,齿轮 + 三点加载 + 上飘代码符号 |
展开完整文档(README 剩余 1 节)
DSH UI Pando 桌宠

在 DeepSeek Harness (DSH) 的 Web UI 里复刻 confirmo.love 的桌宠体验:一只会动、可拖拽、可换形象的 AI 编码小伙伴,并支持 sprites.confirmo.love 社区精灵图。

交互、视觉与素材规范均致敬 confirmo.love 及其社区精灵图画廊。

📸 效果预览

| 待机 | 拖拽 | 工作状态 |
| 待机 | 拖拽 | 工作状态 |

| 开心 | 兴奋 | 睡觉 |
| 开心 | 兴奋 | 睡觉 |

✨ 功能

7 个精灵状态

每个 sprite 是 8 列 × 7 行 = 56 帧 的精灵图,每行一个动画:

| 行 | 状态 | 触发方式 |
| Row 1 | 待机 Idle | 默认基础状态 |
| Row 2 | 开心 Happy | 单击(250ms 手势窗口确认) |
| Row 3 | 兴奋 Excited | 双击 + 整体弹跳 |
| Row 4 | 睡觉 Sleepy | 5 分钟无 agent 动作/宠物交互自动入睡,3 个 Z 飘动 |
| Row 5 | 工作 Working | 检测到 DSH agent 运行自动切换,齿轮 + 三点加载 + 上飘代码符号 |
| Row 6 | 生气 Angry | 快速连点 5 次 / agent 运行出错 / sprite 加载失败 |
| Row 7 | 拖拽 Dragging | 按住拖动 |

- 手势用延迟提交(250ms 去抖窗口)区分单击/双击/连点,不依赖浏览器 dblclick 事件
- 状态互斥:工作中/兴奋动画播放中单击不响应;连点 5 次仍可升级为生气
- 任务完成时播放「兴奋(远近缩放) → 开心」庆祝 + 「搞定! ✓」气泡
- 右键菜单含 7 个状态按钮,可 10 秒预览每个状态(可被交互打断)

社区 sprite 支持

- 在线拉取清单:菜单支持实时显示社区最新 sprite
- 分层本地缓存:缓存正在使用的 sprite,提升加载速度
- 抠图:纯品红 #ff00ff 背景自动抠除,移植官网画廊同款流水线,对非标准品红背景(如深紫)也鲁棒
- 空闲预取:启动预热 + 入睡时用空闲带宽逐个补齐磁盘缓存

交互与细节

- 拖拽移动(位置持久化);右键菜单切换形象 / 大小(96/128/160)/ 状态预览
- 默认位置左下角;形象、位置、大小存于 localStorage
- 菜单缩略图统一(processed 缩略图优先,缺失时 canvas 抠图兜底)、深色主题适配
- 尊重系统 prefers-reduced-motion

📦 安装

推荐用 DSH 的 Plugin Manager(设置 → 插件)按本地路径安装,它会把这个包作为 profile 的 bundle 依赖写进 ~/.dsh/profiles/<profile>/package.json 并建软链:

@purezhi/dsh-plugin-pando → link:<本仓库>/dsh-plugin-pando

也可以手工接线:在目标 profile 的 package.json 里把包名加进 dsh.profile.bundles 与 dependencies(link: 指向本仓库),并在 node_modules/@purezhi/ 下建立同名软链。

插件集变更需要重启 DSH Desktop(client-modules 的包元数据在启动时缓存)。
重启后 window.__DSH_BOOT__ 会包含 @purezhi/dsh-plugin-pando 条目,浏览器自动加载桌宠;
node 端路由(/pando/sprites、/pando/sprite、/pando/local、
/pando/local-sprites)也随重启注册。

因为插件用 link: 指向本仓库,改代码不需要再往 ~/.dsh 拷贝:client 端改完刷新页面即可,
node 端改完需重启应用。

显示名称(多语言)

插件卡片的名字/描述来自 locale/{zh,en}.json(DSH 官方约定,结构为
{"meta":{"title","description"}}):中文显示 Pando 桌宠,英文显示
Pando Desktop Pet。package.json 的 description 作为兜底文案。

⚙️ 配置

插件用 DSH 官方的 export const Config(schemastery)声明配置。按 id 覆盖安装行(不要用 insert:,那会重复声明同一个 id):

- id: pando
config:
spriteDir: ~/my-sprites # 本地精灵图目录(可选) cacheDir: ~/pando-cache # 精灵图缓存目录(可选)

| 配置项 | 默认值 | 说明 |
| spriteDir | "" | 本地精灵图目录。放 <name>/sheet.png(+ 可选 thumb.png)即可:既通过 /pando/local/<name>/… 提供文件,也由 /pando/local-sprites 自动登记进右键菜单——无需改代码。查找顺序在此目录与包内置 assets/(QPanda)之前,因此可覆盖内置形象。支持 ~;相对路径基于工作目录解析 |
| cacheDir | <DSH_HOME>/cache/pando | 精灵图缓存目录。社区 sprite 经 /pando/sprite/<id> 下载后,持久化落盘的位置,浏览器数据清理后仍可复用 |

两个配置项都可省略;省略时只提供内置的 QPanda,缓存落在默认位置。

本地精灵目录约定

spriteDir/
├── mj/
│ ├── sheet.png # 必需:8×7 帧、透明背景(prepare.py 产物) │ ├── thumb.png # 可选:菜单缩略图;缺失时自动从 sheet 裁第 1 帧 │ └── sprite.json # 可选:{ "name": "MJ", "preprocessed": true } └── qpanda/ …

- sprite.json 可覆盖 name / preprocessed / frameWidth / frameHeight / frameCount
- 默认按已预处理(品红已抠、帧已居中)对待;若放的是带品红底的原始图,加 {"preprocessed": false} 让浏览器端运行时抠图
- sheet 的修改时间会进入缓存键,重新生成同名精灵不会命中旧缓存

🔌 插件生命周期

启用/停用由 DSH 的插件机制负责,关闭插件即移除宠物:

- client 端把宠物 DOM、、全部 setInterval / setTimeout / requestAnimationFrame 循环、MutationObserver 与全局键盘监听都归属同一个 ctx.effect
- 插件被停用/卸载(含 HMR 热重载)时 cordis 执行该 effect 的清理函数 → 宠物节点、样式与计时器一并释放;重新启用可干净重挂载,不会出现两只宠物
- 因此改 lib/client.js 后刷新页面即可生效,无需重启应用

🔧 开发

node dsh-plugin-pando/build.js # 从 client.src.js + sprite_list.json 生成 lib/client.js

lib/client.js 是浏览器端 bundle(window.__ModuleLoader__.load(...) 格式,模块 id 必须与包名 @purezhi/dsh-plugin-pando 一致,DSH 才能把它正确绑定到本插件上并回收),由 lib/client.src.js(源码)+ sprite_list.json(社区 sprite 快照)构建而来。

改动流程:改 client.src.js → node build.js → 刷新页面即可生效(因为 profile 用 link: 指向本仓库,无需拷贝)。只有改 index.js(node 端路由)才需要重启 DSH Desktop。

手动更新社区 sprite 快照(可选):

curl -s "https://api.sprites.confirmo.love/sprites?page=1&limit=20&sort=trending" -o /tmp/trending.json
处理后覆盖 sprite_list.json, 再 node build.js

手动更新内置 sprite 快照(可选):

curl -s "https://api.sprites.confirmo.love/sprites?page=1&limit=20&sort=trending" -o /tmp/trending.json
处理后覆盖 sprite_list.json, 再 node build.js

🗑️ 卸载

cd pando
./uninstall.sh

删除插件包、web 链接和两处 cordis.patch.yml 注册段,重启 DSH Desktop 生效。

📁 文件结构

pando/
├── LICENSE
├── README.md
├── install.sh / uninstall.sh
├── docs/
│ ├── screenshots/ # 效果预览截图(README 引用) │ ├── sprites/ # 社区 sprite 素材(git 排除, 用 download-sprites.mjs 重新下载) │ └── submission/ # 1024Store 插件市场投稿文件 └── dsh-plugin-pando/ ├── package.json # 声明 dsh.bundle.patch + dsh.client (platform: web), 导出 ./client ├── cordis.patch.yml # bundle patch: 注册 pando 插件到 cordis 配置 ├── sprite_list.json # 内置 sprite 快照(60 个热门 sprite 的 URL 清单) ├── build.js # 构建脚本 └── lib/ ├── index.js # node 端:/pando/sprites 清单代理 + /pando/sprite 磁盘缓存路由 ├── client.src.js # 浏览器端源码(猫咪 SVG + 抠图 + 播放引擎 + 手势 + 缓存 + 菜单) └── client.js # 构建产物(ModuleLoader bundle)

📜 致谢与声明

- 复刻自 confirmo.love 的交互体验与视觉风格,精灵图规范来自 sprites.confirmo.love 社区(完整规范见 docs/sprite-spec.md)
- 精灵图素材版权归各自作者所有;本项目仅嵌入其 URL 清单,运行时从官方服务器加载
- 本项目为独立开源实现,与 confirmo.love 无隶属关系

⚖️ License

MIT
预览分享卡片长什么样 ↓purezhi/dsh-plugin-pando
分享 · DeepSeek Harness Hub
purezhi/dsh-plugin-pando

复刻 confirmo for DeepSeek Harness

这是你的仓库?认领条目

回到顶部