用全屏短片替换启动页,闲置时自动盖上屏保
65.9/100
综合分
313
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/lxj5820/dsh-boot-animation.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
静态安装检查有提示项,装前建议看一眼 README
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意npm 同名包「dsh-boot-animation」归属 alice-marx/dsh-boot-animation,装到的可能不是本插件
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-boot-animation @ 0.3.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 09:17:16
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 55 处,展示前 47 条)
- 写入本地文件entry.js:70
appendFileSync(TRACE_PATH, `${new Date().toISOString()} ${line}\n`, 'utf8') - 读取本地文件entry.js:571
entries = await readdir(dir, { withFileTypes: true }) - 读取本地文件entry.js:581
const info = await stat(path) - 读取本地文件entry.js:586
children = await readdir(path, { withFileTypes: true }) - 读取本地文件entry.js:592
const childInfo = await stat(join(path, child.name)) - 读取本地文件entry.js:610
const info = await stat(absolute) - 读取本地文件entry.js:633
const inside = await readdir(absolute, { withFileTypes: true }) - 执行外部命令来自配置/变量entry.js:933
const child = spawn(command, args, { detached: true, stdio: 'ignore' }) - 写入本地文件entry.js:962
writeFileSync(TRACE_PATH, `boot-animation startup trace\nplugin dir: ${import.meta.url}\n`, 'utf8') - 写入本地文件entry.js:1350
await mkdir(dir, { recursive: true }) - 发起网络请求lib/client.js:930
fetch(MANIFEST, { cache: 'no-store' }) - 发起网络请求lib/client.js:946
fetch(SCREENSAVER_MANIFEST, { cache: 'no-store' }) - 发起网络请求lib/client.js:1275
fetch(REVEAL + '?pool=' + encodeURIComponent(which), { method: 'POST', cache: 'no-store' }) - 发起网络请求lib/client.js:1322
fetch(OPTIMIZE + '?name=' + encodeURIComponent(name), { method: 'POST', cache: 'no-store' }) - 读取本地文件src/remux.js:194
const buffer = readFileSync(file) - 写入本地文件src/remux.js:265
mkdirSync(target, { recursive: true }) - 写入本地文件src/remux.js:266
writeFileSync(out, output) - 读取本地文件src/remux.js:330
const info = statSync(file) - 写入本地文件src/remux.js:349
mkdirSync(scratchDir, { recursive: true }) - 读取本地文件src/remux.js:351
if (!existsSync(produced)) throw new Error('重排没有产出文件') - 读取本地文件src/remux.js:352
if (statSync(produced).size !== sizeBefore) throw new Error('重排后的长度变了') - 写入本地文件src/remux.js:355
mkdirSync(backupDir, { recursive: true }) - 读取本地文件src/remux.js:356
if (existsSync(backup)) rmSync(backup, { force: true }) - 删除本地文件src/remux.js:356
if (existsSync(backup)) rmSync(backup, { force: true }) - 写入本地文件src/remux.js:357
renameSync(file, backup) - 删除本地文件递归src/remux.js:360
rmSync(scratchDir, { recursive: true, force: true }) - 读取本地文件src/remux.js:363
if (!existsSync(file) && existsSync(backup)) renameSync(backup, file) - 写入本地文件src/remux.js:363
if (!existsSync(file) && existsSync(backup)) renameSync(backup, file) - 删除本地文件src/remux.js:377
rmSync(file, { force: true }) - 删除本地文件递归src/remux.js:379
rmSync(scratchDir, { recursive: true, force: true }) - 删除本地文件递归src/remux.js:383
rmSync(scratchDir, { recursive: true, force: true }) - 执行外部命令固定命令src/idle-probe.js:89
spawnSync('taskkill', ['/pid', String(pid), '/T', '/F'], { stdio: 'ignore', windowsHide: true }) - 执行外部命令固定命令src/idle-probe.js:139
spawn('taskkill', ['/pid', String(dying.pid), '/T', '/F'], { - 执行外部命令固定命令src/idle-probe.js:190
spawned = spawn('powershell', [ - 读取本地文件build-client.mjs:33
const source = readFileSync(SOURCE, 'utf8') - 写入本地文件build-client.mjs:42
writeFileSync(TARGET, HEAD + source + TAIL) - 执行外部命令来自配置/变量build-client.mjs:47
execFileSync(process.execPath, ['--check', TARGET], { stdio: 'inherit' }) - 读取本地文件build-client.mjs:49
const written = readFileSync(TARGET, 'utf8') - 发起网络请求src/boot-screen.js:1081
fetch(manifestUrl, { cache: 'no-store' }) - 发起网络请求src/client.js:928
fetch(MANIFEST, { cache: 'no-store' }) - 发起网络请求src/client.js:944
fetch(SCREENSAVER_MANIFEST, { cache: 'no-store' }) - 发起网络请求src/client.js:1273
fetch(REVEAL + '?pool=' + encodeURIComponent(which), { method: 'POST', cache: 'no-store' }) - 发起网络请求src/client.js:1320
fetch(OPTIMIZE + '?name=' + encodeURIComponent(name), { method: 'POST', cache: 'no-store' }) - 发起网络请求src/screensaver.js:73
return fetch(url, { cache: 'no-store' }) - 发起网络请求src/screensaver.js:435
fetch(url, { cache: 'no-store' }) - 发起网络请求src/screensaver.js:1200
fetch(url, { cache: 'no-store' }) - 发起网络请求src/screensaver.js:2408
fetch(url, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 插件:用全窗口视频片段替换内核启动页,随后淡入应用。中文说明见 MANUAL.md
README
由 DeepSeek 最新模型翻译生成dsh-boot-animation
给 DSH 换掉原生启动页,再给闲置的界面加一层屏保。两个功能各自独立开关,不改 DSH 本体源码,升级 DSH 不受影响。
| 功能 | 一句话 |
| 启动动画 | 打开页面时用一段全屏短片盖住 DSH 的启动页,片尾交叉溶解进界面。 |
| 屏保 | 闲置一段时间后用全屏层盖住界面,点一下或按任意键收回,退出时播特效。 |
特性
- 素材按扩展名支持四类:视频(.mp4 .m4v .webm .mov)、静态图(.png .jpg .jpeg .avif)、动图(.gif .webp)、Live2D 模型(含 .model3.json 的文件夹)。.svg 与 .mkv 一律忽略。
- 片头池多片随机,先把池子里每条轮一遍再重来,不会连着重复同一条;底部进度条跟内核真实的启动进度走。
- 启动路径上每个走不下去的地方都有上界:素材清单 10 秒不应答就当作没有素材、某段片子 6 秒出不来画面就换下一段、时长未知走 20 秒兜底、内核 15 秒不就绪就提示「启动较慢,点击继续」;Esc / 空格 / 回车随时直接进。
- 设置全在「设置 → 插件」的「启动动画」卡片里,不用重启 DSH:屏保那几项立刻生效,启动动画那几项下次启动生效。
- 屏保两个触发条件任一满足即出现:整机闲置(Windows 读系统闲置计数)与窗口失去焦点。
展开完整文档(README 剩余 1 节)
dsh-boot-animation 给 DSH 换掉原生启动页,再给闲置的界面加一层屏保。两个功能各自独立开关,不改 DSH 本体源码,升级 DSH 不受影响。 | 功能 | 一句话 | | 启动动画 | 打开页面时用一段全屏短片盖住 DSH 的启动页,片尾交叉溶解进界面。 | | 屏保 | 闲置一段时间后用全屏层盖住界面,点一下或按任意键收回,退出时播特效。 | 特性 - 素材按扩展名支持四类:视频(.mp4 .m4v .webm .mov)、静态图(.png .jpg .jpeg .avif)、动图(.gif .webp)、Live2D 模型(含 .model3.json 的文件夹)。.svg 与 .mkv 一律忽略。 - 片头池多片随机,先把池子里每条轮一遍再重来,不会连着重复同一条;底部进度条跟内核真实的启动进度走。 - 启动路径上每个走不下去的地方都有上界:素材清单 10 秒不应答就当作没有素材、某段片子 6 秒出不来画面就换下一段、时长未知走 20 秒兜底、内核 15 秒不就绪就提示「启动较慢,点击继续」;Esc / 空格 / 回车随时直接进。 - 设置全在「设置 → 插件」的「启动动画」卡片里,不用重启 DSH:屏保那几项立刻生效,启动动画那几项下次启动生效。 - 屏保两个触发条件任一满足即出现:整机闲置(Windows 读系统闲置计数)与窗口失去焦点。 - 屏保收回必须点一下或按一个键;鼠标移动不算「回来」,也不会重置窗口失焦的计时(只有 Windows 的整机闲置计数会因为它归零)。 - 屏保退出三种特效:粒子消散 / 重力下坠 / Glitch 宽带位移,默认每次随机挑一个;关掉是普通淡出。特效是透明的,碎开时露出的是你的界面。 - 屏保可轮换(15 秒 / 30 秒 / 1 分钟 / 5 分钟,默认不轮换):到点就换下一条,带交叉溶解,且不会连着放同一条。 - 不改 DSH 源码:只往 注入脚本,再提供一张设置卡片。 - 指针互动特效(水波涟漪 / 星屑吸附)的实现仍在代码里,但卡片上已不提供入口——这个效果在桌面版上一直没能稳定工作,所以入口被撤了。设置字段与实现都保留,现有配置不会丢。细节见 MANUAL.md。 环境要求 | 条件 | 要求 | | DSH | 0.2.0-rc.2。这一版换了插件提供设置的接法(声明 Config,不再注册命名空间),更旧的 DSH 要用旧版插件 | | Node.js | ^22.19.0 或 >=24 | | 浏览器 | Chromium 内核(Chrome / Edge)。Firefox 没测过 | 装法 三条路,选一条。细节与撤销办法见 INSTALL.md。 路 A:官方命令 dsh plugin --profile web add <解压出来的目录> 这条路会让 pnpm 把依赖也装好,装完重启一次 DSH。桌面版(DSH Desktop)的 profile 叫 desktop,而这条命令不允许直接改它,桌面版请走路 B 或路 C。 路 B:Windows 脚本(免重启) powershell -ExecutionPolicy Bypass -File tools\install.ps1 路 C:macOS / Linux 脚本 sh tools/install.sh --profile desktop # 桌面版 sh tools/install.sh # dsh web 用的那个(默认 web) 路 B / 路 C 是同一件事:找 DSH 的位置(先看 DSH_HOME,再找 ~/.dsh)、在 profile 的 node_modules 里建目录链接、往 cordis.patch.yml 追加一行、并把设置卡片需要的 @deepseek-ai/schemastery(DSH 自带那份,要 3.18.4 及以上)链上。不碰 package.json,不跑 pnpm。 找不到 profile 会明确报错并列出有哪些 profile,装之前自动备份 cordis.patch.yml;大多数 profile 会热加载,不热加载的脚本会提醒你手动重启。撤销用 tools/uninstall.ps1 / tools/uninstall.sh,参数同上。 装完刷新浏览器:看到深海底背景 + 一条短片铺满窗口就是装好了。左侧菜单里没有「启动动画」这一项,几乎只有一个原因——插件旁边链接的 schemastery 太旧(缺 .volatile()),卡片会静默消失,控制台留一条 boot-animation: 开头的告警。 启动动画 打开页面时依次是:深海底背景 + 一条从片头池随机取来的素材铺满窗口 → 底部一条细进度条跟内核的启动进度走 → 片尾开始溶解进界面 → 覆盖层整个移除。 短片以静音开始(Chromium 不允许没有用户手势的带声音自动播放)。点一下画面才开声音,这一下故意不进入——手势解锁需要时间起效,绑成一次点击就是「刚出声就进界面」。进入交给片尾;想早点进,点一下或按 Esc / 空格 / 回车。 进入方式三选一: | 方式 | 什么时候进 | 片子循环 | | 片尾交叉溶解(默认) | 从片尾前「淡入时长」开始溶解,放完那一刻正好进 | 否 | | 放完再淡 | 片子完整放完、停住,再淡出 | 否 | | 点击才进 | 一直循环播放,直到你点一下 | 是 | 三种方式(「点击才进」除外)都还要等内核就绪——淡入就是界面显形的过程,内核没好就溶解出一个还没搭好的界面。片头放完但内核还没跟上时,画面停在最后一帧等它。 退场时片子的声音会和画面一起淡出,不会出现「画面没了声音还在响」或「声音被硬切掉」。地址后面加 ?dshbootdiag=1 可以让底部提示行变成实时读数(当前素材类型、是否循环、进度与音频状态),用来判断卡在哪一步。 屏保 默认关,因为它会抢屏幕——默认开着的话,你正在读文档、三分钟没动鼠标,画面会突然被盖住。要用就在设置里自己打开。 多久算离开:默认 3 分钟,可选 1 / 3 / 5 / 10 分钟或自定义 1–60 分钟。 怎么算「离开」:两个条件任一满足就触发——① 整台电脑一段时间没有任何输入(不管 DSH 是不是当前窗口);② DSH 窗口失去焦点。两者互补:① 抓「你人走开了」,② 抓「你切去别的程序了」。 怎么收回:点一下,或者按任意键。鼠标移动不会把它弄掉(碰一下不该就把画面清了)。底部那行「点击或按任意键继续」就是提示这件事,可以在设置里关掉。移动本身也不重置「窗口失去焦点」那一半的计时,只有整机闲置计数会因为它归零——所以「读长网页时晃一下鼠标屏保就不出现」这个效果,在 Windows 上成立。 退出特效:收回时画面碎开飘散,四选一——随机(默认,每次退出重新挑)/ 粒子消散(往右飘)/ 重力下坠(往下掉)/ Glitch 宽带位移。关掉就是普通淡出。特效是透明的,碎块飞走时露出来的是你的对话界面,不是黑底。系统开了「减少动态效果」会自动退化成普通淡出。 轮换:屏保挂着的时候可以每隔一段时间换一条,可选 15 秒 / 30 秒 / 1 分钟 / 5 分钟,默认「不轮换」。换的时候是把画面换掉,不是收回屏保——收回还是要点一下;换的时候不播退出特效,带交叉溶解,并且先把池子里每条都放一遍再开始第二轮,绝不会连着放同一条。 声音:默认静音(这一层盖住屏幕时没人在看,突然出声会吓人)。设置里一个滑块管两件事:拖到最左=静音,往右就有声音。只对视频有效,图片 / 动图 / Live2D 模型本来就没有音频路径。 不会盖住开机动画:启动动画还在演的时候屏保不会出来。窗口最小化时也不会出来(没人在看)。 一个做不到的事先说清楚:窗口被别的窗口盖住时屏保照样会出来。浏览器只能可靠知道「窗口是不是最小化了」,拿不到「被压在下面」这个状态——那是操作系统层面的事实。这不是坏了,是能力边界。 设置在哪里 设置 → 插件 → 「插件配置」,找到「启动动画」这一行,点一下展开。默认是收起的,和其他插件一样。 | 控件 | 默认 | 作用 | | 开启启动动画 | 开 | 启动动画的开关。关掉=不注入启动动画那一行,回到 DSH 原生启动页(屏保是另一个开关,不受影响) | | 播放影片声音 | 开 | 关掉是彻底静音:不尝试开声音,声音按钮也不生成 | | 点鼠标直接进入 | 关 | 打开后按一下画面就直接进,不再用第一下解锁音频 | | 显示底部提示文字 | 开 | 关掉只隐藏底部那行操作提示,标题和进度条保留 | | 淡入时长 | 2 秒 | 1 / 1.5 / 2 / 3 / 4 秒 | | 进入方式 | 片尾交叉溶解 | 片尾交叉溶解 / 放完再淡 / 点击才进 | | 片头素材池 | 全选 | 勾选哪些参与随机轮播;每行带时长与状态徽章,可「预览」 | | 启用屏保 | 关 | 屏保是抢屏幕的行为,必须自己打开 | | 屏保时长 | 3 分钟 | 闲置多久算「离开」:1 / 3 / 5 / 10 分钟,或自定义 1–60 分钟 | | 退出时播放特效 | 开 | 关掉=收回时只做普通淡出 | | 退出特效 | 随机 | 随机 / 粒子消散 / 重力下坠 / Glitch 宽带位移 | | 随机切换 | 不轮换 | 屏保挂着时多久换一条:15 秒 / 30 秒 / 1 分钟 / 5 分钟 | | 屏保声音 | 静音 | 一个滑块管两件事:拖到最左=静音,往右就有声音。只对视频有效 | | 屏保素材 | 全选 | 勾选 assets/screensaver/ 里哪些参与轮播,每行带类型徽章和「预览」 | | 显示「点击或按任意键继续」提示 | 开 | 屏保底部那行说明 | 生效方式分两种:屏保那几项立刻生效(每次出现前都会重新读一遍设置);启动动画那几项下次启动就用新的,想现在看效果就点卡片上的「刷新」,页面会重新播一遍。 换自己的素材 两个池子,两个文件夹,不要混着放:片头是演一遍就交接,屏保是盖住等你回来。 | 池子 | 文件夹 | 放什么 | | 片头池 | assets/videos/ | 视频(另外三类技术上也能放,但片头只演一遍,用视频才有意义) | | 屏保池 | assets/screensaver/ | 视频 / 图片 / 动图 / Live2D 模型文件夹 | - 卡片里两个小节各有一个按钮(打开片头文件夹 / 打开屏保文件夹),直接在系统文件管理器里打开对应目录,目录不存在会自动建一个。网页自己没有打开本地文件夹的权限,所以这一步是让 Host 侧替你做的。 - 视频推荐 mp4(H.264 + AAC),兼容性最好。看片头池那一行:带黄色 未优化 徽章的是索引表(moov)在文件末尾,浏览器要整段下完才出画面——点右边的「优化」,它在插件进程里把索引表无损挪到最前(只搬位置、不重编码),原片自动备份到 assets/videos/originals/(这个子目录不参与轮播)。图片和动图不需要这一步。 - 其它两个徽章:一直没有画面 是能开始播但 8 秒内一帧都没出来,放启动动画只会看到背景色;浏览器播不了 是浏览器拒绝解码。遇到就换一段,或重新导出成 H.264 mp4。 - 刷新页面就生效,新素材是每次请求实时扫描出来的,不用重启、不用重新构建。 - 屏保池的行没有「未优化」徽章也没有「优化」按钮——重排是 mp4 的事,而屏保池里还可能有图片、动图、模型。 已知限制 - 屏保的「整机闲置」那一半只有 Windows(读 GetLastInputInfo)。其他平台只剩「窗口失去焦点」这一半,屏保仍能用,但触发会迟钝一些。 - 进入前的等待等于片长。播完才进,抽到 15 秒那段就要看满 15 秒——随时点一下或按 Esc 提前进。 - 屏保里的 Live2D 模型需要自己装适配器:把一个函数挂到 globalThis.__DSH_BOOT_ANIM_LIVE2D__ 上,接口约定写在 src/renderers.js 顶部。插件不含 Live2D 运行时(那是专有库)。没有适配器时这一条会被跳过,卡片上标「无适配器」。 - 卡片的文案是硬编码中文,没走 DSH 的 locale 字典。 - 启动动画依赖 DSH 启动页的 [data-dsh-boot] 结构(读进度弧、识别启动失败都靠它)。DSH 大改版可能失效,失效只是退回原生启动页,不会崩。 - 屏保的触发条件与收回语义没有离线测试覆盖——要真实窗口的闲置、失焦与点击才能验,只能在装机后自己试。 文档导航 | 文档 | 给谁 | 内容 | | MANUAL.md | 用它的人 | 设置逐项含义、徽章含义、换素材、出问题怎么办 | | INSTALL.md | 装机的人 | 三条安装路、装完检查、卸掉 | | AGENTS.md | 维护者 | 架构、两条依赖的 DSH 事实、每条踩出来的规则、改动后要不要重启、怎么自检 | tools/ 里有五个离线自检套件(verify-pools / verify-encoding / verify-icon-route / verify-client-card / verify-exit-effects),都不需要 DSH 在跑: node tools/verify-pools.mjs # Host 半侧:两个池的清单、字节路由、整张路由表 node tools/verify-encoding.mjs # UTF-8 无 BOM、中文没坏、注入的脚本里没有 </script node tools/verify-icon-route.mjs # 卡片图标路由与它的白名单 node tools/verify-client-card.mjs # 设置卡片,对着桩 DOM node tools/verify-exit-effects.mjs # 屏保的退出特效、选择器,以及九个字段真的从实时配置读 另有四个装机脚本(install.ps1 / uninstall.ps1 / install.sh / uninstall.sh)。更早的开发工具(命令行版重排、媒体诊断、浏览器自检、更宽的 verify/ 套件)不随包发出,需要时看 AGENTS.md。 许可 代码是 MIT,见 LICENSE:改、用、再分发、商用都可以,保留版权声明即可。 素材不是。 assets/videos/ 和 assets/screensaver/ 里的视频是作者自己的原创动画,作者保留全部权利,不在 MIT 范围内。随插件原样使用(非商用)没问题;不得转售、不得商用、不得抽出来单独分发。要商用请先取得作者书面许可,或者把这些片子删掉换成你自己的。 assets/icon/ 里的三个图标属于代码,跟着 MIT 走。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lxj5820/dsh-boot-animation
用全屏短片替换启动页,闲置时自动盖上屏保
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,173已汉化DeepSeek 客户端
74.4
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,197已汉化DSH
71.7
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,308已汉化DSH
71.3
智能体运行框架路由HarnessRouter/harnessrouter
智能体运行框架的统一接口。
★ 3,897已汉化DSH
71.2