DeepSeek Harness 插件

dsh-slide

A per-conversation visual slide editor for DeepSeek Harness with AI annotations, workspace files, and shared knowledge guidance.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
JeremyGuo/dsh-slide
最近更新
2026年8月17日
分类
文档与渲染
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/JeremyGuo/dsh-slide
插件名:dsh-slide
作者:JeremyGuo

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh-CN.md来源说明 · 只读预览
README 语言

dsh-slide

English | 简体中文

dsh-slide 是 DeepSeek Harness Web UI 的 Conversation 级可视化幻灯片编辑器。启用后,当前 Conversation 的默认聊天界面会切换为类似 PowerPoint 的画布,同时继续使用原有 Session、Workspace、模型配置和 AI 输入通道。

![dsh-slide 展示 AI 生成的幻灯片和 Annotation 审阅界面](docs/images/dsh-slide-cover.png)

功能

  • 可以为当前打开的 Conversation 单独开启或关闭 Slide Editor,不影响其他 Conversation。
  • 提供多页 16:9 画布、实时缩略图、对象与页面选择,以及自动 Workspace 持久化。
  • 人类只负责选择对象、页面或整份幻灯片并向 AI 下达指令,不提供文字编辑、对象移动、缩放、插入、删除或页面快捷键等直接编辑入口。
  • 可导出独立 HTML 演示文稿,支持键盘翻页、全屏和打印为 PDF;Workspace 图片会嵌入导出文件。
  • 每个 Annotation 由独立 subagent 处理。选中的内容用于提供任务焦点,但 subagent 始终拥有整份幻灯片的修改权限。
  • 每个 Annotation 都有独立消息线程,可以继续补充指令。
  • Annotation 会根据首次请求自动总结标题,并支持手动重命名;自定义标题不会被后续模型响应覆盖。
  • Subagent 执行期间,输入框位置会显示可见文本和工具调用状态,不展示隐藏 reasoning。
  • Annotation 支持折叠、标记解决、重新打开和删除。
  • 可拖动右侧面板左边缘调整宽度,宽度会保存在本地;也可以聚焦分隔条后使用方向键调整。
  • 顶部提供悬浮淡入的 File 菜单,可新建、加载、保存、另存、导出或关闭 deck;New、Load 和 Save As 使用 Workspace 文件选择器,不要求输入路径。
  • Workspace 文件浏览器支持单击打开、文本与图片预览、拖拽上传、新建文件夹、重命名和删除。
  • 图片元素支持 Workspace 文件、data URL 和 HTTPS URL,并可选择 contain、cover 或 fill 适配方式。
  • 使用标准 SVG path data 渲染任意多边形、贝塞尔曲线和椭圆圆弧。
  • 可在设置或编辑器内维护共享初始化 Prompt 和 Workspace 知识文件列表。
  • 文件接口绑定当前 Session 的真实 cwd,并拒绝路径穿越和符号链接逃逸。

AI 选区操作

框选或点击一个或多个对象后,可以让 Annotation agent 聚焦这些内容。选区只表示任务关注范围,不限制 agent 的权限;如果完成请求需要调整其他页面或对象,agent 仍然可以修改整份幻灯片。

![选中幻灯片对象后准备向 AI 提交修改请求](docs/images/dsh-slide-selection.png)

安装

安装 npm 已发布版本:

dsh plugin --profile web add dsh-slide@dsh-plugin
dsh web

或者从当前源码构建:

pnpm install
pnpm run build
dsh plugin --profile web add /absolute/path/to/dsh-slide
dsh web

切换当前 Conversation 模式

Slide Editor 的开关只作用于当前打开的 Conversation,并不会全局替换所有聊天界面。

1. 打开希望用于制作幻灯片的 Conversation。 2. 点击左下角的 设置。 3. 进入 幻灯片编辑器。 4. 在 当前 Conversation 卡片中,开启标记为 开启幻灯片编辑模式 的开关。 5. 返回 Conversation。默认聊天界面会切换为 Slide Editor,同时保留该 Conversation 原有的 Session、Workspace 和模型配置。

需要切回普通聊天界面时,保持该 Conversation 为当前会话,再进入同一设置页面关闭开关即可。每个 Conversation 的模式独立保存,切换一个 Conversation 不会影响其他 Conversation。

数据存储

每个 Conversation 默认使用以下文件:

.dsh-slide/<session-id>.slides.json

默认路径包含 Session ID,因此同一个 Workspace 下的不同 Session 默认不会共用文件。如果用户或工具主动让多个 Session 关联同一个既有 *.slides.json 文件,它们就会共享该文件,并且并发保存可能互相覆盖。

通过顶部悬浮的 File 菜单管理当前 deck。NewSave As 会打开 Workspace 目录选择器,并自动生成易读且不冲突的 *.slides.json 文件名,无需输入路径;Load 使用同一个选择器打开既有 deck,Save 立即写入,Close 会先保存再让当前 Conversation 返回普通聊天界面。在 Files 面板中打开 deck 与 Load 具有相同的关联行为。文档保存幻灯片模型和 Annotation 审阅状态;全局设置保存已启用的 Session ID、共享 Prompt、知识文件路径和每个 Session 的文档路径。

主 Conversation 工具

顶层 Conversation 会获得 open_slide_deck 工具。它用于打开当前 Workspace 中已经存在的 *.slides.json 文件,并把当前 Conversation 切换到 Slide Editor 模式。文件必须已经存在并通过文档校验;agent 可以先通过文件系统工具创建文件,再调用 open_slide_deck 打开。

Subagent 不允许使用 open_slide_deck。带有 parentSessionorigin: "subagent" 的 Session 调用时会被拒绝。关闭 Slide Editor 只会禁用当前 Session 的幻灯片模式,并保留上次关联的文档路径。

AI Annotation 流程

每个 Annotation 都拥有独立消息线程和一个关注范围:选中对象、选中页面或整份幻灯片。每一轮请求都会在当前 Conversation 下启动一个前台 one-shot spawn subagent,并向它提供 Annotation 历史、关注内容、完整 deck JSON、共享指导信息和知识文件路径。选区只用于指导任务,不构成权限限制;每个 Annotation 都可以修改任意对象或页面,也可以新增页面。

服务端通过 NDJSON 实时发送可见文本增量和工具调用开始、结束事件,同时过滤 reasoning 增量。Subagent 最终返回严格 JSON,其中包含简短结果说明和幻灯片操作;浏览器验证操作后立即应用,并同步更新主画布与缩略图。One-shot subagent 不会唤醒父 Conversation,不同 Annotation 可以独立推进。

图片和几何图形语法

图片是带位置和尺寸的元素。Workspace 文件使用 workspace:<相对路径>,也可以使用 data URL 或 HTTPS URL:

所有元素坐标和视觉长度,包括 xywidthheightfontSizeradius,都使用固定的 1280 × 720 幻灯片设计坐标。编辑器显示不同大小的页面或缩略图时,会将它们整体同比缩放。

{
  "kind": "image",
  "x": 80,
  "y": 120,
  "width": 500,
  "height": 320,
  "src": "workspace:images/photo.png",
  "fit": "cover",
  "alt": "产品图片"
}

任意多边形和曲线统一使用 geometry 元素以及标准 SVG path data。Path 使用局部 viewBox 坐标,渲染时缩放到元素的外层矩形:

{
  "kind": "geometry",
  "x": 600,
  "y": 180,
  "width": 400,
  "height": 240,
  "viewBoxWidth": 100,
  "viewBoxHeight": 100,
  "path": "M 5 90 L 50 5 L 95 90 Z",
  "fill": "#dbeafe",
  "stroke": "#2563eb",
  "strokeWidth": 2
}

多边形使用 M/L/H/V/Z,三次贝塞尔曲线使用 C/S,二次贝塞尔曲线使用 Q/T,椭圆圆弧使用 A。开放曲线通常设置 "fill":"none"

每次 Annotation 请求都会附加一份操作协议,因此 subagent 可以知道这些语法。协议包含 add-imageadd-geometryupdate-element 的 JSON 示例、SVG 命令说明、当前完整 deck JSON、选区焦点、Annotation 历史、共享 Prompt 和知识文件路径。模型返回的操作必须先经过解码和校验,验证通过后才会应用到幻灯片。

架构

  • Host 入口:设置命名空间、Workspace API、Annotation 流、文件路由和 open_slide_deck 工具。
  • Browser 入口:一个设置区块,以及仅在当前 Session 开启时以优先级 -100 注册的 conversation 插槽。
  • Browser bundle:通过 window.__ModuleLoader__ 延迟加载的 CommonJS factory,安装插件不需要重新构建 DSH 前端。

当前限制

  • 原生可编辑格式是 *.slides.json;支持导出 HTML,但暂不支持导出可继续编辑的 PPTX。
  • 文件 API 当前限制单次 JSON 上传不超过 32 MB。
  • Subagent 响应协议支持文字、矩形、图片、SVG path 几何图形、页面修改和新增页面;暂不支持图片生成或任意文档结构重写。
  • 暂不支持富文本、图表、表格、参考线和多人协作光标。