dsh-session-canvas
by jackyoung022
dsh插件,基于session的画布,可进行多session汇总
安装
dsh plugin --profile web add github:jackyoung022/dsh-session-canvasGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
一个面向 DSH Web 的多会话画布插件。它把分散在不同 session 中的内容放到同一张可视化画布上,方便浏览、组织、关联上下文,并直接在卡片内继续与模型对话。
可以做什么
- 聚合多 session:按 workspace 浏览会话库,并将需要关注的 session 添加到同一画布。
- 自由整理卡片:拖动、缩放和移除画布卡片;从会话库添加时,卡片默认出现在当前视口中央。
- 直接继续对话:在卡片输入框中向对应 session 发送消息并接收模型回复,无需离开画布。
- 关联会话上下文:连接两张卡片,将来源 session 的内容注入目标 session,便于跨会话继续分析。
- 创建汇总 session:选择多个 session,生成一个包含来源内容的新 session,并继续追问或整理结果。
- 创建空白 session:在当前 workspace 中快速创建新对话,继承 DSH 默认 agent preset、模型、工具与权限配置。
- 调用命令和 skills:输入
/查看当前会话可用的命令与 skills;使用↑、↓选择,Tab补全,Enter执行。 - 使用原生 skill 执行链路:skill 以 DSH 原生用户调用形式发送给模型,完整加载
SKILL.md,并使用与普通 DSH 会话一致的工具和权限。 - 兼容中文输入法:输入法组词期间按回车只确认候选字,不会误发送卡片消息。
- 删除 session:卡片中可以删除对应 session。当前实现调用 DSH 的归档能力,因此会话仍可从 DSH 的归档区恢复。
- 保存画布布局:每个 workspace 的卡片位置、尺寸和连线保存在浏览器
localStorage中。
典型工作流
- 从 DSH 侧边栏打开“会话画布”。
- 选择 workspace,从会话库添加已有 session,或创建一个空白 session。
- 拖动和缩放卡片,整理当前任务需要的会话。
- 在卡片内继续对话,或输入
/调用命令和 skill。 - 连接两张卡片,将一个 session 的内容作为上下文注入另一个 session。
- 多选相关 session,创建新的汇总 session。
安装
该项目是 DSH Web 插件,需要在已安装并可运行 DSH 的环境中使用。
从 Git 仓库安装:
dsh plugin --profile web add git+ssh://git@github.com/jackyoung022/dsh-session-canvas.git
然后重启 DSH Web,使 profile bundle patch 和浏览器端插件生效:
dsh web
如果你的 DSH 版本使用不同的插件管理命令,请将本仓库作为包安装到 Web profile,并确保 cordis.patch.yml 被加载。
使用说明
卡片操作
- 从会话库点击添加:把 session 卡片放到当前画面中央。
- 拖动卡片标题栏:移动卡片。
- 拖动卡片右下角:调整尺寸。
- 点击卡片关闭按钮:仅从画布移除,不影响原 session。
- 点击删除 session:确认后归档该 session,并从画布和会话库移除。
Slash 命令与 skills
在卡片输入框键入 / 后:
↑/↓:循环选择候选项。Tab:补全候选名称,之后可以继续输入任务描述。Enter:执行选中的 skill;命令补全后按Enter执行命令。- 也可以点击候选项直接选择或执行。
例如:
/last30days 研究最近 30 天大家如何评价 DSH
插件不会自行截断或拼接 skill 指令,而是通过 DSH 原生 skill 调用链路加载完整 skill,并让模型在目标 session 的 agent 上执行。
项目结构
.
├── cordis.patch.yml # 将插件加入 DSH Web profile
├── lib
│ ├── index.js # Host 端:session、对话、注入、命令和 skill API
│ └── client.js # Web 端:画布、卡片、连线和交互界面
├── test
│ └── skill-run.test.js # Skill 原生调用和 agent preset 回归测试
└── package.json
Host 端接口仅接受本机请求。浏览器端负责画布交互,Host 端通过 DSH 服务读取 session、恢复或创建 agent,并执行对话、命令及 skill。
本地开发与验证
npm test
node --check lib/index.js
node --check lib/client.js
npm pack --dry-run
提交代码前请确认不要加入 .env、访问令牌、SSH 私钥、证书、会话日志或其他个人数据。本仓库的 .gitignore 已覆盖常见敏感文件,但它不能替代人工检查。
后续计划
- 增加画布缩放、平移、小地图、自动布局和一键整理。
- 增加撤销/重做,以及布局版本历史。
- 支持画布布局导入、导出、模板和跨设备同步。
- 为连线增加方向、备注、注入范围、刷新策略和上下文长度控制。
- 支持流式响应、中止生成、重新生成和更完整的消息状态展示。
- 在卡片级选择模型、agent preset、权限配置和工具集合,并清晰展示当前权限来源。
- 支持附件、图片及其他多模态内容。
- 增加 session 搜索、筛选、标签、批量添加、批量归档和归档恢复入口。
- 优化大量卡片和长会话下的渲染性能,增加虚拟化与增量加载。
- 增加端到端测试、持续集成、兼容性矩阵和自动发布流程。
- 增加更细粒度的本地访问校验、请求防护和安全审计。
License
Apache-2.0
原始 README: https://github.com/jackyoung022/dsh-session-canvas/blob/main/README.md ↗
同类插件
查看全部 →
archify
Agent 技能:生成美观、可校验的架构图、工作流图、时序图、数据流图与生命周期图——自包含 HTML、带动画与清晰导出

dsh-turn-rewind
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。

dsh-plugin-cc
把 DeepSeek Harness 接入 Claude Code:评审、批评、委派与会话导入

dsh-interconnect
跨实例互联:经 interconnect 服务在多个 DSH 实例间转发消息与事件。

dsh-chat-import
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。

dsh-crew
DSH 插件:从 Claude Code / Codex 向 DSH agent 派活——原生 subagent 进度、宿主内 worker 会话(分级预设),以及为纯文本宿主补上视觉与图像生成的多模态桥