dsh-ppt-studio
DSH plugin that turns Markdown (or agent-read attachments) into a self-contained HTML slideshow, an editable .pptx, and a JSON manifest. Web Settings pick a built-in theme, default language, and an optional company .pptx master.
Not affiliated with DeepSeek.
Do not install alongside the community dsh-ppt plugin. Both register tools named ppt_create and ppt_themes; only one can be active in a profile.
Install
From this repo (Web profile):
dsh plugin --profile web add ./
From GitHub (replace with the published clone URL):
dsh plugin --profile web add github:<owner>/dsh-ppt
Node ≥22. Peer @deepseek-ai/* packages come from the Harness; npm install in this tree is only for local npm test / npm run smoke.
Settings
Open the Web Settings panel (bottom-left). PPT Studio is a settings.section page:
- Theme —
data/swiss/velvet/soft/bold(HTML look; PPTX uses the same palette unless a master is set) - Language —
zh/enfor player chrome - Save defaults — writes Host sidecar
$DSH_HOME/ppt-studio/config.json(or~/.dsh/ppt-studio) - Master PPTX —
.pptxfile → base64 →uploadMaster; Clear master removes it - Master colors — swatches from extracted theme XML, or a message when none
The card shows Pending while a remote call is in flight and error text on failure. It never treats local dropdown state as a durable save.
If you see Host remote dshPptStudio is not mounted, the browser half cannot reach Host methods. Tools still work in the agent; Settings cannot persist until the remote is on the Typert wire (see Limitations).
Tools
| Tool | Role |
|---|---|
ppt_create |
Build HTML + PPTX + JSON from title + Markdown content or structured slides. Optional theme, lang, outputDir, fileName, useMaster. |
ppt_themes |
List built-in themes. |
ppt_templates |
Report default theme and master status. |
Skill dsh-ppt-studio tells the agent to read attachments with existing file tools, then call ppt_create. Tool args override Settings defaults.
Verify
Local repo checks (no Harness required):
npm test
npm run smoke
npm run smoke writes .smoke-deck/Smoke.html (and .pptx / .json) from smoke/sample.md.
With DeepSeek Harness installed, from this repo root:
dsh plugin --profile web add ./
dsh --profile web --dump-config
# confirm a bundle layer for dsh-ppt-studio
dsh --profile web # optional: boot Web UI
Settings vs Typert (v0.1 gap): Host tools (ppt_create, ppt_themes, ppt_templates) and the
dsh-ppt-studio skill work without a Typert remote. Settings persistence (theme, language, master
upload) needs ctx.remote.dshPptStudio on the Typert wire; until that is mounted, the card shows
Host remote dshPptStudio is not mounted and cannot save defaults — see Limitations.
Limitations
- A custom master contributes approximate theme colors to HTML. PPTX generation appends text-box slides into the master zip; it does not map placeholders, charts, animations, or speaker notes.
- Invalid masters are rejected (not a zip / missing
[Content_Types].xmlorppt/presentation.xml). Missing theme XML still fills the PPTX and flags HTML fallback. - Host remote vs Typert: Host registers
dshPptStudiowithctx.remotes.register(name, methods)when that API exists. Live Web remotes are Typert contributions (ctx.typert.remotes.register/ctx.remote.$mount) that need generated codecs. There is no minimal plain-methods path in the installed packages, so Settings may show the unmounted-remote error even though Host tools work.ctx.remote.dshPptStudiois what the client calls; it does not fake success. - No Slidev, no charts, no auto-translation.
License
MIT. See LICENSE.
No comments yet. Be the first to write one.