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

任务角色 sherconan/dsh-task-mascot

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

实时跟随智能体每一步工具调用切换动作

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 12 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 10 条)
  • 读取本地文件
    lib/index.js:30
    if (!existsSync(root)) return out;
  • 读取本地文件
    lib/index.js:31
    for (const d of readdirSync(root, { withFileTypes: true })) {
  • 读取本地文件
    lib/index.js:34
    if (!existsSync(mf)) continue;
  • 读取本地文件
    lib/index.js:36
    const m = JSON.parse(readFileSync(mf, 'utf8'));
  • 写入本地文件
    lib/index.js:97
    try { appendFileSync(DEBUG_LOG, JSON.stringify({ t: new Date().toISOString(), tag, obj }, (k, v) => (typeof v === 'string' && v.length > 300 ? v.slice
  • 读取本地文件
    lib/index.js:132
    if (!file || !existsSync(file) || !statSync(file).isFile()) { res.writeHead(404, { 'Content-Type': 'text/plain' }); res.end('not found'); return; }
  • 读取本地文件
    lib/index.js:132
    if (!file || !existsSync(file) || !statSync(file).isFile()) { res.writeHead(404, { 'Content-Type': 'text/plain' }); res.end('not found'); return; }
  • 发起网络请求
    lib/client.js:422
    if (!manifests.has(pack)) manifests.set(pack, fetch(API + '/asset?f=' + encodeURIComponent(pack + '/manifest.json')).then((r) => (r.ok ? r.json() : nu
  • 发起网络请求
    lib/client.js:426
    function fetchPacks() { packsPromise = packsPromise || fetch(API + '/packs').then((r) => r.json()).then((j) => j.packs || []).catch(() => []); return
  • 发起网络请求
    lib/client.js:730
    function dexLoad() { dex.p = dex.p || fetch(assetUrl(DEX_PACK, 'dex/manifest.json')).then((r) => r.json()).then((m) => { dex.m = m; return m; }).catch
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

真跟着 Agent 每一步工具调用在动 · DeepSeek Harness task mascot by metsh

README

由 DeepSeek 最新模型翻译生成
metsh · Task Mascot(dsh-task-mascot) 真跟着智能体每一步工具调用在动。 DeepSeek Harness(dsh)Web 插件 · by metsh demo 大部分「桌宠」只是挂在角落循环播放动画。Task Mascot 直接订阅会话的实时事件流:智能体每调用一个工具,角色就切到对应动作,同时告诉你它正在对哪个文件 / 哪条命令 / 哪个关键词做什么,成功失败一目了然。 安装 dsh plugin --profile web add github:sherconan/dsh-task-mascot 然后重启 dsh web。安装后会自动加入 web profile 的 bundles;设置入口:Settings → 任务角色 Mascot。 要求 dsh ≥ 0.2.0-rc.2、Node ≥ 22.19。
展开完整文档(README 剩余 1 节)
metsh · Task Mascot(dsh-task-mascot)

真跟着智能体每一步工具调用在动。
DeepSeek Harness(dsh)Web 插件 · by metsh

demo

大部分「桌宠」只是挂在角落循环播放动画。Task Mascot 直接订阅会话的实时事件流:智能体每调用一个工具,角色就切到对应动作,同时告诉你它正在对哪个文件 / 哪条命令 / 哪个关键词做什么,成功失败一目了然。

安装

dsh plugin --profile web add github:sherconan/dsh-task-mascot

然后重启 dsh web。安装后会自动加入 web profile 的 bundles;设置入口:Settings → 任务角色 Mascot。
要求 dsh ≥ 0.2.0-rc.2、Node ≥ 22.19。

特点

| | 常见桌宠插件 | Task Mascot |
| 驱动方式 | 定时 / 随机 / 只区分「忙/闲」 | 实时订阅 tool-call-delta、tool/call、结果、审批、turn 结束 |
| 显示内容 | 一个动画 | 动作 + 工具参数(「正在改 src/app.js」、「运行 npm test」、「正在搜索 \"function\"」) |
| 步骤感 | 无 | 第 N 步、本步耗时、总耗时、迷你时间线 |
| 聊天里 | 无 | 对话流里的内联步骤卡片,每步 ✓ 成功 / ✗ 失败,本轮结束有总结 + 回放 |
| 状态粒度 | 2–3 种 | 读文件 / 写代码 / 新建 / 改代码 / 对比 / 搜索 / 上网 / 跑命令(git·测试·装依赖·下载·删除)/ MCP / 做计划 / 派子代理 / 等你确认 / 完成 / 出错 … 共 37 种(v2) |
| 看懂循环 | 无 | 第 N 轮、重试、连续失败会着急、连发工具会手忙脚乱、子任务完成、被拒绝 / 被中断(v2) |
| 时长 | 无 | 一步超过 20 s 冒汗、60 s 犯困,长任务结束欢呼,阈值可调(v2) |
| 审批 | 会挡住按钮 | 显示「等你确认」,并自动避让审批按钮和输入框 |
| 角色 | 固定 | 可替换角色包(自带 大肥鱼、Claude娘),丢个文件夹就能加 |
| 映射 | 写死 | 设置里可编辑 工具 → 动画 映射规则(正则) |
| 体积 | — | 两个角色包合计约 18 MB(VP9 透明 webm + Safari 用 WebP 兜底) |

其他细节:每步至少停留 600 ms 排队播放不丢步;流式参数只显示已闭合的值不闪烁;三种展示面(内联卡片 / 输入框上方 Dock 条 / 悬浮宠物)可任意组合;宠物可拖动、双击归位;可选提示音(默认关)。

search
approval

工具 → 动画映射 / Tool → state mapping

v2 新增的状态、bash 命令细分、轮次/重试/时长规则见 docs/states-v2.md。

按顺序匹配,第一条命中生效(tool、ext 均为正则,ext 匹配目标文件扩展名)。在设置里可以编辑 JSON 覆盖。
First match wins (tool/ext are regexes; ext = target file extension). Editable in Settings.

| dsh 工具 / tools | 状态 / state | 大肥鱼实际动画 |
| write / edit / str_replace_editor 且目标是 md/txt/rst/doc/tex | writingdoc 写文档 | editing(回退)|
| write | coding 写代码 | coding |
| edit, str_replace_editor | editing 改代码 | editing |
| read, read_image, read_mcp_resource, lsp | reading 读文件 | reading |
| glob, grep, session_, web_search, web_fetch, stagehand_ | search 搜索 | search |
| bash, pwsh, terminal_, job_ | cmd 跑命令 | cmd |
| run_code, workflow | data 跑数据 | reading(回退)|
| todo_write, exit_plan_mode, _goal, schedule_ | planning 做计划 | planning |
| subagent, send_message, list_agents, interrupt_agent, spawn_teammate, team_task_, ralph | subagents 派子代理 | subagents |
| ask_user_question | waiting 等你 | waiting |
| present | summary 总结 | thinking(回退)|
| 其它 (MCP 等) / anything else | tools | cmd(回退)|

生命周期 / lifecycle(优先级从高到低 / priority high→low):

| 事件 / event | 状态 |
| turn/end 完成 / error | done / error 一次性 3 秒,之后回到 idle 或进行中的状态 |
| 审批或提问挂起 (approval/, pendingInteraction) | waiting |
| 有进行中的 tool/call | 上表映射 |
| turn 进行中、模型在输出 | thinking |
| 无活动 | idle |

角色包格式 / Pack format

assets/packs/<id>/manifest.json:

{json
"schema": 1, "id": "mypack", "title": "My Character", "author": "...", "license": "...",
"preview": "thinking.png",
"states": {
"thinking": { "webm": "thinking.webm", "webp": "thinking.webp", "poster": "thinking.png", "loop": true },
"done": { "webm": "done.webm", "webp": "done.webp", "poster": "done.png", "loop": false, "durationMs": 3000 }
},
"fallback": { "writingdoc": ["editing"], "idle": ["waiting", "thinking"], "": ["thinking"] }
}

- 至少要提供 thinking;缺的状态会按 fallback → 内置回退链 → 的顺序依次查找。只有 thinking 是必需的;缺的状态按 fallback → 内置回退链 → 的顺序解析。
- 可用状态 / states:idle thinking reading search coding editing writingdoc cmd data planning subagents tools summary waiting done error。
- webm:VP9 + alpha(Chrome/Edge/Firefox/桌面端);webp:动画 WebP,给 Safari(Safari 解 VP9 会丢透明通道);poster:首帧 PNG。
- 编码 / encoding:scripts/encode-packs.sh(384px 30fps VP9 yuva420p crf38;WebP 256px 15fps)。把母版放 masters/<pack>/,按脚本里的命名改一下即可。
- 新角色(比如以后的其它角色包)直接新建目录丢进去,设置里就能选。丢一个新文件夹进去,它就会出现在设置里。
自己做一个角色包

1. 新建 assets/packs/<你的id>/,放入每个状态的 .webm(VP9 + alpha)、.webp(动画 WebP,给 Safari)、.png(首帧海报)。
2. 写 manifest.json(只有 thinking 是必需的,缺的状态按 fallback 回退): json { "schema": 1, "id": "mypack", "title": "My Character", "author": "you", "license": "CC BY 4.0", "preview": "thinking.png",
"states": {
"thinking": { "webm": "thinking.webm", "webp": "thinking.webp", "poster": "thinking.png", "loop": true },
"done": { "webm": "done.webm", "webp": "done.webp", "poster": "done.png", "loop": false, "durationMs": 3000 }
},
"fallback": { "writingdoc": ["editing"], "idle": ["waiting", "thinking"], "": ["thinking"] }
}

3. 可用状态:idle thinking reading search coding editing writingdoc cmd data planning subagents tools summary waiting done error。
4. 编码:把带透明通道的母版放到 masters/<pack>/,运行 npm run encode(scripts/encode-packs.sh:384px 30fps VP9 yuva420p;WebP 256px 15fps)。
5. 重启 dsh,在设置里选择新角色。完整教程见 docs/make-a-pack.md。欢迎提 PR 分享你的角色包(请写清授权)。

隐私

- 完全在本地运行:服务端只给浏览器提供素材和本机 SSE 事件流,不发起任何外部网络请求、不收集任何数据。
- 服务端转发只包含工具名和目标文件扩展名;工具参数只在你自己的浏览器里从会话流读取并显示。
- 设置保存在浏览器 localStorage。

开发 bash
npm test # 单元测试(映射 / 状态机 / 事件归一化 / 路径穿越防护)
npm run check # 语法检查
node test/mock-llm/server.mjs # 免 key 的模拟 LLM(:8899),用来跑真实 dsh 做端到端演示

E2E 脚本在 test/e2e/(Playwright),截图输出到 qa/(已 gitignore)。

授权

- 代码:MIT © metsh(LICENSE)
- 角色素材:见 ART_LICENSE.md。
- 大肥鱼动画:CC BY-NC-SA 4.0(非商用)。署名链:上善无形「溟月」→ ZipZipPipe 女仆版 → 社区 Q 版大肥鱼;参考 TreapGoGo/deepseek-whale-girl;动画由 metsh 绘制。
- Claude娘:metsh 原创同人角色,CC BY-SA 4.0。
- 非官方社区插件,与 DeepSeek(深度求索)、Anthropic 均无隶属关系。

metsh · Task Mascot — 一个 DeepSeek Harness Web 插件,它的吉祥物真的会跟着智能体发出的每一次工具调用动起来。
- 订阅实时会话流(tool-call-delta、tool/call、结果、审批、回合结束),不靠定时器轮询。
- 显示动作及其参数*(「editing src/app.js」「running npm test」)、步骤编号、耗时和迷你时间线。
- 聊天里内嵌步骤卡片,逐步显示成功/失败,回合结束再给一份摘要,可回放。
- 状态分得很细:read / write / edit / docs / search / run / plan / sub-agent / waiting for approval / done / error。
- 自动避开审批按钮和输入框。
- 角色包可替换(自带 Whale Girl 大肥鱼和 Claude娘),工具→动画的映射可编辑。约 13 MB。
- 完全本地运行,不发起任何外部网络请求。

安装:dsh plugin --profile web add github:sherconan/dsh-task-mascot,然后重启 dsh web。

代码 MIT © metsh。美术素材:大肥鱼 CC BY-NC-SA 4.0(「溟月」 by 上善无形 → ZipZipPipe → community 大肥鱼;via TreapGoGo/deepseek-whale-girl),Claude娘 CC BY-SA 4.0 —— 见 ART_LICENSE.md。非官方项目,与 DeepSeek 或 Anthropic 无隶属关系。
预览分享卡片长什么样 ↓sherconan/dsh-task-mascot
分享 · DeepSeek Harness Hub
sherconan/dsh-task-mascot

实时跟随智能体每一步工具调用切换动作

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