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

Codex 桌面宠物 youzhoujiMrLiu/dsh-codex-compatible-pet

DeepSeek Harness
youzhoujiMrLiu80 天前有提交已提供中文文档扫描:含敏感能力

在界面右下角养一只随智能体状态变化的动画宠物

27.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add youzhoujiMrLiu/dsh-codex-compatible-pet
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/10/08·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 80 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/10/8) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 22 处,展示前 19 条)
  • 发起网络请求
    src/client/api.ts:96
    const response = await fetch('/dsh-pet/list')
  • 发起网络请求
    src/client/api.ts:105
    const response = await fetch(url)
  • 发起网络请求
    src/client/api.ts:112
    const response = await fetch('/dsh-pet/import', {
  • 读取本地文件
    src/host/routes.ts:124
    const names = await readdir(root.dir).catch(() => [])
  • 读取本地文件
    src/host/routes.ts:141
    const raw = JSON.parse(await readFile(join(petDir, manifestName), 'utf8')) as Record<string, unknown>
  • 读取本地文件
    src/host/routes.ts:185
    const raw = await readFile(join(dir, name), 'utf8')
  • 读取本地文件
    src/host/routes.ts:198
    const raw = JSON.parse(await readFile(join(dir, manifestName), 'utf8')) as Record<string, unknown>
  • 读取本地文件
    src/host/routes.ts:208
    size = (await stat(filePath)).size
  • 读取本地文件
    src/host/routes.ts:213
    const bytes = await readFile(filePath)
  • 发起网络请求
    src/host/routes.ts:230
    const response = await fetch(`${BUILTIN_CDN_BASE}/${file}`, { signal: AbortSignal.timeout(BUILTIN_FETCH_TIMEOUT_MS) })
  • 写入本地文件
    src/host/routes.ts:270
    await mkdir(stagingDir, { recursive: true })
  • 写入本地文件
    src/host/routes.ts:272
    await writeFile(join(stagingDir, 'pet.json'), `${JSON.stringify(manifest, null, 2)}\n`)
  • 写入本地文件
    src/host/routes.ts:273
    await writeFile(join(stagingDir, pet.spritesheetPath), bytes)
  • 删除本地文件递归
    src/host/routes.ts:274
    await rm(targetDir, { recursive: true, force: true })
  • 写入本地文件
    src/host/routes.ts:275
    await rename(stagingDir, targetDir)
  • 删除本地文件递归
    src/host/routes.ts:277
    await rm(stagingDir, { recursive: true, force: true }).catch(() => {})
  • 写入本地文件
    src/host/routes.ts:328
    await mkdir(join(path, '..'), { recursive: true })
  • 写入本地文件
    src/host/routes.ts:330
    await writeFile(staging, bytes)
  • 删除本地文件
    src/host/routes.ts:334
    await rm(staging, { force: true }).catch(() => {})
扫描于 2026/11/3(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-home-paths@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-web-react
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 兼容Codex格式

兼容 Codex 格式的 DSH 桌面宠物:动画宠物会跟随智能体状态变化

README

由 DeepSeek 最新模型翻译生成
dsh-codex-compatible-pet 桌面宠物插件:一只兼容 codex 格式的动画宠物,驻留在 Web GUI 右下角并随智能体状态变化。它是双面客户端插件——node 半边通过 HTTP 提供宠物文件服务,浏览器半边渲染精灵与设置页。 宠物模型(codex 兼容) 宠物模型移植自 codex-rs(tui/src/pets/model.rs),已有的 codex 宠物无需改动即可使用: - 清单 — pet.json(也接受旧版 avatar.json),字段包括 id、displayName、description、spritesheetPath(默认 spritesheet.webp)、frame(默认 192×208,8 列 × 9 行)与 animations(frames 精灵序号、fps 默认 8、loop 默认 true、fallback 默认 idle)。spriteVersionNumber: 2(Codex App 精灵表格式)会把默认网格扩为 11 行;其他未知字段(如 kind)与 codex 解析器一样被忽略。
展开完整文档(README 剩余 1 节)
dsh-codex-compatible-pet

桌面宠物插件:一只兼容 codex 格式的动画宠物,驻留在 Web GUI 右下角并随智能体状态变化。它是双面客户端插件——node 半边通过 HTTP 提供宠物文件服务,浏览器半边渲染精灵与设置页。

宠物模型(codex 兼容)

宠物模型移植自 codex-rs(tui/src/pets/model.rs),已有的 codex 宠物无需改动即可使用:

- 清单 — pet.json(也接受旧版 avatar.json),字段包括 id、displayName、description、spritesheetPath(默认 spritesheet.webp)、frame(默认 192×208,8 列 × 9 行)与 animations(frames 精灵序号、fps 默认 8、loop 默认 true、fallback 默认 idle)。spriteVersionNumber: 2(Codex App 精灵表格式)会把默认网格扩为 11 行;其他未知字段(如 kind)与 codex 解析器一样被忽略。
- 动画运算 — 行优先精灵网格;使用默认 frame 规格且没有自定义轨道的宠物(内置宠物,以及标准 8×9 或 v2 8×11 精灵表)播放完整的 codex 状态表(running、waiting、review、failed 等),自定义网格或自定义轨道则保持 codex 的“仅 idle”规则——这是 Codex App 的做法,让标准精灵表能动起来而不是呆站。循环轨道采用“前缀后循环”计时,一次性轨道播完后回落到 idle,缺失的状态轨道回落到 idle——与 codex 环境播放行为完全一致。

宠物来源

- 内置宠物 — codex 目录(Codex、Dewey、Fireball、Rocky、Seedy、Stacky、BSOD、Null Signal),由宿主从 Codex 官方宠物 CDN 代理,并带校验的 $DSH_HOME/cache/dsh-pets 缓存。
- 本地宠物 — $DSH_HOME/pets//(可写,导入目标)。
- Codex 家目录宠物 — ~/.codex/pets// 与旧版 ~/.codex/avatars//(遵循 CODEX_HOME),以只读方式扫描,已为 Codex 安装的宠物会自动出现。

宿主半边(/dsh-pet 路由)

- GET /dsh-pet/list — 内置目录加目录宠物(损坏的清单仍会列出,显示为禁用行)。
- GET /dsh-pet/manifest// — 宠物的原始清单 JSON。
- GET /dsh-pet/asset/// — 宠物精灵表;文件名必须是清单自身的 spritesheetPath,且不能越过宠物目录。
- GET /dsh-pet/builtin/ — 基于文件名白名单的 CDN 代理,4 MB 上限并校验 WebP。
- POST /dsh-pet/import — 导入浏览器选取的 .codex-pet 目录(清单加 base64 精灵表);frame 网格必须精确覆盖 WebP 画布(codex 的校验),写入先暂存再改名。

所有路由都在浏览器信任栅栏之后(loopback 加配置的 trustedHosts),与 /api 栅栏同形。id 与素材名受模式限制,路径穿越在路由层即被拒绝。

浏览器半边

- 环境悬浮层 — shell.overlay 条目 pet:当前会话运行中播放 running,交互(审批、提问、计划复核)阻塞时播放 waiting,running→idle 边沿后的几秒内播放 review,否则播放 idle,并显示状态气泡(思考中 / 等待确认 / 已完成)。点击宠物会播放第一个可用的互动轨道(wave、bounce、jumping、waving);按住鼠标可以把它拖到任意位置,拖动时播放与方向匹配的奔跑动画(running-right/running-left,依次回落到 running 与状态轨道)——4 px 阈值区分拖动与点击,位置持久化在 store 中。减少动态效果的用户看到静态首帧。
- 悬停详情卡 — 鼠标悬停在宠物上时,以 codex 风格展示它正在做什么(内容截断):最近一次用户提示词作为更大更粗的标题,正在执行的工具调用(工具名 + 紧凑的参数开头)、最近助手输出的开头(优先流式文本)以及待处理交互的类型。长文本保留开头、以尾部省略号收尾。这些事实由对象层派生——会话列表加当前会话绑定——通过 inject 的 hooks 槽位以一个裸可观察源交付,组件不携带任何订阅机制。
- 设置页 — settings.section 条目 pet:目录浏览与静态预览、大小选项(小/中/大 = 94/117/150 px 目标精灵高度)、.codex-pet 目录导入、关闭控制。
- 持久化 — 选择、大小与拖动偏移存放在框架 store 引擎的 dsh.pet(localStorage)中。

安装

本包是一个 dsh bundle:其 dsh.bundle 清单会把 ui-pet 行插入任何列出该包的 profile,dsh.client 清单与 lib/client.js 携带 Web GUI 的浏览器半边。

最简单的安装方式是交给 agent 完成——DeepSeek Harness 本身,或任何能访问本仓库、且目标机器装有 dsh CLI 并有终端的 agent。把下面这段提示词粘贴给它:

帮我安装 GitHub 上的 dsh-codex-compatible-pet 插件(https://github.com/youzhoujiMrLiu/dsh-codex-compatible-pet)。

1. 执行 dsh plugin add github:youzhoujiMrLiu/dsh-codex-compatible-pet(针对特定 profile 加 --profile )。
2. pnpm ≥10 首次会拒绝 git 依赖的构建脚本:把 pnpm 打印出的包键复制进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 块,然后重新执行 add。
3. 验证 ui-pet 行出现在 profile 组合里(dsh --profile --dump-config)或 Web GUI 的插件页。
4. Web GUI 刷新页面——宠物出现在右下角,设置里出现「宠物」页;服务器重启后请再次刷新。

信任提示:git 安装会在安装机上执行本包的 prepare 构建;如需固定版本可锁定提交(github:youzhoujiMrLiu/dsh-codex-compatible-pet#)。

底层走的仍是官方 git 安装路径:prepare 在安装后从 src/ 构建 lib/,自包含、不依赖 monorepo。

Model Experience

无,因为插件只改变浏览器呈现,不注册任何 prompt、工具、schema、会话事件或 provider 请求。

KV Cache effect

无;本包不组装也不发送任何 provider 请求。

Known Limitations and Deferred Work

- 状态来源是会话列表 — 宠物从标准 useSessions 数据源推导状态(running 位、待处理交互与 running→idle 边沿),因此单轮错误暂时没有专门的 failed 动画;失败轮次会回落到 review 提示与 idle。详情卡的活动文本则来自当前会话的会话窗口。
- 内置宠物需要首次下载 — 首次选择内置宠物时会从 Codex CDN 拉取精灵表,下载完成前不显示。
- 导入是唯一的写入路径 — 手动把 .codex-pet 目录放进 $DSH_HOME/pets// 也可以,但除重新打开设置页外没有应用内重新扫描按钮。
- 卸载在组合层 — dsh plugin --profile remove dsh-codex-compatible-pet 会同时移除依赖与插入的挂载层;暂无运行时开关。用户安装的 bundle 插入的行目前还不会出现在「自定义插件」标签页(该分类当前只识别用户补丁层)。
预览分享卡片长什么样 ↓youzhoujiMrLiu/dsh-codex-compatible-pet
分享 · DeepSeek Harness Hub
youzhoujiMrLiu/dsh-codex-compatible-pet

在界面右下角养一只随智能体状态变化的动画宠物

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部