dsh-slides
Turn a structured outline into a presentation for DeepSeek Harness (dsh): a self-contained HTML deck that presents offline with speaker notes and prints to PDF, plus optional editable .pptx export. Five committed themes.
安装
dsh plugin --profile web add github:literaf/dsh-slides
需要可复现安装时,可在仓库后追加 #commit 固定提交。
Turn a structured outline into a presentation for DeepSeek Harness (dsh): a self-contained HTML deck that presents offline with speaker notes and prints to PDF, plus optional editable .pptx export. Five committed themes.
该插件未提供要点说明,请参考仓库 README。
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/literaf/dsh-slides |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-17 |
| 收录日期 | 2026-09-19 |
| 分类 | 界面增强 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
dsh-slides
# Slides for DeepSeek Harness
English | [中文](README_CN.md)
[](https://www.npmjs.com/package/dsh-slides) [](https://github.com/literaf/dsh-slides/actions/workflows/ci.yml) [](https://github.com/topics/dsh-plugin) 
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
```sh
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 |
[图片: plain theme]
[图片: midnight theme]
[图片: slate theme]
[图片: sunrise theme]
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):
```yaml
- 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.fs` exposes text writes only, and a sandboxing backend fences exactly those. So the pptx write asks for the path through the sanctioned `writeText` first: the backend applies its real policy and refuses with `FS_SANDBOX_DENIED` before 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, because `resolve` is not one of the fenced operations.
- Images are yours to supply. A `data:` URI keeps the deck self-contained; an `https` URL 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-slides` for academic talks — compose beside it and drive `make_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
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。