DSH 会话标题栏里的实时进度胶囊:把持久化的会话事件流折叠成 agent 当前动作(工具名 + 参数摘要)、本轮第几步、已耗时与待办进度,每 1.2 秒轮询一次;干活时蓝点脉冲、一轮结束转绿、工具调用失败转红,空闲 9 秒后自动收起。在 Windows 上还会打开常驻置顶桌面小窗(设 DSH_AGENT_STATUS_HUD=0 可关闭)。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:mdktelmdktel/dsh-agent-status
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
给 DeepSeek Harness(dsh)用的一个小插件:在会话标题栏实时显示 agent 现在做到哪一步。
不用点开、不用翻记录,一眼就能看到它当前在干什么、做到第几步、这一轮跑了多久、待办推到第几项。
● 执行命令:pnpm test · 第 12 步 · 1:38 · 待办 3/7
● 修改文件:client.js · 第 8 步 · 0:42
✓ 上一轮完成 · 6 步 · 1:12 ← 空闲 9 秒后自动消失
- ● 蓝点脉冲 = 正在干活
- ✓ 绿点 = 刚结束的一轮
- ✗ 红点 = 最近一次工具调用失败
- 鼠标悬停 → 当前待办原文 + 最近 4 个动作(工具 / 目标 / 耗时 / 成败)
屏幕右下角常驻窗口(0.2.0)
除了标题栏胶囊,插件还会开一个独立的桌面窗口,钉在屏幕右下角、永远在最上层——DSH 最小化、被别的窗口盖住、切到别的软件,它都还在。
┌─────────────────────────────────┐
│ ● 执行命令:pnpm build │
│ 第 16 步 · 16:11 │
│ ████████████████░░░░ │
│ ✓ 修改文件 promo.html · 0:42 │
│ ✓ 执行命令 pnpm build · 1:08 │
│ ✗ 执行命令 pnpm test · 0:19 │
│ DSH Agent · 本轮运行中 │
└─────────────────────────────────┘
- 真·窗口:
Topmost、无边框、圆角、半透明卡片,不在任务栏占位 - 脉冲点:蓝 = 运行中(呼吸),绿 = 刚结束,红 = 最近一次工具调用失败
- 第二行:
第 N 步 · 本轮耗时 · 待办 x/y,计时在本地每 240ms 自己走,不用等轮询 - 细进度条 + 最近 3 个动作(工具 / 目标 / 耗时 / ✓✗)
- 拖动卡片任意位置可移动;右键 = 关掉本次窗口
- 数据来源与标题栏胶囊相同:轮询本机
/agent-status/api/state,端口自动发现 - DSH 退出时窗口自动跟着退出;重复启动会自己检测单例
脚本是
desktop-hud.ps1(Windows PowerShell 5.1 + WPF,零依赖)。宿主在插件启动时拉起它; 不想用就设环境变量DSH_AGENT_STATUS_HUD=0。
显示什么
| 字段 | 含义 |
|---|---|
| 当前动作 | 工具名翻译成人话:ops_bash → 执行命令,edit → 修改文件,ops_grep → 搜索代码,todo_write → 更新任务清单……并在后面附上参数摘要(命令描述、文件路径、搜索词、队友名) |
| 第 N 步 | 这一轮里第几次模型请求(每批工具调用算一步) |
| 本轮耗时 | 从 turn/start 到现在的实际时间 |
| 待办 x/y | agent 调过 todo_write 时,取它自己的任务清单进度与当前项 |
前两个是"现在",后两个是"做到哪里"——这就是它要回答的问题。
安装
github:mdktelmdktel/dsh-agent-status
在 Plugin Manager 里装这个 bundle,或手工等价操作(profile 目录 ~/.dsh/profiles/<name>):
package.json的dependencies加"dsh-agent-status": "github:mdktelmdktel/dsh-agent-status"package.json的dsh.profile.bundles加"dsh-agent-status"pnpm install,HMR 会当场激活新 bundle
装完刷新一次页面(Ctrl+R)就能看到胶囊。想关掉:插件行上 disabled: true。
npm 上有个同名包(
dsh-agent-status,作者r2s,2026-10-20 发布,做的是类似的事),不是这个插件。请认准mdktelmdktel/dsh-agent-status。
原理
两个部分,一个数据源:
Host Client
session/event ──折叠──> per-session state 1.2s 轮询
turn/start { phase, tool, detail, │
tool/call step, turnMs, todo, ▼
tool/result recent } conversation.session.header.utilities
assistant/message │ → 胶囊组件
turn/end ▼
GET /agent-status/api/state
- 只吃持久事件:
turn/start/tool/call/tool/result/assistant/message/turn/end,所以状态可重建,也不依赖任何 per-agent 订阅。 - 子 agent 自动覆盖:subagent 也是 session,同一个折叠器直接为其记账。
- 内存态、无落盘:会话 15 分钟无事件即回收,最多保留 48 个会话。
- 零配置。要改轮询间隔就改
client.js里的POLL_MS。
已知限制
- 胶囊显示的是宿主内存里的当前状态:页面在某一轮中途打开时,
第 N 步从插件观察到的位置开始计,不会回溯这一轮此前的事件。 - 宿主侧
index.js改动不会热更(只有"新装 bundle"能被 HMR 激活),改宿主代码要重启应用;客户端client.js改动会经 client-hmr 自动下发。 /agent-status/api/state只监听回环地址、不做鉴权,内容仅为工具名与参数摘要。
文件
index.js 宿主半:事件折叠 + JSON API
client.js 浏览器半:window.__ModuleLoader__ 手写模块 + 胶囊组件
cordis.patch.yml bundle patch(插入一行 agent-status)
locale/{zh,en}.json 插件管理页的标题与描述
icon.svg 插件图标
License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 9925
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 9925
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 6712
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
ccch1mneyyy/dsh-TUI★ 6538
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 4808
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1672
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。