在侧边栏直接编辑工作区里的 draw.io 图纸
28.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jaikensai888/dsh-drawio该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 42 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/6) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 31 处,展示前 18 条)
- 读取本地文件lib/index.js:144
const marker = JSON.parse(await readFile(this.#markerPath, "utf8")); - 读取本地文件lib/index.js:149
if (!(await stat(join(this.webappRoot, "index.html"))).isFile()) { - 写入本地文件lib/index.js:162
await mkdir(this.root, { recursive: true }); - 读取本地文件lib/index.js:172
const warBytes = (await stat(warPath)).size; - 写入本地文件lib/index.js:176
await mkdir(extractDir, { recursive: true }); - 写入本地文件lib/index.js:190
await writeFile(this.#markerPath, `${JSON.stringify(marker, null, 2)}\n`, { mode: 420 }); - 删除本地文件lib/index.js:201
await rm(warPath, { force: true }).catch(() => void 0); - 删除本地文件lib/index.js:202
await rm(extractDir, { - 发起网络请求lib/index.js:210
const response = await fetch(this.#source.url, { redirect: "follow" }); - 写入本地文件lib/index.js:221
await pipeline(Readable.fromWeb(response.body), meter, createWriteStream(target)); - 写入本地文件lib/index.js:230
await rename(target, previous); - 写入本地文件lib/index.js:236
await rename(extractDir, target); - 删除本地文件lib/index.js:241
if (displaced) await rm(previous, { - 读取本地文件lib/index.js:849
return await stat(path); - 读取本地文件lib/index.js:862
const stream = range === void 0 ? createReadStream(path) : createReadStream(path, { - 删除本地文件lib/index.js:1058
await rm(temp, { force: true }); - 读取本地文件lib/index.js:1089
return await stat(path); - 发起网络请求lib/client.js:52
response = await fetch(route, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-host-webserver给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 图纸即工作区文件
- 编辑器自托管离线
展开完整介绍(114 字)↓
在 DSH Web GUI 侧边栏里直接画 draw.io 图:图纸即工作区里的 .drawio 文件,编辑器自托管、完全离线 · A self-hosted draw.io editor for the DSH sidebar
README
由 DeepSeek 最新模型翻译生成dsh-drawio
在 DSH Web GUI 的侧边栏里直接画 draw.io 图。
说明
- 侧边栏点开工作区里的 .drawio 文件,就是一个真正的 draw.io 画布(形状面板、格式面板、连线都在)。
- 图纸就是工作区里的普通文件,能进 git、能被别的工具读写;新建默认落在 <工作区>/docs/diagrams/。
- 编辑器自托管:首次使用时下载并校验官方资源包到 ~/.dsh(约 51 MB),之后完全离线。
- 改动自动保存;文件在编辑器之外被改过时会拒绝覆盖并让你选,不会静默吞掉别人的改动。
- 明暗跟随 DSH:设置里选浅色/深色/跟随系统,画布立刻跟着变,不重载编辑器(见下方「深色模式」)。
- 不给模型任何工具,这是给人用的编辑器。
安装
cd $env:USERPROFILE\.dsh
dsh plugin --profile desktop add "github:jaikensai888/dsh-drawio#v0.1.4"
然后完全退出并重启 DSH Desktop(关窗口不算),再在浏览器里 Ctrl+Shift+R。
展开完整文档(README 剩余 1 节)
dsh-drawio
在 DSH Web GUI 的侧边栏里直接画 draw.io 图。
说明
- 侧边栏点开工作区里的 .drawio 文件,就是一个真正的 draw.io 画布(形状面板、格式面板、连线都在)。
- 图纸就是工作区里的普通文件,能进 git、能被别的工具读写;新建默认落在 <工作区>/docs/diagrams/。
- 编辑器自托管:首次使用时下载并校验官方资源包到 ~/.dsh(约 51 MB),之后完全离线。
- 改动自动保存;文件在编辑器之外被改过时会拒绝覆盖并让你选,不会静默吞掉别人的改动。
- 明暗跟随 DSH:设置里选浅色/深色/跟随系统,画布立刻跟着变,不重载编辑器(见下方「深色模式」)。
- 不给模型任何工具,这是给人用的编辑器。
安装
cd $env:USERPROFILE\.dsh
dsh plugin --profile desktop add "github:jaikensai888/dsh-drawio#v0.1.4"
然后完全退出并重启 DSH Desktop(关窗口不算),再在浏览器里 Ctrl+Shift+R。
卸载:
cd $env:USERPROFILE\.dsh
dsh plugin --profile desktop remove dsh-drawio
要求:DSH Desktop 2.0.4+、dsh-better-sidebar 0.17.1+;首次使用需要联网,之后离线可用。
想调图纸目录、编辑器地址等参数,写在 profile 的 cordis.patch.yml 里(键与默认值见 src/config.ts)。
升级 DSH Desktop 之后「画布」不见了?
升级 App 会换掉它内部的 @deepseek-ai/dsh-client-modules,而那个服务是用
require.resolve('<包名>/package.json') 去定位每个插件的客户端清单的。所以只要
package.json 的 exports 没有导出 "./package.json",客户端那一行会被静默丢弃: host 半照常在跑、/drawio/ping 也回 200,但左栏没有「画布」,.drawio 还会掉回代码预览器。
v0.1.4 已修掉这个坑(exports 补了 "./package.json",并加了回归测试)。一条命令就能分辨现状(端口就是 GUI 的端口,不需要凭据):
curl.exe -s http://127.0.0.1:<GUI 端口>/drawio/ping
| 返回 | 含义 | 怎么办 |
| 连不上 / 404 | host 半没挂上,插件已不在 profile 里 | 按上面「安装」重装一次 |
| "clientHalf":{"row":false,"bundle":null} | 客户端清单没被找到(就是这个坑) | 升级到 v0.1.4+:先 remove 再 add |
| "clientHalf":{"row":true,...} | 客户端半在页面里 | 刷新页面(Ctrl+Shift+R) |
clientHalf 是 v0.1.4 起 /drawio/ping 的一部分:以后任何一次升级只要「画布消失了」,先看这一个字段就知道是 host 行没了、清单没被认出来,还是只是页面没刷新。
使用
打开图纸 —— 在侧边栏文件树里点任意 .drawio,它就在编辑器标签页里打开:
在侧边栏里打开的 draw.io 画布
新建图纸 —— 三个入口任选:
1. 左栏底部、设置上方的「画布」按钮(侧栏收起时和设置一样只剩图标;一张图纸都没有的新工作区里,这是唯一入口);
2. 编辑器工具栏的「新建」;
3. 在编辑器里打开一个不存在的路径时,面板会问你要不要在该路径创建。
保存 —— 自动的。工具栏右侧显示 已同步 / 未保存 / 保存中… / 已保存 / 有冲突。
出现冲突条,说明文件被编辑器以外的东西改过;面板提供「放弃本地改动,读磁盘」和「用我的版本覆盖」,由你决定,插件不会替你选:
冲突条
面板太窄 —— draw.io 会自己收起形状/格式面板。把编辑器标签页拖到主会话区域,它会变成可移动、可缩放的悬浮窗口;拖回侧边栏即停靠。
深色模式 —— 默认跟着 DSH 走:设置 →「通用」里选 浅色 / 深色 / 跟随系统,编辑器打开时用当前那一种;之后在设置里一改,画布立即切换,不会重载 iframe,画布上还没保存的东西不会丢。
想固定一种,写在 profile 的 cordis.patch.yml 里:
- id: drawio
config:
darkMode: dark # follow(默认) | light | dark
- darkMode: dark / light → 钉死这一种,不再跟随 DSH。
- uiTheme: dark → drawio 自带的深色外壳主题;它本身就等于深色,所以会把 darkMode 一并钉成 dark,避免出现深色外壳 + 浅色画布这种半深色状态。
- 两者都改不动 editorUrl 指向的外部编辑器:那是别人家的页面,插件不下发任何参数。
许可 MIT。drawio 编辑器资源来自 jgraph/drawio(Apache-2.0),由本插件在运行时下载到本机,不在本仓库分发。
实现细节与踩坑记录见 docs/PLAN.md 和 docs/GROUND-TRUTH.md。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jaikensai888/dsh-drawio
在侧边栏直接编辑工作区里的 draw.io 图纸
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目