dsh-workbench-ui
> English · [中文](#readme-zh-cn)
dsh-workbench-ui 是 DeepSeek Harness 的 UI 插件。它把默认的聊天界面换成工作台式布局:任务面板与六阶段流水线、遥测场、命令控制台。浅色/深色主题跟随系统设置。界面上的所有数值都来自实时会话——没有定时器,没有伪造状态。
 · 
 · 
> 上图为真实截图。用浏览器打开 preview/preview.html,可在右下角切换浅色/深色,自行截图。
---
概览
- 对话变成过程流:
INPUT块、实时REASONING时间线、工具卡、RESULT块。 - 常驻 Agent Core 面板:当前任务 + 真实六阶段流水线
ANALYZE → PLAN → EXECUTE → OBSERVE → VERIFY → COMPLETE,全部由真实会话事件驱动,绝不用定时器伪造。 - 三层深度的遥测场(
SRC / Δ / SYNC / PROC / NODE / EXEC / MEM / OS),全部真实数值,带轻微鼠标视差。 - 克制的命令控制台取代聊天输入框;模型切换菜单完全可用。
功能
- 真实状态机 —— 阶段来自持久化会话日志(
reasoning-delta、tool/call、tool/result、assistant/message、request/context)及agent.phase.kind(completed / error / cancelled / waiting)。无伪造状态,无假 loading。 - Agent Core —— 任务 + 六节点流水线(✓ 完成 / ● 当前 / ○ 等待 / × 故障)+ 实时进程行(真光标)+ 工具扇出(
AGENT ● → read ✓ → bash ◐ …)。 - Reasoning 即信号 —— 垂直时间线、节点标记、逐行入场动画、历史衰减、闪烁光标、一次性扫描线。
- 工具 / 终端 / DIFF 视觉 —— 平铺工程卡、终端流式光标、逐行 diff 揭示。
- 遥测场 —— 远 / 中 / 近三层深度,仅真实数据,随 Agent 状态变化。
- 签名标识 —— 原创
[ · ]方括号-节点-对角线标识 + 大字距 wordmark。 - 系统芯片与状态栏 —— 顶部系统与 Agent 状态;底部 Git、模型、令牌与运行时长。
- 命令面板 ——
⌘K/Ctrl+K(纯键盘,无 UI 元素)。 - 截图隐私模式 ——
⌘⇧P/Ctrl+Shift+P一键模糊项目/会话名、路径与遥测数据,方便截图(纯视觉蒙版,数据不动)。 - 性能 —— 全部特效为 CSS transform / opacity / background-position;完整支持
prefers-reduced-motion。
设计细节
- 字体:界面 Inter / Geist;代码、日志、数字与元数据 JetBrains Mono / IBM Plex Mono。
- 边框:1px 发丝线;圆角 4–8px,工作区 0。用边框而非阴影建立结构。
- 动效:快、准、机械,每一个动画都有功能。
- 深度:环境背景 → 计算场 → 工作台表面 → 活动进程 → 交互。
- 全部视觉为程序化生成(CSS 渐变 + 内联 SVG),无第三方素材、无壁纸、无复制布局。
浅色模式
明亮、干净的工程工作台:白色表面、石墨文字、克制的青色信号;近乎不可见的网格与柔和景深。安静、精密、易读。
深色模式
深邃的计算环境:石墨层次、冷青信号、极淡网格、漂浮的遥测与线框几何。焦点始终在运行中的 Agent 上。
两套主题共享同一套语义 token 系统,跟随系统 prefers-color-scheme 自动切换。界面不提供主题开关。
安装
本地副本安装(推荐——GitHub 下载超时时也能用):
git clone https://github.com/seedaylight/dsh-workbench-ui.git
dsh plugin --profile web add ./dsh-workbench-ui如果你使用其他 profile(default、tui 等),把 web 换成你的 profile 名。macOS、Windows(PowerShell 或 cmd)、Linux 均可用,dsh plugin 命令完全一致。在 Windows cmd 中,将 ./dsh-workbench-ui 换成 dsh-workbench-ui(或绝对路径)。
直接从 GitHub 安装:
dsh plugin --profile web add https://github.com/seedaylight/dsh-workbench-ui.git如果提示下载超时(codeload.github.com … error 23),改用上面的本地副本方式即可——它完全不经过 tar.gz 下载。插件没有构建脚本,因此安装失败时打印的 pnpm allowBuilds 提示可以忽略;重试或改用本地方式即可。
卸载
dsh plugin --profile web remove dsh-workbench-ui开始使用
安装后重启 web GUI 并刷新页面即可,工作台 UI 会自动出现,无需任何开关或配置。
1. 停止正在运行的 web 实例(在运行 dsh web 的终端按 Ctrl+C,或结束其进程)。 2. 重新启动:dsh web。 3. 刷新浏览器(http://127.0.0.1:3080,或 dsh 打印的地址)。
加载后,会话视图会变成一张工作台:
- Agent Core —— 当前任务 + 实时六阶段流水线
ANALYZE → PLAN → EXECUTE → OBSERVE → VERIFY → COMPLETE,全部由真实会话事件驱动。 - 遥测场 —— 远 / 中 / 近三层深度(
SRC / Δ / SYNC / PROC / NODE / EXEC / MEM / OS),仅真实数值。 - 命令控制台 —— 取代聊天输入框(模型切换菜单仍可用)。
- 状态栏 —— 底部显示 Git、模型、令牌、运行时长与 Agent 状态。
- 命令面板 ——
⌘K/Ctrl+K。 - 截图隐私模式 ——
⌘⇧P/Ctrl+Shift+P,一键模糊项目/会话名与遥测。 - 主题 —— 浅色/深色跟随系统
prefers-color-scheme,界面不提供开关。
宿主端在 harness web 服务器上注册两个同源端点(/__dsh-workbench-ui__/health、/__dsh-workbench-ui__/snapshot);客户端每秒轮询一次快照。
环境要求
DeepSeek Harness(dsh)Web 客户端 · Node.js ≥ 18。已在 dsh 0.1.0-rc.7 上测试通过。CSS 针对当前 harness 构建的 DOM(类名哈希)编写;harness 升级后可能需要少量选择器刷新——这是社区 UI 插件的正常情况。
隐私
无遥测、无分析、无任何外部请求。所有数值来自本地会话,在 harness 进程内计算。遥测端点为同源只读快照。插件不包含任何凭据、令牌、个人信息或机器路径。
快捷键
| 功能 | macOS | Windows / Linux |
|---|---|---|
| 命令面板 | ⌘K | Ctrl+K |
| 截图隐私模式 | ⌘⇧P | Ctrl+Shift+P |
| 收起/展开工作区侧栏 | ⌘\ | Ctrl+\ |
| 打开详情面板 | ⌘J | Ctrl+J |
故障排查
提示 "Failed to apply … cannot get property "timer" without inject":说明浏览器还在加载旧的缓存 bundle(这个错误来自 v0.3.1 之前使用 cordis timer 服务的旧版 client)。插件已不再使用 timer——更新插件后必须:
1. 重装更新后的插件:git clone(或在已有 clone 中 git pull)后执行 dsh plugin --profile web add ./dsh-workbench-ui。 2. 重启 dsh:停止 dsh web 进程后重新启动。 3. 硬刷新浏览器(⌘⇧R / Ctrl+Shift+R),清除缓存的旧脚本。
验证实际加载的 bundle:打开 http://127.0.0.1:3080/plugins/dsh-workbench-ui/client.js,查看 URL 中的 rev=——当前版本应为 9ad8d3e93c56 或更新。若仍为 7b447dd6b1a0,说明旧副本还在生效。
全新安装后提示 "Failed to load plugins / bundle script … failed to load":浏览器没能拉取到插件的 client.js——通常是网络连接中断(与安装时 codeload.github.com … error 23 超时同因),不是代码错误。
1. 刷新页面(⌘R / Ctrl+R)。如果浏览器缓存了不完整的下载,用硬刷新(⌘⇧R / Ctrl+Shift+R)清除。 2. 仍失败的话,验证 bundle 是否正常提供:打开 http://127.0.0.1:3080/plugins/dsh-workbench-ui/client.js——应返回脚本内容而非错误页。 3. 用本地副本重新安装,排除 GitHub 下载不完整(见 [安装](#安装))。
许可
MIT。本项目是 DeepSeek Harness 的独立社区插件;产品及其品牌归原所有者。