在 DSH 侧栏预览附件中的 PowerPoint 演示文稿,通过对话或手动操作编辑,共享撤销与重做历史,并下载编辑后的 PPTX。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-pptx-editor
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:yunfeizhu/dsh-pptx-editor
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
发送一个 .pptx
附件,在对话旁打开演示文稿,再说出想修改的内容。插件将 DSH 的 Agent 与完整的演示文稿编辑器连接起来:你可以在同一份文稿中交替使用对话和手动编辑,修改即时可见。
实际效果

使用合成演示文稿截取的真实 DSH 对话,标题修改直接显示在右侧编辑器中。
快速开始
需要 Node 24、已配置好的 DeepSeek Harness,以及较新版本的 Chrome 或 Edge。将预构建的 npm 包安装到 Web 配置中:
dsh plugin --profile web add dsh-pptx-editor@1.0.0
dsh web
- 在浏览器中打开 DSH 输出的登录链接。
- 新建对话,附加一个
.pptx文件(最大 50 MiB),并发送需求,例如“预览这个演示文稿”。 - 说出修改要求。文稿会在右侧栏打开,修改也会直接显示在那里。
- 需要下载编辑结果时,点击编辑器内的保存按钮。
插件使用 DSH 对话中选择的模型,无需额外配置模型密钥。如果 DSH Web 已经运行,请先保存打开的文稿,再重启服务以加载插件。不要同时加载 npm 安装包和源码补丁。
已验证宿主:DSH CLI 0.1.5-rc.1,公共插件包 0.1.5-rc.2,在本机 127.0.0.1
上运行。版本详情、本地安装包、更新与卸载方式见安装指南。
支持哪些操作
| 类别 | 可通过对话完成的操作 |
|---|---|
| 幻灯片 | 新增、复制、重排、隐藏、删除和切换页面 |
| 文字 | 改写内容;修改字体、字号、颜色、加粗、斜体和下划线 |
| 段落 | 水平与垂直对齐、间距、缩进、项目符号和编号列表 |
| 布局 | 移动、缩放、旋转、翻转、对齐和均匀分布元素 |
| 形状 | 插入基本形状,修改填充与轮廓,复制或删除元素 |
| 表格 | 插入表格,修改单元格内容与格式,调整行列尺寸和未合并表格结构 |
| 图表 | 插入柱形/条形、折线、饼图、环形、面积和雷达图;修改受支持的数据与样式 |
| 图片 | 插入上传的图片,裁剪或调整透明度、亮度和对比度 |
| 历史 | 撤销、重做,或通过对话重新打开演示文稿 |
你仍然可以直接操作原生编辑器。对话修改与手动操作使用同一份文稿和编辑历史;连续多条工具命令不会合并成一次原子撤销。使用
edit_pptx_batch:一次修改最多 100 个跨页现有元素,只占一步撤销。

原生编辑器中的表格、图表与幻灯片预览。截图使用合成内容,不代表所有 PowerPoint 文件都能完全一致地渲染。
试着这样说
先发送 PPTX 附件,然后每次提出一个要求:
| 目标 | 对话示例 |
|---|---|
| 改标题 | “把第一页标题改成‘季度复盘’。” |
| 新增页面 | “在最后新增一张空白幻灯片。” |
| 添加文字 | “在第三页添加文本框,内容为‘下一步计划’。” |
| 段落格式 | “将第三页标题文本框里的段落居中。” |
| 修改表格 | “把第二页表格里的 Q2 目标改成 35。” |
| 修改图表 | “把第二页图表 Growth 系列的 Q2 数值改成 35。” |
| 插入图片 | 上传图片后说:“把上传的图片插入第三页。” |
| 重新打开 | “重新打开右侧的 PPTX。” |
| 撤销 | “撤销刚才的修改。” |
支持最大 1 MiB 的 PNG、JPEG、WebP 和 GIF 图片附件。插入图片时使用同一对话中的附件。更多示例与操作限制见使用指南。
保存与恢复
自动保存只是当前浏览器中的本地恢复缓存(IndexedDB),不会自动写入或覆盖
.pptx文件。 编辑器显示“已保存到此电脑”时,指的是这份浏览器恢复副本。需要保留或分享文件,请点击保存下载 PPTX。
| 操作 | 保存到哪里 | 实际效果 |
|---|---|---|
| 编辑器内的保存 | 下载为 .pptx 文件 |
用于保留或分享编辑结果,不会覆盖上传的附件或本机原文件 |
| 编辑器内的自动保存 | 当前浏览器中的恢复副本 | 在同一对话重新打开同一来源的文件时,可按提示恢复 |
开启自动保存后,插件每两秒检查变化并记录恢复快照。恢复提示覆盖最近 24 小时的副本;副本依赖浏览器存储,不恢复撤销历史,清理浏览器数据会移除副本。如果最新快照尚未完成就刷新,仍可能丢失最后一次修改。需要长期保留或分享时,请下载 PPTX 文件。
关闭 PPTX 页签后,编辑器仍保留在内存中,供再次打开。用户主动关闭的页签不会在刷新后自行打开,需要时可通过对话恢复。完整行为见恢复与故障排查。
适用范围与限制
- 这是面向 DSH Web 的 PPTX 附件编辑插件。从已有附件开始,无需在右侧“开始”页再设置独立入口。
- 动画、切换效果、主题/母版、演讲者备注与批注尚未接入对话操作;部分原生界面功能没有可供插件使用的编辑接口。
- 复杂图表、合并表格结构、局部字符格式和部分图片效果仍有限制。不能保证任意导入文件无损往返,详情见能力矩阵。
- Agent 可以读取幻灯片文字、格式及受支持的表格/图表数据。这些内容会进入 DSH 对话,并可能发送给其配置的模型服务商,详见数据处理说明。
常见问题
为什么选好附件后没有打开?
需要先发送消息。插件根据 DSH 已接收的消息打开文稿,而非文件选择动作;建议每条消息只附加一个 PPTX。
“已保存”是不是覆盖了原文件?
不是。自动保存用于浏览器恢复,保存按钮用于下载 PPTX,两者都不会覆盖原附件或本机原文件。
还能用鼠标和键盘编辑吗?
可以。手动修改与 Agent 修改使用同一份打开的文稿,也可以使用编辑器原生的撤销、重做按钮。
界面语言怎么选择?
跟随 DSH 的英文或简体中文设置,其他语言回退为英文。插件没有单独的语言切换入口。
文档与反馈
反馈问题时请提供插件、DSH、浏览器版本和最小复现步骤,必要时使用不含敏感信息的示例文件。请勿在公开 Issue 中上传私人文稿或凭证。
本地开发
环境版本见 .node-version 和 package.json:
corepack enable
pnpm install --frozen-lockfile
pnpm check
pnpm dev
开发说明区分了单元测试、浏览器验证与真实 DSH 对话验证。提交 PR 前请阅读贡献指南。
致谢与协议
- 感谢 DeepSeek 团队(@deepseek-ai)开源 DeepSeek Harness,提供插件宿主与对话环境。
- 感谢 Christopher van Rooyen(@ChristopherVR)及 pptx-viewer 的贡献者,提供 PPTX 编辑与渲染引擎。
采用 Apache License 2.0。第三方许可信息见 THIRD_PARTY_NOTICES.md。
链接
同类插件
tt-a1i/archify#integrations/deepseek-harness★ 89901
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。
dream-num/dsh-univer-office★ 614
为 DeepSeek Harness 打造一个真正的办公环境。Univer Office 插件将电子表格、文档、幻灯片、画布、多维表格等汇聚到同一个运行时——数据互联、修改经过校验、变更按版本管理,并以隔离工作树支持多 Agent 协作。
ECNU/EduWork#dsh-knowledge-studio★ 246
基于工作区资料的 Studio,复用 DSH 模型与共享成果服务,制作报告、演示文稿、表格、思维导图、测验、闪卡及音视频。Office 生成需 Python 3.12+ 及相关依赖,并配置 DSH_OFFICE_PYTHON;媒体渲染需 Chromium;本地语音转写另需 whisper.cpp 和模型。
PerryLink/dsh-industry-research★ 214
面向 DeepSeek Harness 的确定性行业研究报告:公司与行业研究流程基于分阶段证据产出结构化、可核验的报告。
HuanLinOTO/dsh-plugin-mineru★ 48
向模型暴露 MineRU 文档解析工具。
PolinniZhong/dsh-knit★ 47
把会话工作区里已有的 Markdown 文档、源码、图片与视频列进 DSH 侧边栏,按与当前对话的相关性排序。默认的词法模式用最近几条消息在本地与标题、摘要、正文做带 IDF 加权的匹配(BM25)—— 不调用模型、没有网络出口,内容不出本机。列表来自工作区扫描,而不是「最近打开记录」,所以重启 DSH 或新开会话都不会变空。排序结果组织成主要 / 辅助 / 相关三层的阅读顺序,每一条都写明可核验的理由(命中了哪个字段、被哪一篇引用),点一行即可就地预览:Markdown 按渲染后的样子显示、相对路径图片真实渲染、源码走宿主自带的语法高亮、视频走 HTTP Range 流式播放。同一份 Context Pack 也作为 knit_docs 工具交给 agent。后续版本陆续补上读取证据与生命周期(归因在读那一刻冻结)、固定 / 排除(排除先于检索生效,且可恢复)、关系证据(引用 / 导入 / 测试,带行号)与增量索引(重启后复用)。v0.23 起还多一条可选的混合检索:默认关闭,只有你自己配好 Ollama 或 OpenAI 兼容的 embedding 服务才会生效。它生效时,发出去的是你这句查询原话加上每篇候选文件的标题与摘要 —— Markdown 的摘要取自正文首段(不超过 60 字),代码的摘要是它所在的工作区相对目录,图片 / 视频贡献的是文件名;完整正文与绝对路径都不发送,指向本机服务(loopback)时内容不出这台机器。v0.24 起还能做变更关联:用一条只读的 git status(固定 argv、不走 shell、子进程环境白名单),配合同一套引用 / 导入 / 测试 / 提及证据,指出这次改动大概率该一起看哪些文件 —— 默认关闭。语义检索的收益仍待真 provider 实测,因此不承诺召回提升。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。