DSH Hub
dsh-drawai cover

fourzkw/dsh-drawai

dsh-drawai

UIWeb UI49 GitHub stars· updated 2026-10-26

dsh-drawai is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-drawai

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-drawai DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-drawai.svg)](https://dshhub.dev/plugins/dsh-drawai)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from fourzkw/dsh-drawai, cleaned of badges and images.

dsh-drawai

功能一览

dsh-drawai 把可编辑画布放进 DeepSeek Harness 右侧栏,并给模型两个改图工具;人和 AI 读写的是同一份原生 .drawio。

  1. 右侧栏可编辑画布 —— 打开 / 新建工作区 .drawio:画节点、连边、就地改字、分层、排序、对齐、导出;双击即可改标签。
  2. 自然语言改图 —— 对话里说需求,模型用 diagram_read / diagram_apply 读现状、结构化改图、自动布局并原子写回。
  3. 选区感知与回退 —— 你在画布上选中什么,模型就知道什么;模型改动最多可退 8 步。
  4. SVG 图形节点 —— 图标 / logo 可直接当节点内容,拼流程图与示意图。
  5. 位图矢量化(traceImage) —— 照着工作区图片逐像素描成 SVG 节点,不是凭印象手写近似图。
  6. 原生 .drawio 载体 —— 无需导入导出;画布读不懂的单元逐字节保留,文件可直接用 drawio / diagrams.net 继续编辑。
  7. 视频复刻 —— 选中已导入视频,点击悬浮工具条「绘制复刻」自主设置画质、帧率、完整视频或起止范围,自动抽帧并绘制成 SVG 视频;显示预计帧数、实际进度与帧预览,支持取消,原视频保留。支持 SVG 帧序列包,以及保留原帧率、白底和片段音频的 MP4 / WebM 离线导出;也可导出白底、循环播放的无声 GIF。渲染、编码和保存由宿主后台执行,切换标签或刷新网页后仍继续,完成文件自动保存到画布旁(编码需 FFmpeg)。详见视频节点说明。

安装 / Install

# 从 npm 安装(推荐:预构建,跳过 allowBuilds 构建授权)
dsh plugin --profile web add dsh-drawai

# 或者直接从 GitHub 装(仓库里没有 prepare 脚本,同样不需要构建)
dsh plugin --profile web add github:fourzkw/dsh-drawai

然后重启 dsh web —— 宿主侧只在启动时加载,这一步不能省。

更新到最新版:dsh plugin --profile web update dsh-drawai@latest

重启之后,你会看到:

装好后的变化出现在哪里
「DrawAI 画布」面板,负责打开 **/*.drawio右侧栏
diagram_read / diagram_apply模型工具集
drawai-canvas 技能会话技能目录(模型按需取全文)
  • 两种装法都不需要 allowBuilds 构建授权:npm 包是预构建的;GitHub 源码包里 lib/ 也已提交、没有 prepare / postinstall 脚本。
  • 手动挂载的兜底写法,以及本地 link 的开发做法,见设计文档的「安装」一节。

使用 / Usage

一块画布、两个工具、一份文件:人改的、模型改的、drawio 改的,最后都落在同一个 .drawio 上。

入口你能得到什么
右侧栏画布打开或新建画布、画节点与连线、就地改字、图层、分区、顺序、多选对齐、查找、微移、多页切换、复制粘贴、导出 SVG / PNG / 透明 PNG(4×,含导出选中)
diagram_apply让模型按 ops 改图:增删改、重接边、复制、排序、分层、导出;支持 ids 批量、as 别名、expectRevision
diagram_read让模型看见图的结构与样式、图层与父级、页面尺寸、你此刻的选区、文件指纹 revision
选中与回退你选中什么模型就知道什么;模型的每一轮改动都能在界面上退回去

🗂️ 画布面板 / The canvas panel

刚打开面板时它是空的(不会替你预开一张图):用 文件 → 新建画布… 或 文件 → 打开…(列出工作区里所有 .drawio)开始。

功能它解决什么问题
画布外观矩形 / 圆角 / 椭圆 / 菱形 / 圆柱 / 文档 / SVG 图形 / 位图 等形状族(右侧元素条按族放置)、8 色调色板、白纸 + 网格、正交折线 + 障碍避让、明暗切换
SVG 图形节点节点内容直接是一段 SVG 标记(图标 / logo / 示意图这种形状词汇表里没有的东西):右键「SVG 内容…」贴进去即可,或让模型用 addNode {shape:"svg", svg:"<svg viewBox…>…</svg>"}。落盘是 drawio 原生的图片形状(shape=image + image=data:image/svg+xml,<百分号编码>),所以 drawio 桌面版打开同样画得出来;标记只喂给 <image>(独立文档,脚本不执行、也不碰页面 DOM)
内嵌位图从剪贴板粘贴或拖入 PNG / JPEG / GIF / WebP,画布会真的画出来(同为 shape=image + data URI)。diagram_read 把 base64 省略成 «image N 字符»,不撑爆上下文
位图矢量化 traceImage让模型照着工作区里一张图逐像素描成 SVG 内容节点(读像素 → 按必填的 removeBg 决定是否泛洪抠底 → k-means 调色板 → 3× 超采样归类 → 按颜色取像素级闭合轮廓 → 每色一条 nonzero path)。形状词汇表表达不了的照片 / 插画走这条,而不是让模型手写一段近似 SVG 冒充复刻
文本双击节点就地改字。「T 文字」是独立的文字节点;支持字号与字色。图片和视频节点不显示文字
连线四选一画法(直线 / 直角折线 / 圆角折线 / 曲线)× 线型(含虚线间距)× 箭头(单向 / 双向 / 无 / 反向)× 颜色 × 引出段长度;自环;悬空端(从节点脱开后成为自由端点,还能再拖回去)
连线上的文字双击改、按住拖(半格 + 贴线吸附)、右键「标签居中」;线在文字的位置真的断开(不盖白底)
选中与移动框选 / Shift 加选 / Ctrl+A;整体拖动(折点与自由端点跟着同一个位移走);对齐辅助线;多选对齐与分布
图层列出 / 新建 / 显示隐藏 / 锁定 / 重命名 / 删除(合并到邻层)/ 选中移层 / 设为当前层;隐藏与锁定写入文件
顺序置顶 / 上移 / 下移 / 置底 —— 写回时真的改动文件里单元的先后(否则重新打开就变回去了)
自定义数据右键「编辑数据」,按 key=value 一行一项改单元属性;按 user object 存回文件,drawio 打开不会丢
导出SVG / PNG(4×) / 透明 PNG(4×);「看一眼画布效果」走 DSH 附件服务,不在工作区落文件
回退「编辑 → 撤销 AI 改动」最多可以连着退 8 步

🤖 两个工具 / The two tools

diagram_apply —— 模型怎么改图

结构化 ops,改完自动布局并原子写回(布局默认 dagre-tb,另有 dagre-lr / grid / none):

…

Related plugins