dsh-canvas
DiscoveredDeepSeek Harness Deliverables Workbench Plugin: Organize pages, documents, and images on the canvas, hand off edits to AI via element annotations, with support for version comparison and history recovery.
dsh Canvas
把 DeepSeek Harness 对话里的成果,变成可以整理、批注、比较和继续修改的画布。
这是非官方社区插件,直接使用当前 DSH 会话的模型、消息队列和权限设置。当前版本为早期预览版。
主要功能
整理成果与上下文:在同一张画布上查看页面和文档,勾选相关成果后交给 DSH 继续处理。
直接在元素上批注:点击页面里的标题或段落,保存具体修改意见,并绑定到当前版本。
比较与恢复版本:并排查看修改前后的内容,采用历史版本时保留已有历史。
安装
当前验证环境:DeepSeek Harness 0.2.1-rc.2,Web 界面,Node.js 22.18+。DSH 的扩展接口仍在变化,其他版本与桌面内嵌界面尚未验证。
从 Releases 下载构建好的 dsh-canvas-workbench-0.1.0.tgz,在终端执行(路径替换为实际位置):
dsh plugin --profile web add "C:/path/to/dsh-canvas-workbench-0.1.0.tgz" --ignore-scripts
dsh web
如果 DSH 已在运行,安装后重新启动。打开一个已有会话,或先在新会话发一条消息,然后点击会话顶部的 Canvas 标签。
源码本地安装:
git clone https://github.com/GlariaLuminous/dsh-canvas.git
cd dsh-canvas
npm ci --ignore-scripts
npm run check
npm pack --ignore-scripts
dsh plugin --profile web add "link:C:/absolute/path/to/dsh-canvas" --ignore-scripts
npm run build 会显式运行 esbuild。生产安装包已包含 lib/,安装插件不需要运行构建脚本。项目目前未发布到 npm。
完成一次迭代
- 导入
.md、.txt、.html或 PNG/JPEG/WebP/GIF;也可以点击「新建」粘贴 Markdown 或 HTML。 - 打开成果,点击「选择区域批注」,在页面上点击元素,填写并保存修改意见。批注绑定到当时的版本。
- 点击「让 DSH 按批注修改」。也可以在画布勾选最多 8 个成果,在右侧输入具体要求并发送。
- DSH 用原生
canvas_get和canvas_publish工具读写成果。新版本完成后,画布会自动更新。 - 点击「比较版本」查看双栏预览或文本差异;采用任意历史版本都保留已有历史。
不导入文件也可以在普通 DSH 对话中要求:
请用 canvas_publish 创建一个 Markdown 成果,标题「发布清单」,包含准备、验证和发布三个部分。
其他交互:拖动卡片标题移动、拖动空白区域框选、勾选多项、平移、缩放、适应画布、搜索标题、整理布局、编辑源码生成新版本、导出原始文件。聚焦画布后,方向键移动选中成果,Shift + 方向键加大步长,Ctrl/Cmd + A 全选;右侧输入框支持 Ctrl/Cmd + Enter 发送。
数据与预览边界
- 成果按 DSH 会话独立保存到
<DSH_HOME>/storages/canvas-workbench/boards/。默认 DSH_HOME 为~/.dsh;文件名为会话 ID 的 SHA-256。备份此目录可保留画布数据,存储内容未加密。 - 修改前校验画布 revision 和成果 base version。过期修改会报冲突,避免静默覆盖;历史内容不可变,恢复只切换当前版本。
- HTML 是静态预览:保留样式,清洗内容,再放入无同源权限的 iframe;禁用用户脚本、外部网络资源、表单、弹窗和下载。它用于审阅页面成果,不承载任意 React 应用的运行环境。外部图片、字体和 CDN 样式不会加载。
- 文本单版本最多 1 MiB,图片最多 5 MiB;单画布最多 100 个成果、500 条批注、25 MiB,每个成果最多 100 个版本。当前界面没有成果删除或跨会话移动功能,接近上限时请导出并使用新会话。
- 每 2 秒读取一次当前可见画布的 revision。模型处理有实际延迟;未配置模型、权限被拒或连接失败时会显示错误,不生成假结果。
- 发送时传递所选成果的 ID、当前版本及批注。文本/HTML 由工具读取;图片作为 DSH 原生消息附件发送,能否理解图片取决于当前模型。
- 面向本机、单个 DSH host。不要让多个进程同时写同一个 DSH_HOME;目前不提供跨进程锁或多人协同。
- Canvas API 使用 DSH Connection 的原生身份验证与 owner 限制;持有该 DSH 实例完整权限的用户可以访问该实例的画布。
开发与验证
npm ci --ignore-scripts
npm run check
npm audit
check 包含 TypeScript、存储/冲突/选中上下文/差异算法测试,以及 host 和浏览器插件构建。
真实 DSH HTTP 集成测试需另起一个隔离的测试实例,不要使用日常数据目录:
$env:DSH_HOME = "C:/temp/dsh-canvas-test-home"
dsh plugin --profile web add "link:C:/absolute/path/to/dsh-canvas" --ignore-scripts
dsh web --no-open --port 3391 > C:/temp/dsh-canvas-startup.log
# 在另一个终端运行:
npm run test:integration -- C:/temp/dsh-canvas-startup.log
测试脚本从启动日志读取本机认证 URL,使用原生认证建立测试会话,只创建并移除自己的临时成果,不打印令牌。启动日志本身包含认证信息,请保密。
真实模型、导入、批注、预览隔离及版本恢复的人工验证记录见 VALIDATION.md。
模块
src/host 注册 DSH 工具和已鉴权 API,负责校验、原子保存及冲突控制;src/client 提供 conversation.view 会话视图、画布及沙箱预览;src/shared 定义存储模型与行差异算法。React 和 DSH 服务由宿主提供,不打包第二份运行时。
对接依据:官方仓库、插件开发、Web 样式约定。安装包以 npm 的 0.2.1-rc.2 真实运行验证为准。
MIT License.
Comments
Loading…
Similar plugins
by CHAAAAA
DeepSeek Harness(DSH)的项目与工程管理插件,把需求、项目文档、Git 提交、AI 提交信息、代码评审、工作树、后台任务与周报聚合到一个侧边栏工作台里。
★ 0
MIT
TypeScript
Nov 2, 2026
dsh plugin --profile web add dsh-devbench-pluginby wild-River2016
DeepSeek Harness 插件 - 小禾画布 AI 创作助手
★ 0
MIT
TypeScript
Oct 2, 2026
dsh plugin --profile web add xiaohe-canvas-dshby copylee711
DeepSeek Harness 插件:AI 直接在你打开的 Word / Excel / PowerPoint 里改文档,改动实时可见,可以一起编辑(Windows)
★ 24
↓ 2k/wk
MIT
TypeScript
Oct 23, 2026
dsh plugin --profile web add @copylee/dsh-officeby ljcoder2015
dsh-canvas-flow,deepseek harness 无限画布插件,在画布上,搭出你的工作流。
★ 4
↓ 291/wk
MIT
TypeScript
Oct 16, 2026
dsh plugin --profile web add dsh-canvas-flowby roushanyyzz
让 AI 在对话中每修改一个文件,你就立刻看到它改了什么。 DSH(DeepSeek Harness)插件:拦截 write / edit 工具调用,在对话流的工具卡片位置直接渲染 git 风格文件差异——支持上下对比与左右对比,逐行高亮
★ 0
MIT
TypeScript
Aug 20, 2026
dsh plugin --profile web add dsh-diff-visby CanglongCl
DeepSeek Harness Web GUI 的网页预览与元素批注插件,让 AI 根据可视化反馈直接修改前端源码。
★ 15
↓ 121/wk
HTML
Aug 20, 2026
dsh plugin --profile web add @canglongcl/dsh-web-review