🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Kimi 演示文稿 OMSociety/dsh-ppt-maker

DeepSeek Harnessv1.0.0
OMSociety10 天前有提交已提供中文文档扫描:含敏感能力

DSH 插件:内含 ppt-maker 技能与十一个 ppt 工具。创建 / 编辑 / 逆向 / 质检 / 导出…

40.2/100
综合分
12
GitHub 星标
318
npm 周下载
—/5
用户评分

数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-ppt-maker
npm 源 · dsh-ppt-maker 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · tool
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-ppt-maker @ 1.0.0
✓Node 引擎要求 >=22.19.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/27 15:28:49

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 80 处,展示前 26 条)
  • 发起网络请求
    lib/client.js:68
    res = await fetch(`${PREFIX}${path}`, {
  • 发起网络请求
    lib/client.js:136
    const res = await fetch(`${PREFIX}/export`, {
  • 读取密钥环境变量
    lib/index.js:6478
    if (node_process.env.LOG_TOKENS)
  • 读取本地文件
    lib/index.js:14903
    entries = await readdir(root);
  • 读取本地文件
    lib/index.js:14919
    const raw = JSON.parse(await readFile(metaPath(dir), "utf8"));
  • 读取本地文件
    lib/index.js:14930
    const deck = await readFile(path2.join(dir, "deck.pptd"), "utf8");
  • 读取本地文件
    lib/index.js:14934
    pages.set(`pages/${rel.replace(/ /g, "/")}`, await readFile(path2.join(pagesRoot, rel), "utf8"));
  • 读取本地文件
    lib/index.js:14938
    media = JSON.parse(await readFile(mediaManifestPath(dir), "utf8"));
  • 写入本地文件
    lib/index.js:14946
    await writeFile(tmp, content, "utf8");
  • 写入本地文件
    lib/index.js:14947
    await rename(tmp, target);
  • 删除本地文件递归
    lib/index.js:14951
    await rm(tmp, { recursive: true, force: true });
  • 写入本地文件
    lib/index.js:14952
    await mkdir(path2.join(tmp, "pages"), { recursive: true });
  • 写入本地文件
    lib/index.js:14953
    await writeFile(path2.join(tmp, "deck.pptd"), state.deck, "utf8");
  • 写入本地文件
    lib/index.js:14956
    await mkdir(path2.dirname(target), { recursive: true });
  • 写入本地文件
    lib/index.js:14957
    await writeFile(target, text, "utf8");
  • 删除本地文件递归
    lib/index.js:14963
    await rm(dir, { recursive: true, force: true });
  • 删除本地文件递归
    lib/index.js:15001
    await rm(snapshot.dir, { recursive: true, force: true });
  • 删除本地文件递归
    lib/index.js:15014
    await rm(snapshot.dir, { recursive: true, force: true });
  • 读取本地文件
    lib/index.js:15028
    const buffer = await readFile(path2.join(root, rel));
  • 删除本地文件
    lib/index.js:15072
    if (!state.pages.has(rel)) await rm(path2.join(pagesRoot, existing), { force: true });
  • 删除本地文件
    lib/index.js:15233
    if (!live.has(rel)) await rm2(path3.join(pagesRoot, entry), { force: true });
  • 发起网络请求
    lib/index.js:19640
    const res = await fetch(src, { signal: AbortSignal.timeout(MEDIA_FETCH_TIMEOUT_MS) });
  • 读取本地文件
    plugin/host/state-store.mjs:31
    const raw = readFileSync(stateFile(), 'utf8')
  • 写入本地文件
    plugin/host/state-store.mjs:45
    mkdirSync(stateDir(), { recursive: true })
  • 写入本地文件
    plugin/host/state-store.mjs:47
    writeFileSync(tmp, JSON.stringify(state, null, 2), 'utf8')
  • 写入本地文件
    plugin/host/state-store.mjs:48
    renameSync(tmp, stateFile())
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-native-command@deepseek-ai/libreoffice-kit@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-sidebar-right@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-session@deepseek-ai/dsh-skill@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

2 张 · 点击查看大图

功能亮点

  • 创建与编辑PPT
  • 复刻PPT
  • 本地导出PPT

DSH 插件:内含 kimi-ppt 技能。创建 / 编辑 / 复刻 / 导出 PPT,DSH 内纯本地导出

README

由 DeepSeek 最新模型翻译生成
中文 · English PPT 创客 dsh-ppt-maker 创建 / 编辑 / 逆向 / 质检 / 导出 PPT 的 DeepSeek Harness 插件,本地纯 TS 引擎直出最终 .pptx。 模型用十一个 ppt_* 工具干活,你在右侧栏工作台里同看同改——双击文字就地编辑、拖拽调页序、导出后一键打开成品。 这是什么 • 核心特性 • 效果 • 安装方式 • 模型工具 • 工作台 • 开发 • 更新日志 • 支持与致谢 • 许可证与作者 这是什么 PPT 创客是一套长在 DeepSeek Harness 里的 PPT 工作链:模型通过十一个 ppt_ 工具创建、编辑、逆向、质检、导出演示文稿;人通过右侧栏工作台与模型接力——面板与模型读写同一份 PPTD 工程。 中间的格式是自主契约的 YAML DSL PPTD(deck.pptd + pages/.page):单页自包含、可视即所得,双方言(generate 生成 / reverse 逆向超集),完整规格见 docs/pptd-spec.md。 核心特性 | 特性 | 说明 | | 十一个模型工具 | raw JSON-Schema 注册:创建 / 编辑 / 撤销 / 重做 / 渲染 / 质检 / 导出 / 逆向 / 打开 / 外科手术。
展开完整文档(README 剩余 1 节)
中文 · English

PPT 创客 dsh-ppt-maker 创建 / 编辑 / 逆向 / 质检 / 导出 PPT 的 DeepSeek Harness 插件,本地纯 TS 引擎直出最终 .pptx。
模型用十一个 ppt_* 工具干活,你在右侧栏工作台里同看同改——双击文字就地编辑、拖拽调页序、导出后一键打开成品。

这是什么 • 核心特性 • 效果 • 安装方式 • 模型工具 • 工作台 • 开发 • 更新日志 • 支持与致谢 • 许可证与作者

这是什么

PPT 创客是一套长在 DeepSeek Harness 里的 PPT 工作链:模型通过十一个 ppt_ 工具创建、编辑、逆向、质检、导出演示文稿;人通过右侧栏工作台与模型接力——面板与模型读写同一份 PPTD 工程。

中间的格式是自主契约的 YAML DSL PPTD(deck.pptd + pages/.page):单页自包含、可视即所得,双方言(generate 生成 / reverse 逆向超集),完整规格见 docs/pptd-spec.md。

核心特性

| 特性 | 说明 |
| 十一个模型工具 | raw JSON-Schema 注册:创建 / 编辑 / 撤销 / 重做 / 渲染 / 质检 / 导出 / 逆向 / 打开 / 外科手术。引擎 @office-kit/pptx@0.24.0 本地纯 TS 构建最终 .pptx,主链无 Python |
| 双向性 | ppt_import 把既有 .pptx 全量逆向进 PPTD 工程(图表 / SmartArt / OLE 落灰底占位并回插);ppt_patch 对 .pptx 外科手术(改字 / 换图 / 调页序),不走 PPTD 往返,库级 L1 passthrough 保住未建模部件 |
| PPTD 契约 | YAML DSL(deck.pptd + pages/.page),单页自包含、可视即所得;generate / reverse 双方言,可手改也可机改 |
| 右侧栏工作台 | 自研三栏编辑器(缩略图 + 画布 + 属性面板):双击文字就地改、拖拽调页序、图片一键替换、撤销 / 重做、版本历史直渲快照并一键恢复、409 冲突保护与「外部已修改」提示 |
| 质检分层 | 规则层(文字溢出 / 出界 / 重叠 / 对比度 / 结构 / 缺字体)阻断导出;AI 层按需(ppt_check ai:true)把成品页 PNG 送多模态模型审配色与版式,只出建议不阻断;结果落账 manifest.qaReport,随 revision 可追溯 |
| 字体嵌入 | 导出自动嵌入实际用到的字体(EOT 封装 fntdata + embeddedFontLst),未装字体的机器渲染不回落;子集 / 整字体 / 关闭三档(export.fontEmbed),逐字体 fsType 许可闸 |
| 转场与动画 | 页面级转场(fade 默认 / none / auto 策展轮换)与 95 种元素动画 preset,本地链路原生写出 |
| 修订与快照 | manifest 单一写者 + append-only 快照(游标模型,undo/redo 天然成立)+ baseRevision 乐观锁(409) |
| 设计系统 | 学术 / 咨询 / 金融 / 促销 / 工作五族预设主题,选题后整套版式配色层级一致 |
| 本地渲染预览 | 面板画布与缩略图把 PPTD 页直接渲染成 DOM(矢量、秒出、与选择框同源同坐标系);导出与质检的 PNG 预览走 @deepseek-ai/libreoffice-kit 光栅化最终 pptx,每页按 (page, revision) 磁盘缓存 |

效果

工作台实机:左侧缩略图、中间画布、右侧属性面板;导出成功后页脚状态条给出「打开方式」菜单(系统关联应用 / 显示文件位置)还没有打开演示文稿时的空面板;模型 ppt_open / ppt_import 后面板自动聚焦到对应工程

安装方式

从 npm 安装

先停掉正在运行的 DSH(运行中的服务会锁住依赖,装完再起)
dsh plugin --profile <profile> add "dsh-ppt-maker"

提示:装好后刷新一下浏览器页面,从右侧栏打开「PPT 工作台」——只重启宿主不够,客户端产物是页面加载时取的。

依赖:主链全 TS、无 Python;ppt_render 与质检用的 @deepseek-ai/libreoffice-kit@0.1.2 是硬依赖(约 183MB/平台,随包安装)。skills/ppt-maker/scripts/ 下的 Python 脚本仅作逃生舱,见 SKILL.md「Python 逃生舱」。

装完怎么用

1. 对话里说「帮我做一份 PPT」(或显式 invoke ppt-maker 技能)→ 十一个 ppt_ 工具进场
2. 模型 ppt_create 新建工程,或 ppt_import 把现有 .pptx 逆向进工程 → 右侧栏自动弹出工作台
3. 面板里双击文字就地改、拖页序、点「导出 .pptx」→ 成品落在工程目录 export/(文件名带版本号)
4. 让模型 ppt_check 质检、ppt_render 逐页看 PNG;模型在别的会话改了同一工程,面板亮 409 冲突条,不覆盖你的手改
5. 页脚状态条点「打开」→ 用系统关联应用打开成品,或选「显示文件位置」

模型工具

| 工具 | 作用 | 关键参数 |
| ppt_create | 新建 PPTD 工程 | dir · title · size · designSystem · theme |
| ppt_themes | 列设计系统与主题(五族预设) | designSystem(可省) |
| ppt_edit | 原子编辑:ops 数组批量增删改页面与元素,baseRevision 乐观锁 | dir · ops · baseRevision |
| ppt_undo / ppt_redo | 撤销 / 重做(游标移动,合并窗内连续编辑算一步) | dir · steps(1–20,默认 1) |
| ppt_render | 渲染每页 PNG 预览(最终 pptx 光栅化) | dir · pages · dpi(默认 96) |
| ppt_check | 规则质检(默认)+ AI 视觉质检(只出建议不阻断) | dir · pages · ai |
| ppt_export | 导出 .pptx(规则 blocker 拦截,skipCheck 绕过) | dir · out · skipCheck |
| ppt_import | .pptx → PPTD 全量逆向(dropped / degraded 两级报告 + 占位形状回插) | source · targetDir · mode(full / surgical)· open |
| ppt_open | 让右侧栏工作台打开指定工程 | dir |
| ppt_patch | 对 .pptx 外科手术:set_text / replace_image / move_page | source · ops · out |

模型的标准动作顺序是 ppt_create(或 ppt_import)→ ppt_edit 迭代 → ppt_check → ppt_export;技能 ppt-maker(随插件注册)写明了设计系统选型与编辑纪律,模型需要时会自己读。轻改既有 .pptx(改字 / 换图 / 调页序)走 ppt_patch,不经 PPTD 往返。

提示:导出被规则 blocker 拦住时,按 ppt_check 返回的 issues 逐条修,或 skipCheck:true 强导(不推荐)。ppt_check ai:true 返回 ai.performed:false 加 PNG 路径清单时,说明当前路由模型不支持图像输入,主模型自行 read_image 复核即可。

工作台

右侧栏「PPT 工作台」是三栏编辑器:缩略图条 + 画布 + 属性面板。

- 底图即 DOM:画布与缩略图把 PPTD 页 AST 直接渲染成 DOM(client/components/PptdView.tsx),打开即出、无需等 libreoffice 冷启动;元素、选择框、就地编辑器同一坐标系,恒对齐。table / chart / icon / SmartArt 等暂不支持渲染的元素显示灰底占位。
- 左右栏可收缩:左栏页列表默认展开、可收起;右栏属性面板选中元素才展开。收起态只留边缘把手。
- 就地编辑:双击文字就地改 / 拖拽调页序 / 复制删除新增页 / 替换图片 / 「导出 .pptx」落到工程目录 export/ 下(文件名带版本号)。
- 版本历史:「历史」抽屉直渲任意快照的画布预览并一键恢复。
- 页脚状态条:「正在保存…」和操作反馈(导出落点、失败原因)常驻底栏,不挤压画布高度。
- 冲突保护:所有写入都带 baseRevision;模型在另一个会话里改了同一工程会回 409——面板只亮冲突条,不覆盖人的手改;「外部已修改」提示同理。
- 轮询与聚焦:每 3s 拉一次状态看 manifest.revision;模型 ppt_open / ppt_import 完成后,面板自动聚焦到对应工程。

开发

npm install # 安装依赖
npm test # 全量回归(先设 12GB 堆并串行跑,见下)
npm run typecheck # src/ 与 client/ 两份 tsconfig
npm run build # 重出 lib/index.js 与 lib/client.js(改完 src/ 或 client/ 必跑,并提交产物)
npm run check:build # 确认 lib/ 与 git 一致
npm run check:mounts # 挂载声明核对

提示:全量测试需大堆串行跑(默认堆会 OOM):先 $env:NODE_OPTIONS='--max-old-space-size=12288',再 npm test -- --no-file-parallelism。完整验收口径与禁止事项见 AGENTS.md。

目录与「改东西去哪」:

src/index.ts 宿主入口:注册技能 + 懒展开 11 个工具 + webServer 前缀路由 src/core/ 引擎:pptd 契约 / officekit 构建 / 工程存储与快照 / 逆向 / 质检 / 字体嵌入 src/tools/ 11 个工具的 raw JSON-Schema 契约 client/ 右侧栏工作台源码(TSX → esbuild 打成 lib/client.js) plugin/ 装载壳 + host 路由(纯 JS,经 deps.core 注入 core) skills/ppt-maker/ ppt-maker 技能:设计系统参考与生成纪律(模型自己会读) tests/ 宿主契约 / 工具 e2e / 逆向 / 字体 / bundle 守卫(语料 .pptx 不入库) docs/ PPTD 规格 / 决策登记 / 兜底字体表 lib/ 构建产物(入库;dsh plugin add 只装不构建)

更新日志

参见 CHANGELOG.md。

支持与致谢

- 如果这个插件对你有帮助,欢迎点亮 Star;有问题和建议请提交 Issue 或 Pull Request,开发约定见 AGENTS.md。
- 基于 DeepSeek Harness 插件 / 技能体系。
- 引擎 @office-kit/pptx(0.24.0 pin)与预览 @office-kit/pptx-preview;光栅化 @deepseek-ai/libreoffice-kit(MPL-2.0,仅调用其 API / CLI,不链改源码)。

许可证与作者

MIT。© 2026 OMSociety。
预览分享卡片长什么样 ↓OMSociety/dsh-ppt-maker
分享 · DeepSeek Harness Hub
OMSociety/dsh-ppt-maker

DSH 插件:内含 ppt-maker 技能与十一个 ppt 工具。创建 / 编辑 / 逆向 / 质检 / 导出…

回到顶部