用星云流星与烟花实时呈现智能体工作阶段
25.2/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/11 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add guoan1tang/deepseek-ui-agent-sky该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/3(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 星云流星呈现工作阶段
- 烟花呈现工作阶段
README
由 DeepSeek 最新模型翻译生成🌌 ui-agent-sky · DeepSeek Harness 星野进度插件
AI 干活时,抬头看天——思考是星云聚拢,输出是流星划过,任务完成,满屏烟花。
一个给 DeepSeek Harness(DeepSeek 开源的 agent 运行框架)写的纯前端可视化插件:在会话头部右侧(紧贴 Session log 按钮)挂一块宽宽的「夜空」,agent 的每一个工作阶段都对应一种天象——思考时紫色星云从四周向中心聚拢,输出时金色流光自左向右掠过,跑工具时青色粒子绕轨道环旋转,等你批准时琥珀色光点脉动。任务完成的一刻,全屏升起五发烟花;出错时,则是一阵暗红色的余烬缓缓落下。
而彩蛋还在:当你在输入框里发出包含「快一点」「继续」「怎么了」「卡了」这类催促词的消息时,一道闪电会劈过整个屏幕——哪怕这条消息是在落地页发出的、挂件还没挂载——同时挂件里的粒子被冲击波吹得四散,右上角还会记下这页里你催了几次「雷」。鞭子没有消失,它化作了一道闪电。
展开完整文档(README 剩余 1 节)
🌌 ui-agent-sky · DeepSeek Harness 星野进度插件
AI 干活时,抬头看天——思考是星云聚拢,输出是流星划过,任务完成,满屏烟花。
一个给 DeepSeek Harness(DeepSeek 开源的 agent 运行框架)写的纯前端可视化插件:在会话头部右侧(紧贴 Session log 按钮)挂一块宽宽的「夜空」,agent 的每一个工作阶段都对应一种天象——思考时紫色星云从四周向中心聚拢,输出时金色流光自左向右掠过,跑工具时青色粒子绕轨道环旋转,等你批准时琥珀色光点脉动。任务完成的一刻,全屏升起五发烟花;出错时,则是一阵暗红色的余烬缓缓落下。
而彩蛋还在:当你在输入框里发出包含「快一点」「继续」「怎么了」「卡了」这类催促词的消息时,一道闪电会劈过整个屏幕——哪怕这条消息是在落地页发出的、挂件还没挂载——同时挂件里的粒子被冲击波吹得四散,右上角还会记下这页里你催了几次「雷」。鞭子没有消失,它化作了一道闪电。
特性一览
- 🪐 相位即天象:直接从会话快照推导 7 种相位,每种相位一套独立粒子行为,纯 canvas 实现
- 🎆 完成即烟花:运行结束且成功 → 全屏五连发烟花(重力、拖尾、渐隐一应俱全);出错 → 余烬坠落
- ⚡ 隐藏闪电:UI 上没有任何按钮,催促语随消息发出即触发一次全页雷击 + 粒子冲击波
- 🔭 零后端改动:只读订阅 ConversationSnapshot,加一个 200ms 的输入框轮询,不碰任何宿主逻辑
- 🌍 中英双语文案:接入 harness 的 locale 体系,声明式合并命名空间
它是怎么工作的(30 秒版)
DeepSeek Harness 的一切皆插件,底座是 vendored 的 Cordis 运行时。本插件是一个「两半」插件:
- Host 半(Node 侧):空的 apply(),只为了出现在 cordis.yml 的加载清单里;
- Browser 半(浏览器侧):通过 package.json 的 dsh.client 声明被发现,打包成独立 client bundle,在浏览器里注册到 UI 的插槽(slot) conversation.session.header.utilities 上——那是头部右侧的工具区,与 Session log 按钮同一排;挂件以 order: -5 排在它左边。
浏览器侧用多个 useSyncExternalStore 选择器从会话快照投影出原始值信号:running(是否在跑)、partial.blocks 的末块类型(区分思考/输出/工具调用)、runningCalls[0].name(正在跑的工具名)、pending(是否等待批准)、lastAgentError(本轮是否出错)、turnTimings.size(跑过几轮)。这些信号喂给一个 200ms 的状态机,状态机驱动相位切换;相位再驱动粒子发射器。烟花/闪电/余烬三种全屏特效通过 createPortal 挂到 document.body,不受头部裁剪影响。闪电的触发是独立的模块级 watcher,从 apply() 起就以 200ms 轮询输入框草稿:草稿从「含催促词」变为「空」(即消息已发出)时,劈一道雷。因为 watcher 不依赖挂件挂载,落地页发出的第一条催促消息同样会召来闪电。
相位与天象
| 相位 | 何时出现 | 挂件里的天象 | 文案示例 |
| idle | 没有运行中的任务 | 静谧夜空,稀疏星点闪烁 | 夜空静谧,等活儿干 |
| think | 模型在产出推理内容 | 紫色星云从四边向中心螺旋聚拢,附秒数计时 | 模型正在思考… |
| write | 模型在输出正文 | 金色流星自左向右掠过 | 正在输出… |
| tool | agent 在调用工具 | 青色粒子绕轨道环旋转,右下角亮出工具名 | 正在执行 Bash |
| await | 等待你批准操作 | 琥珀色光点在中心脉动 | 等你批准… |
| done | 任务成功结束 | 金色光尘上浮 + 全屏烟花 ×5 | 任务完成,放烟花! |
| failed | 本轮出错 | 灰色光尘下沉 + 全屏余烬坠落 | 这一轮出错了 |
安装与运行
前提
- 已克隆 deepseek-harness 并完成 pnpm install(Node ^22.19 || >=24,pnpm 11)
- 想让天象真的「动」起来,需要配置 DEEPSEEK_API_KEY(放进 harness 仓库根目录的 .env,不要提交);不配 key 也能看 UI,但 agent 跑不起来
第 1 步:拷贝插件包
把本仓库的插件包整体拷进 harness monorepo:
cp -r <本仓库>/packages/client/ui-agent-sky <deepseek-harness>/packages/client/
第 2 步:登记 TypeScript 工程引用
在 harness 根目录 tsconfig.client.json 的 references 数组里加一行:
{ "path": "./packages/client/ui-agent-sky" },
第 3 步:让 web-app 依赖它
在 packages/bundle/web-app/package.json 的 dependencies 里加一行:
"@deepseek-ai/dsh-client-ui-agent-sky": "workspace:^",
第 4 步:安装并构建
cd <deepseek-harness>
pnpm install
pnpm run build:lib
第 5 步:patch 启动
mkdir -p scratch/agent-sky
cp <本仓库>/patch/agent-sky.cordis.yml scratch/agent-sky/cordis.ymlbash
pnpm dsh web --patch ./scratch/agent-sky/cordis.yml
打开 http://127.0.0.1:3080,会话头部右侧就是那块夜空。发一条消息让 agent 干活,星云就开始聚拢了。
玩法
触发闪电(隐藏机制)
发送的消息文本里包含下列任意一个词,就会劈下一道闪电:
快一点 · 快点 · 继续 · 怎么了 · 卡了 · 卡住
界面上没有任何提示——它就是个彩蛋。闪电有两段效果:全屏雷击(约 1.4s 的折线闪电 + 视口闪光),以及挂件内粒子的一次冲击波散射。右上角的徽标记录这一页里召来的「雷」数;两次雷击之间至少有 1.2s 冷却。
仓库结构
├── packages/client/ui-agent-sky/ # 插件本体(整体拷入 harness monorepo) │ ├── package.json # dsh.client 声明 + exports["./client"] │ ├── tsconfig.json # extends harness 的 client 基础配置 │ ├── tsdown.config.ts # client bundle 打包入口 │ └── src/ │ ├── index.ts # host 半:空 apply,仅为出现在加载清单 │ ├── invariant.ts # 包级 invariant companion │ ├── css-modules.d.ts # CSS Modules 类型垫片 │ └── client/ # browser 半 │ ├── index.ts # 注册 locale + 挂载 header slot + 启动 watcher │ ├── whip.ts # 模块级输入框轮询:催促词随消息发出即召雷 │ ├── SkyPhaseAction.tsx # 相位状态机、粒子引擎、烟花/闪电/余烬特效 │ ├── SkyPhaseAction.module.css │ └── locales.ts # zh / en 文案,zh 为键集真源 └── patch/ └── agent-sky.cordis.yml # 启动用的 cordis.yml 覆盖层
开发备忘
- 改完必须重启服务:client bundle 的 URL 带 ?rev=<sha> 修订号,启动时计算;重新构建后要重启 dsh web 浏览器才能拿到新包。
- CSS 时长会被压缩:lightningcss 把 2800ms 压成 2.8s。在产物里 grep 动画时长时记得搜压缩后的形式。
- 严格 TS:strict: true + noUncheckedIndexedAccess。数组索引结果是 T | undefined,CSS Modules 索引结果是 string | undefined,拼类名用 clsx(harness 的既有依赖)。
- uSES 选择器必须投影为原始值:useSession 是裸的 useSyncExternalStore,Object.is 比较;选择器里直接返回布尔/数字/字符串,不要返回对象。
- lint:oxlint。注意 @stylistic(arrow-parens)(块体要括号、表达式体不要)和 typescript(no-unnecessary-condition)(不要给非空类型写 ?? fallback)。
- 端口冲突时用 --port 换一个,例如 pnpm dsh web --patch ... --port 3123 --no-open。
致谢与许可
基于 deepseek-ai/deepseek-harness(MIT)开发,插件架构遵循其 packages/client/* 的既有约定。
MIT © tangguoan预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
guoan1tang/deepseek-ui-agent-sky
用星云流星与烟花实时呈现智能体工作阶段
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目