dsh-slides
DiscoveredSlides for DeepSeek Harness: the agent writes a talk to one self-contained HTML file — presents fullscreen offline, speaker notes stay off the screen, prints to PDF. Five finished themes.
dsh-slides
Slides for DeepSeek Harness
English | 中文
Give the agent a make_slides tool and it writes a talk to one self-contained HTML file — opens in any browser, presents fullscreen, keeps your speaker notes off the screen, and prints to PDF with Ctrl+P. Ask for formats: ["html", "pptx"] and it writes an editable PowerPoint file alongside it, speaker notes included.
The file loads nothing at presentation time. No CDN, no webfont, no image host. A deck that needs the network is a deck that can fail in the room you are presenting in.

Install
dsh plugin --profile web add dsh-slides
dsh web
Then just ask: "turn these results into a 10-minute talk".
What the agent gets
One tool, make_slides, taking a deck as structured data rather than markdown the user has to convert:
| Layout | Holds |
|---|---|
title | Deck title, subtitle, presenter. Generated for you from the deck fields — do not write one |
section | A divider between parts of the talk |
bullets | A claim as the heading, points beneath it, optionally a figure alongside |
image | A figure with a caption, filling the slide |
quote | A pulled quote with an attribution |
Omit layout and it is inferred from the fields you filled in.
Every slide takes notes — the speaker notes. They never appear on the slide; the presenter reveals them with S during the talk. This is the point of the tool: the claim goes on the slide, the talking goes in the notes, and the agent is told so in its guidance.
Bullets support **bold**, *italic* and `code`. Everything is escaped before formatting is applied, so content can never inject markup into the deck.
Formats
formats defaults to ["html"]. Add "pptx" when the deck has to be edited by a co-author or uploaded to a conference system:
| HTML | PPTX | |
|---|---|---|
| Presents offline | Yes, nothing is fetched | Yes |
| Speaker notes | S during the talk | In PowerPoint's notes pane |
| Prints to PDF | Ctrl+P, one slide per page | Through PowerPoint |
| Editable by a co-author | Not really | Yes |
| Images | Embed as data: URIs to stay self-contained | data: URIs are embedded; URLs stay links |
Both come from the same deck and the same inline-markup parse, so they cannot drift apart.
Presenting
| Key | |
|---|---|
→ ← Space | Next / previous slide |
S | Show and hide speaker notes |
F | Fullscreen |
Home End | First / last slide |
Ctrl+P | Print — one slide per page, chrome hidden, straight to PDF |
Clicking works too: the left third goes back, the rest goes forward. The URL carries the slide number, so a link can point at a specific slide.
Themes
Five finished looks rather than a knob per property. Pick one; do not assemble one.
| Theme | |
|---|---|
plain | White ground, sans-serif, thin accent rules. The default; disappears behind the content |
ink | Warm paper ground with a serif face. Reads like a printed paper; suits a seminar or a defense |
midnight | Deep blue ground, light type. Holds up in a bright room where a white deck washes out |
slate | Neutral greys, no colour accent. For decks whose figures carry all the colour |
sunrise | Off-white ground with a warm accent. A lighter register for a talk meant to persuade |

Font stacks name system faces only, for the same reason the deck loads nothing else.
Configuration
The bundle inserts one row (id: slides). Override it from your profile's cordis.patch.yml (a patch replaces the whole config, so restate every key you keep):
- id: slides
config:
outputDir: slides/ # where decks are written, relative to the workspace
defaultTheme: plain # plain | ink | midnight | slate | sunrise
promptGuidance: true # register the deck-writing guidance
promptOrder: 150
Notes
- Decks are written through
ctx.fs, so a sandboxing filesystem backend fences the write like any other tool. The tool is therefore registered only where a filesystem provider is composed — with none, neither the tool nor its guidance appears, instead of offering a call that always fails. ctx.fsexposes text writes only, and a sandboxing backend fences exactly those. So the pptx write asks for the path through the sanctionedwriteTextfirst: the backend applies its real policy and refuses withFS_SANDBOX_DENIEDbefore any bytes exist, and only a path it allowed is then filled in. Resolving a path and writing to it directly would go around the fence, becauseresolveis not one of the fenced operations.- Images are yours to supply. A
data:URI keeps the deck self-contained; anhttpsURL works but makes the deck depend on that host at presentation time. - This package renders decks and knows nothing about where the content came from. Packages that do —
dsh-paper-slidesfor academic talks — compose beside it and drivemake_slides.
Known limitations
- No incremental reveal. A slide appears whole. Builds and transitions are the kind of thing that reads as generated when an agent picks them.
- The pptx is a clean deck, not a designed one. It carries your content, theme colours, fonts, bullets and notes into PowerPoint; it does not reproduce the HTML deck pixel for pixel, and it uses no master slides or animations.
License
MIT
Comments
Loading…
Similar plugins
by STARDUSTLC666
DSH 演示文稿技能 + 工具插件:一句话 / 一篇 Markdown → HTML 网页放映 + 可编辑 PPTX;5 套视觉主题、页间转场 + 要点入场动画(motion 可关)、金句/表格/演讲者备注,薄 SKILL.md + references 按需装载,零运行时依赖跨 harness。· Presentation skill & tools for DeepSeek Harness a
★ 21
MIT
JavaScript
Oct 27, 2026
dsh plugin --profile web add dsh-pptby literaf
Paper → academic talk for DeepSeek Harness: reads the real full text, budgets the slot per venue (组会汇报/会议报告/答辩/开题/文献汇报), builds the deck around the figures and writes the speaker notes as the script.
★ 1
MIT
TypeScript
Aug 17, 2026
dsh plugin --profile web add dsh-paper-slidesby mostkia
HTML session UI for DeepSeek Harness: any HTML/CSS/JS rendered in a sandboxed iframe, in five placements, talking back to the model over POST + SSE
★ 0
MIT
JavaScript
Oct 26, 2026
dsh plugin --profile web add @mostkia/dsh-htmluiby mikulo
DeepSeek Harness (DSH) plugin: pick a local .md prompt template with / when starting a new conversation; it binds the whole conversation with AGENTS.md-level authority.
★ 1
MIT
JavaScript
Sep 30, 2026
dsh plugin --profile web add @mikulo/dsh-prompt-switcherby GongYuanCaiJi
DeepSeek Harness 插件:零依赖的 HTML 幻灯片技能包——动画丰富的演示文稿与 PPT 转换(移植自 frontend-slides)
★ 0
MIT
JavaScript
Aug 15, 2026
dsh plugin --profile web add dsh-frontend-slidesby drscrewdriver
给 DeepSeek Harness 侧边栏加一个会话内容检索——标题/内容一键切换,还能按用户/回复/工具筛选
★ 7
↓ 335/wk
MIT
TypeScript
Oct 27, 2026
dsh plugin --profile web add dsh-session-search-toggle