对话式 Markdown 思维脑图工作台:逐步编辑完整文档,实时同步右侧可视化,并在工作目录中打开、管理和导出脑图。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-mindmap
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:guhanfei-ai/dsh-mindmap
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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 插件:把工作目录里的普通 Markdown 文件变成一颗实时脑图。聊天框是编辑它的助手——你聊一句、AI 改一步 .md、右侧悬浮面板实时跟着变。
项目状态:pre-1.0。当前功能集(见 CHANGELOG)已实现并有单元测试覆盖,但开发环境之外的跨版本兼容性尚未认证。
核心思想
- 打开一个 Markdown 文档,它就是一颗脑图;
- 聊天框不是主角,而是「旁边帮你编辑这颗脑图的助手」;
- 人聊一句、AI 改一步(改 markdown)、脑图实时跟着变;
- 脑图 = markdown,天然可 diff、可分享、可进 git。
功能
- 四个工具(
mindmap_create/mindmap_open/mindmap_get/mindmap_update)——会话工作目录里的普通.md文件;根节点标题 = 文件名,双向同步(renameRoot触发文件重命名,撞名报错不覆盖)。 - 零通道实时面板——面板直接消费会话快照里的
mindmap_*工具结果,AI 每改一步面板即渲染一次。 - 打开必达 + 加载态可恢复——AI create/open 结果落地,面板必展开(节点结构指纹驱动快照重算,不受宿主数组引用稳定性影响);点目录树
.md后的加载态有三条恢复路径:路径仅大小写不一致时自动匹配(大小写不敏感文件系统)、工具报错即时显示错误信息、约 30 秒无结果转超时提示——错误/超时态均带「重试」一键重发打开指令。 - 原生侧栏 Tab 或右侧悬浮面板——安装了
dsh-better-sidebar时,脑图注册为 Better Sidebar 内的原生单实例 Tab(dsh-mindmap:mindmap),工具栏只有一行(脑图列表、当前脑图、导出图片在同一行);头部「思维脑图」按钮打开或聚焦该 Tab。未安装时回退为独立的右侧悬浮面板——会话头部按钮开合,宽度可拖(280px ~ 80% 视口)并持久化,打开时聊天区向左让位(布局推挤,互不遮挡)。AI 创建、打开或查看脑图时自动展开或聚焦面板/Tab 并切换到目标文档,即使当前收起或重复打开同一文档也能接续跟随。模式切换完全可逆:Better Sidebar 运行中卸载后,独立面板与布局推挤 CSS 自动恢复。 - 常驻目录树 tab——工作目录结构懒加载树(插件自建只读路由);空白处/目录右键新建脑图;左键点
.md秒开 tab 并自动交给 AI 打开,随后直接对话继续编辑。独立面板模式标签为「目录」,侧栏模式标签为「脑图列表」。 - 单脑图模式——面板只有树/列表和「脑图」两个 tab,打开新脑图替换旧的那颗。
- 「所见即所编」焦点同步——可见脑图与 AI 工作文档不一致时,面板自动让 AI 打开它,聊天焦点始终跟随你的眼睛。
- MarkGrove 同款映射与连线——标题层级挂树、列表缩进(空项 = 占位节点)、代码块叶节点、段落升格为独立节点(019 块概念)、稳定结构 ID、节点间直角折线。
- 画布居中、缩放与平移——脑图打开后居中呈现(超出画布时可滚动、无边缘裁剪);画布右上角浮动缩放条(缩小 / 比例 / 放大 / 适配),打开时自动适配合适比例(小图保持 100%),25%–300% 逐级缩放且视图中心不跳变,AI 编辑后持续自动再适配,直到你手动缩放。点击任意节点即可聚焦:节点滚到画布左侧居中,视图放大到它和整棵子树完整可见(上限 100%)。画布还能拖着走:中键随处拖(含节点上)、空白处左键拖(Mac 触控板「点按并拖移」)、或 Space + 左键拖(必须从节点上起手时);无论内容是否溢出都可横纵双向拖动,内容跟手 1:1,空白处呈抓手光标,4px 阈值把拖与点分开——点空白仍取消选中、点节点仍聚焦,真拖不会误清选中圈。
- 子树折叠——有子节点的节点在连线起点上带一个小开关:折叠后隐藏整棵子树并提示隐藏了多少节点,超大脑图也能逐层看。折叠只是视图状态,不改 markdown 文件,导出图片仍是完整子树;切换文档自动全部展开。
- PNG 导出——面板右上角「导出图片」一键导出当前脑图。
- 安全——
mindmap_create/mindmap_update默认进入原生审批;可通过requireApproval: false为自动化场景明确关闭。客户端没有任何写文件通道,一切编辑都经 AI 工具。
内嵌 Better Sidebar 时,脑图列表采用宿主的 14px 正文字体。Markdown 文件显示紧凑的 M 徽标,文件夹与其他文件使用 14px 线框图标;其他格式文件仅展示,没有悬停反馈、打开、拖拽或右键菜单,文件夹仍可展开。标签、操作按钮和提示采用宿主的 12px 字体角色。独立模式保留原有外观;脑图节点的字体层级、缩放和图片导出保持不变。
内嵌 M 徽标采用透明底、粗体字母与细描边,字母和边框跟随文件名的主题文字颜色;浅色、深色及自定义皮肤切换时同步适配,不依赖品牌色与底色的对比。
环境要求
| 组件 | 基线 |
|---|---|
| Node.js | 20.11 及以上 |
| DeepSeek Harness | 实测于 0.1.1-rc.2 与 0.1.2-rc.1 |
安装
开发(link 安装,实时源码):
dsh plugin --profile web add link:/path/to/dsh-mindmap
发布 tag:
dsh plugin --profile <profile> add <pkg>#v<version>
工具
| 工具 | 说明 |
|---|---|
mindmap_create(name) |
在工作目录创建 <name>.md 并显示到面板(已存在则报错)。 |
mindmap_open(path) |
把已有 .md 作为脑图打开到面板。 |
mindmap_get(path) |
读取脑图文档的当前 Markdown 内容。 |
mindmap_update(path, content, renameRoot?) |
写入完整的新 Markdown;可选重命名根节点(重命名文件,撞名拒绝)。 |
开发
npm run build:client # 从 src/client 片段组装运行时 client.js
npm run verify # 重建 + 语法检查 + node --test
npm pack --dry-run # 检查将进入 npm 包的文件
浏览器端实现维护在 src/client/ 下,构建后仍输出 DeepSeek Harness 要求的单一 client.js 入口。请修改源码片段后运行 npm run build:client,不要直接手改生成入口。
License
MIT License,详见 LICENSE。
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 7488
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 7488
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
omdsh-dev/DSH-better-sidebar★ 3555
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
ccch1mneyyy/dsh-TUI★ 2994
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 2274
右下角常驻的小鲸鱼余额挂件:显示余额、今日已用、每轮对话消耗与随机台词,带音效与设置菜单。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1072
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。