让智能体操控 Live2D 角色动作、表情与台词
30.2/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Evil-Wideplain/kanbanniang.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(151 字)↓
DSH 插件(DeepSeek Harness):Tauri 2 + Live2D 桌面看板娘,内置 MCP 服务(11 个工具,Streamable HTTP)。安装后自动拉起看板娘,并把工具注入为 mcp__kanbanniang__*;兼容 Claude Desktop 等任意 MCP 客户端。
README
由 DeepSeek 最新模型翻译生成看板娘 KanbanNiang
Tauri 2 + Live2D 桌面看板娘,内置 MCP 服务(Streamable HTTP)。 智能体通过 11 个 MCP 工具操作她的动作、表情、台词、窗口位置与模型;本仓库同时是一个 DSH 插件包,安装后 DSH 启动时自动拉起看板娘,并把工具注入为 mcp__kanbanniang__。
In English: a Tauri 2 + Live2D desktop mascot with a built-in MCP server (11 tools, Streamable HTTP). It is also packaged as a DSH (DeepSeek Harness) plugin: DSH auto-launches the mascot and exposes mcp__kanbanniang__ tools to any MCP client.
一键安装(DSH 插件),分享给别人用
git clone https://github.com/Evil-Wideplain/kanbanniang.git && cd kanbanniang && npm install && npm run plugin:install
前置:DSH 桌面端 0.2.x、Node 18+、Rust 工具链已就绪。
展开完整文档(README 剩余 1 节)
看板娘 KanbanNiang
Tauri 2 + Live2D 桌面看板娘,内置 MCP 服务(Streamable HTTP)。 智能体通过 11 个 MCP 工具操作她的动作、表情、台词、窗口位置与模型;本仓库同时是一个 DSH 插件包,安装后 DSH 启动时自动拉起看板娘,并把工具注入为 mcp__kanbanniang__。
In English: a Tauri 2 + Live2D desktop mascot with a built-in MCP server (11 tools, Streamable HTTP). It is also packaged as a DSH (DeepSeek Harness) plugin: DSH auto-launches the mascot and exposes mcp__kanbanniang__ tools to any MCP client.
一键安装(DSH 插件),分享给别人用
git clone https://github.com/Evil-Wideplain/kanbanniang.git && cd kanbanniang && npm install && npm run plugin:install
前置:DSH 桌面端 0.2.x、Node 18+、Rust 工具链已就绪。这条命令会构建应用、编译宿主插件,并注册到 DSH desktop profile;手动步骤与验证见下文「快速开始」与「作为 DSH 插件安装」。
特性
| 能力 | 说明 |
| MCP 单端点 | POST http://127.0.0.1:7432/mcp,Streamable HTTP 单传输;GET /health 供插件探活 |
| 智能体即插即用 | DSH、Claude Desktop、MCP Inspector 等任意支持 Streamable HTTP 的客户端 |
| DSH 插件 | cordis.patch.yml 插入宿主插件与官方 MCP 客户端两行,工具注册为 mcp__kanbanniang__<tool> |
| 11 个工具 | 动作序列 / 表情 / 说话 / 窗口移动 / 窗口内站位 / 待机 / 列举动作 / 列举表情 / 状态 / 换模型 / 列举模型 |
| 拖拽导入模型 | 把 .zip 或解压后的模型文件夹拖到角色身上,解析配置、落盘、热切换 |
| 鼠标穿透 | 只有角色像素接收鼠标事件,空白区域事件落到下层窗口 |
| 模型热切换 | 运行时 set_model 切换,失败回滚原模型;语义别名屏蔽不同模型的命名差异 |
| 窗口形态 | 透明、无边框、置顶、不占任务栏;主窗口 640×800,角色固定按 360×480 渲染 |
架构
DSH(插件系统 + MCP 客户端) Claude Desktop / Inspector / 自研脚本 │ Streamable HTTP │ Streamable HTTP ▼ ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ 看板娘进程(Tauri 2 / Rust,127.0.0.1:7432) │ │ axum:POST /mcp · GET /health(Streamable HTTP 唯一传输) │ │ JSON-RPC 2.0 路由 → 工具清单 src/mcp/tools.json → tools/call │ └───────────────────────────────┬─────────────────────────────────────┘ │ Tauri 事件 mascot:action ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ WebView 前端(TypeScript + pixi.js + pixi-live2d-display) │ │ dispatcher → Live2D 控制器 → 动作 / 表情 / 气泡 │ │ 需回传结果的工具经 mascot:result 事件返回(oneshot,5s 超时) │ └─────────────────────────────────────────────────────────────────────┘
- 传输:单端点 POST /mcp。initialize 的 protocolVersion 按客户端请求回显,受支持版本为 2025-06-18 / 2025-03-26 / 2024-11-05;未声明或未知版本回退 2025-06-18。旧版 HTTP+SSE 的 /mcp/sse 已下线。
- 动作链路:tools/call → Rust 发出 Tauri 事件 mascot:action → 前端 dispatcher 驱动 Live2D 控制器执行。
- 查询链路:src/mcp/tools.json 中 query: true 的工具(play_motion、set_expression、move、list_motions、list_expressions、get_status、set_model、list_models)由前端经 mascot:result 回传,Rust 侧 oneshot 等待 5s;speak、move_in_window、set_idle 发出后直接返回。
- 导入链路:拖放到角色 → Tauri 原生拖放事件 → Rust 解析 .model3.json 并落盘到应用数据目录 → 前端注册运行时档案并热切换;模型资源经只读协议 mascot-model:// 提供给 WebView(Windows 上为 http://mascot-model.localhost/...)。
- DSH 链路:DSH 启动 → 宿主插件读设置解析端点、探活 /health、未运行则拉起 exe → 官方 MCP 客户端连同一端点 → 工具注入会话。
前置依赖
| 依赖 | 说明 |
| Node.js ≥ 18 | 前端构建与 Tauri CLI |
| Rust stable(推荐 windows-msvc 目标;windows-gnu 亦可) | <https://rustup.rs/> |
| WebView2 Runtime | Windows 10/11 一般已预装 |
| VS Build Tools | 勾选「使用 C++ 的桌面开发」;详见 <https://v2.tauri.app/start/prerequisites/> |
| Live2D 模型 | 需自备 Cubism 3–5.3 的模型(.model3.json),见 models/README.md |
Cubism Core 运行时 live2dcubismcore.min.js(6.0.1,支持 Cubism 3–5.3 / moc3 v1–v6)已内置于 src/frontend/mascot/render/live2d/ 并随仓库提交,无需手动获取。
快速开始
1. 安装依赖
npm install
2. 准备模型(任选其一,详见 models/README.md) a) 构建期静态资源:把模型目录放进 models/<模型名>/ b) 运行时导入:先跳过本步,启动应用后把 .zip 或模型文件夹拖到角色身上
3. 启动桌面应用(Vite + 编译 Rust + 打开看板娘窗口)
npm run tauri:dev
4. 另开终端验证 MCP 链路(需应用已启动)
node cmd/client/test-streamable.mjs
冒烟脚本按顺序覆盖:/health → initialize(校验协议与 Mcp-Session-Id)→ notifications/initialized → tools/list(≥ 11 个工具)→ get_status → speak → play_motion。执行时应看到看板娘显示气泡并播放两个动作,终端逐项打印 ✅。
作为 DSH 插件安装
前置:DSH 桌面端 0.2.x 已启动过一次(完成 profile 初始化),本机已具备 Rust 工具链。
npm install
npm run plugin:install # 构建应用本体 + 编译插件宿主半侧 + 注册到 desktop profile
npm run plugin:install -- --no-build # 跳过构建,沿用 target/release 现有产物
脚本调用桌面端自带的 dsh.cmd(resources/runtime/cli/bin/dsh.cmd)执行 plugin --profile desktop add link:<仓库绝对路径>;PATH 上的 npm dsh 会拒绝操作 desktop profile。找不到桌面端 CLI 时退化为直接修改 profile 清单,并打印需要手工执行的 pnpm 安装命令。
它做了什么
1. package.json 的 dsh.bundle.patch 指向 cordis.patch.yml,安装后自动成为一层 bundle;
2. cordis.patch.yml 按顺序插入两行插件:
- kanbanniang 宿主插件(src/plugin/ → lib/host.js):从看板娘 settings.json 的 mcpEnabled / mcpPort 推导 MCP 端点(默认 7432),发布 mascotStartup 服务;探测 /health,未运行则拉起 target/release/kanbanniang.exe(缺省回退 target/debug/),就绪后再用 MCP get_status 做一次前端链路探活;
- @deepseek-ai/dsh-mcp-client:inject: [mascotStartup],以 streamable-http 连接同一端点,把工具注册为 mcp__kanbanniang__<tool>。
插件以 link: 方式安装,运行时直接拉起仓库里的 target/release 产物,不打包、不复制 exe,因此安装脚本会先执行 tauri build --no-bundle。不要用 cargo build --release 代替:那样编出的二进制带 cfg(dev),前端走 devUrl,DSH 拉起后是白屏且查询超时。
安装后验证
- 完全退出并重启 DSH,新建会话,工具列表应出现 mcp__kanbanniang__get_status / speak / play_motion 等;
- 对模型说「让看板娘挥挥手,并说欢迎回来」,应看到动作与气泡;
- 宿主插件日志:<DSH_HOME>/kanbanniang/plugin.log(Windows 默认 %USERPROFILE%\.dsh)。
配置
| 位置 | 字段 | 说明 |
| 看板娘设置页 | MCP 开关 / 端口 | 端口唯一来源,写入 settings.json 的 mcpEnabled / mcpPort,插件自动读取 |
| cordis.patch.yml(宿主行) | autoLaunch | 是否由插件拉起应用,默认 true |
| cordis.patch.yml(宿主行) | mcpUrl | 强制固定端点(覆盖设置文件),一般不需要 |
| cordis.patch.yml(宿主行) | repoRoot / launchCommand | 仓库位置 / 自定义启动命令,一般不需要 |
| cordis.patch.yml(MCP 行) | toolCallTimeoutMs | 单次工具调用超时,默认 15000ms |
| cordis.patch.yml(MCP 行) | reconnect.maxAttempts | 连续重连上限,耗尽后工具注销,需重载配置 |
图形界面安装(等价):DSH 侧栏「插件」→「安装第三方插件」→ 填本仓库绝对路径 → 安装并启用。
卸载
npm run plugin:uninstall # dsh plugin --profile desktop remove kanbanniang
安装/卸载后需完全退出并重启 DSH 生效;看板娘应用与仓库文件不受影响,仍可直接运行 target/release/kanbanniang.exe。
DSH 插件市场
现状:不能直接从 DSH 插件市场安装,请使用上一节的本地 link: 安装。 结论是「协议与工具链层面支持,本仓库打包形态尚不支持」:
- 机制本身可用(DSH 0.2.1-rc.3 实测):可选组合包 @deepseek-ai/dsh-experimental-plugin-market-bundle 提供「发现」页;索引格式 1 有随装校验器;安装 spec 由 marketInstallTarget 生成(npm 为 name@version,git 为 git+<url>#<commit>),交给 pluginManager.installBundle。
- 入口缺失:lib/(宿主插件编译产物)在 .gitignore 中,git 形态的包没有 main 入口;改用安装期 prepare 构建也走不通——pnpm 会拦截 git 依赖的构建脚本,要求精确到 包名@git+url#commit 的 allowBuilds key,而市场安装的授权只记录包名。
- 应用 exe 缺失:安装目录里没有 target/release/kanbanniang.exe;宿主插件的 findRepoRoot() 要求包内同时存在 package.json 与 src/tauri/Cargo.toml,但 pnpm 按 files 打包,src/ 与 target/ 都不会进包,实测 plugin.log 报「未找到看板娘可执行文件」。
- 没有 npm 版本:package.json 为 private: true,且这是含 Rust 源码的应用仓库,市场只能走 git source;DSH 目前也没有官方市场,索引源需自建自托管、由用户手动添加。
- 模型不入库:市场安装无法附带 Live2D 模型,用户仍需自备并拖拽导入。
完整的验证过程(索引校验、隔离 profile 实测、plugin.log 证据)、阻塞项清单与上架前启用清单见 docs/market-distribution.md。在补齐这些之前,请使用本地安装方式。
让 Agent 接入(MCP 客户端)
端点:http://127.0.0.1:7432/mcp(Streamable HTTP,唯一传输)。 端口可在看板娘设置页修改;旧版 HTTP+SSE(2024-11-05)的 /mcp/sse 已下线。
- DSH:按上一节安装插件,无需手工配置。
- Claude Desktop / 其他客户端:编辑客户端的 MCP 配置(Claude Desktop 为 claude_desktop_config.json,位置见其文档),重启客户端后确认 kanbanniang 已连接:
{
"mcpServers": {
"kanbanniang": {
"url": "http://127.0.0.1:7432/mcp"
}
}
}
- 可视化调试:官方 @modelcontextprotocol/inspector,填入上述 URL 即可。
- 仅支持旧版 HTTP+SSE 的客户端需先升级(Claude Desktop、DSH 及现代客户端均已支持 Streamable HTTP)。
工具清单(MCP)
| 工具 | 参数 | 说明 | 返回 |
| play_motion | steps: {motion, index?, holdMs?, expression?, text?}[]、idle?: boolean | 串行连播动作,每步等播完再进下一步;holdMs 为播完后的额外停留(0–5000ms);expression / text 在本步开始时同步生效且不打断动作;idle=true 整段播完回待机;新调用打断旧队列 | 每步解析结果数组 |
| set_expression | expression: string | 换表情,接受真实名或语义名(忽略大小写与下划线),未命中回退默认表情;播放中可用且不打断动作 | {applied, fallback} |
| speak | text: string | 显示气泡并做表情反馈(当前无真实口型同步) | — |
| move | x: number、y: number(0–1) | 平滑移动整个窗口到工作区归一化坐标,约 0.6s 到位,窗口保证完整可见 | {x, y, physicalX, physicalY, clamped, superseded} |
| move_in_window | x: number、y: number(0–1) | 调整角色在窗口内的站位,不移动窗口本身 | — |
| set_idle | — | 清除表情与动作,回到待机 | — |
| list_motions | — | 列出当前模型可用的动作组名 | 组名列表 |
| list_expressions | — | 列出当前模型可用的表情名 | 表情名列表 |
| get_status | — | 当前状态快照(模式 / 模型 / 表情 / 位置 / 是否在说话) | 状态对象 |
| set_model | model: string | 运行时热切换模型档案,加载失败时原模型保持不变 | {ok:true, model, mode, modelFile} / {ok:false, error} |
| list_models | — | 列出模型档案:id / 名称 / 渲染模式 / 主文件 / 是否默认 / 当前使用中 | 档案列表 |
工具定义的单一来源是 src/mcp/tools.json(Rust 与 TS 同源加载),本表为文档镜像,冲突以清单为准。可用动作名与表情名取决于模型自带文件,先调 list_motions / list_expressions 查询。
接入真实 Live2D
方式 A:拖拽导入(不写入仓库)
把 .zip 压缩包或解压后的模型文件夹拖到角色身上,松开即导入:解析 moc / 贴图 / 动作组 / 表情,校验必需文件存在后复制到 <app_data_dir>/models/imported-<名字>/(Windows 一般在 %APPDATA% 下)。同名模型重复导入整体覆盖;不同名模型 id 撞车时分配 -2 保留,不会互相删除。导入成功后立即热切换,并出现在设置页芯片与 list_models 中(id 形如 imported-haru)。移除:退出应用后删除对应目录。
方式 B:构建期静态资源(可随仓库分发,但模型目录不入库)
1. 把模型目录放到 models/<模型名>/(含 .model3.json 及 motions/、expressions/ 等);
2. models/ 经 Vite publicDir 作为静态资源根,models/Haru/… 会以 /Haru/… 提供;
3. npm run dev / npm run build 前由 scripts/gen-models.mjs 自动扫描并生成模型清单,无需手工登记;
4. 需要展示名、缩放 / 锚点或语义别名时,编辑 src/frontend/shared/domain/profiles.ts 的 MODEL_OVERRIDES(键为 models/ 下的目录名)。
语义别名:不同模型的动作 / 表情命名不一致(官方系多为 Idle / TapBody,表情可能是 F01 起)。档案可为 idle、speak、neutral、happy 等语义名配置映射,智能体即可用同一套调用名操作任意模型。批量发现与命名可运行 node cmd/client/preview.mjs(需应用已启动),逐个播放并让你在终端标注。
运行时切换:list_models 查档案 → set_model 热切换;切换会重置表情与位置(跨模型名称不同),同 id 重复切换返回 {ok:true, unchanged:true}。完整说明(含排查)见 models/README.md。
目录结构
pet/
├─ src/
│ ├─ frontend/ 前端(TS + Vite) │ │ ├─ app/ 三个窗口入口与组合根 │ │ ├─ shared/ 领域契约 / IPC / 表现工具 │ │ ├─ mascot/ 看板娘域:dispatcher、模型热切换、Live2D 渲染、气泡、拖放浮层 │ │ ├─ settings/ 设置页 │ │ ├─ debug/ MCP 调试面板(仅开发构建) │ │ └─ styles/ │ ├─ plugin/ DSH 宿主插件半侧(TS → lib/) │ ├─ mcp/tools.json MCP 工具清单(单一来源) │ └─ tauri/ Rust 后端:Tauri 装配、axum MCP 服务、模型导入 ├─ cmd/client/ MCP 客户端与脚本:client.mjs / test-streamable.mjs / preview.mjs ├─ scripts/ gen-models.mjs(构建前扫描模型)、install-dsh-plugin.mjs(安装到 DSH) ├─ models/ 静态资源根;模型目录不入库,接入文档见 models/README.md ├─ assets/icon.png 插件管理页图标 ├─ docs/ 补充文档(如 market-distribution.md) ├─ .github/workflows/ CI ├─ .agents/skills/ 内置开发规约(按需加载) ├─ cordis.patch.yml DSH bundle patch:宿主插件 + MCP 客户端两行 ├─ Makefile 常用命令入口 ├─ package.json 前端依赖、脚本与 DSH 插件元数据 ├─ AGENTS.md Agent 开发入口与硬性规则 ├─ LICENSE MIT ├─ .gitattributes / .gitignore └─ README.md
开发与验证
| 命令 | 作用 |
| make check | 前端门禁:tsc --noEmit + Vite 构建(前端改动必过) |
| make unit | 单元测试:npm run test + npm run test:plugin(改领域层 / 纯函数 / 插件逻辑必过) |
| make lint | Rust 门禁:clippy --all-targets -- -D warnings + fmt --check(Rust 改动必过) |
| make verify | 提交前全量门禁(= check + unit + lint) |
| make score | Rust CRAP 复杂度打分(cargo-crap) |
| make dev / make build | npm run tauri:dev / npm run tauri:build |
| npm run plugin:build | 编译插件宿主半侧到 lib/ |
| node cmd/client/test-streamable.mjs | MCP 冒烟测试(需应用已启动;协议 / 工具改动必跑) |
提交前至少执行 make verify;改动协议、工具清单或动作后补跑冒烟测试;改动 DSH 装配后用非 desktop profile(如复制 web 模板)验证层叠与端到端工具调用。
CI(GitHub Actions,.github/workflows/ci.yml)在 windows-latest 上跑同一组门禁:前端 npm ci → npm run build → npm run test → npm run test:plugin,Rust 侧 cargo fmt --check + cargo clippy --all-targets -- -D warnings(先构建 dist/,不跑 tauri build)。
GNU 工具链 + MSYS / Git Bash 下若 make lint 报 windres Unable to create temp file,是该 shell 把 TEMP 置为 /tmp 导致资源编译找不到合法临时目录:改用 PowerShell / cmd 运行,或先把 TEMP、TMP 设为 Windows 路径(如 C:\...\Temp);make check / make unit 不受影响。
编码规约、分层约束与完整检查清单见 AGENTS.md 与 .agents/skills/,本 README 不重复搬运。
常见问题
| 现象 | 排查方向 |
| DSH 拉起后白屏、工具不可用 | 构建方式错(用了 cargo build --release):产物带 cfg(dev),前端加载 devUrl。看日志里的 [boot] 当前为开发构建…,用 npm run plugin:install 重新做 release 构建;plugin.log 里 get_status 探活失败也指向这里 |
| 改了端口,插件仍连旧端口 | 端口唯一来源是看板娘设置页写入的 settings.json;插件每次启动重读,改完重启 DSH 即可。不要在 cordis.patch.yml 里另写一份端口 |
| 插件没激活 / 工具没出现 | 查 <DSH_HOME>/kanbanniang/plugin.log;确认 profile 依赖里有 kanbanniang、cordis.patch.yml 未被覆盖,然后完全重启 DSH |
| 查询型工具 5s 超时 | 前端不在线(窗口关闭或白屏)。/health 健康只证明 Rust 在监听,不代表前端活着;用 get_status 判断 |
| 拖模型没反应 | 拖到了空白区域:鼠标穿透已把事件交给下层窗口,需把文件放到角色身上;仅支持 .model3.json(Cubism 3+) |
| 模型加载失败 | 读 set_model 返回的 {ok:false, error}。常见原因是 moc3 版本高于内置 Core 上限(6.0.1 最高支持 Cubism 5.3),需替换 live2dcubismcore.min.js |
| 导入后设置页没有新模型 | 设置窗口重新聚焦时刷新;列表来自后端仓库,仍不出现请重启应用 |
已知限制
- 无鉴权:MCP 服务仅监听 127.0.0.1,未做 token / 证书,请勿直接暴露到公网。
- 平台:Windows 为主要验证平台;macOS / Linux 的自动拉起路径(可执行文件名)未适配。
- 口型:speak 仅显示气泡并做表情反馈,真实口型同步需接入 AudioEngine + Phoneme。
- 前端依赖:查询型工具要求前端在线,窗口关闭即 5s 超时。
- 模型:models/*/ 不入库,需自备模型并遵守各自许可;Cubism 2 的 .model.json 会被拒绝。
- 市场分发:DSH 市场机制本身可用,但当前打包形态(lib/ 不入库、包内无 exe)装完起不来,只能本地安装;详见「DSH 插件市场」与 docs/market-distribution.md。
- 鼠标穿透:按角色像素命中动态开关,空白区域收不到任何鼠标消息;前端有 fail-safe(交互层停止、光标源失效、穿透态 1s 无采样主动恢复可交互),不会卡死。
- 窗口适配:启动时按当前显示器工作区收缩窗口(只收缩不放大);角色缩放以 360×480 设计基准计算,窗口变小只是减少四周留白,不改变角色像素尺寸。
贡献与致谢
- 提交前跑 make verify;commit message 遵循 Conventional Commits(type(scope): 中文 subject),细则见 .agents/skills/commit。
- 文档分工:README 面向使用者,AGENTS.md 与 .agents/skills/ 面向开发规约;补充文档放 docs/。
- 致谢:Tauri、axum、Live2D Cubism SDK、pixi-live2d-display、pixi.js、Model Context Protocol、DeepSeek Harness。
- 仓库不附带模型;演示用的示例模型来自 Live2D Cubism SDK(遵循 Live2D 开放许可),商用请自行确认授权。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Evil-Wideplain/kanbanniang
让智能体操控 Live2D 角色动作、表情与台词
相关插件 · 桌面端
AI内容变现助手yikart/AiToEarn
自动创作分发内容到多平台并结算收益
★ 27,300已汉化MCP
72.4
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,140已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,551已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,465已汉化DSH
70.9
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,861已汉化DSH
70.8
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。