Presentation skill and tools: one sentence or one document to an HTML slideshow plus editable PPTX, seven layouts (incl. quote and native PPTX tables), speaker notes (HTML S-key panel and native notes slides), five built-in themes, default theme/language config and bilingual support.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-ppt
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:STARDUSTLC666/dsh-ppt
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
0.5.0 update (2026-09-27)
Includes presenter previews, thumbnails and timer controls. Unsupported or rejected fullscreen requests now show an actionable message instead of silently failing.
Validation host: Harness 0.2.0-rc.1 built from official sources (commit 407e65c8) with Node 24.16.0 on 2026-09-28. All 70 plugin tests pass in an isolated environment; all 18 plugins mount together in one host registering 1 skills and 2 tools, with tool schemas and health-check contracts passing. No live ports or external services were exercised in this round.
One sentence or one document → a complete presentation: HTML web slideshow + PPTX export, 5 visual themes, slide transitions + bullet entrance animations, bilingual Chinese/English.
DeepSeek Harness (DSH) presentation skill + tool plugin: turns a sentence, a paragraph, or a Markdown document into a ready-to-present HTML slideshow and an editable PPTX. Pure Node, zero runtime dependencies, one codebase for Windows / macOS / Linux.
Capabilities
| Capability | Description |
|---|---|
ppt_create tool |
Markdown / structured slides → *.html + *.pptx + *.json |
ppt_themes tool |
Lists the 5 built-in themes and their best use cases; pass preview: true with outputDir to write a side-by-side gallery plus one SVG palette card per theme |
| 7 layouts | cover / section / bullets / statement / quote / table / closing |
| Speaker notes | <!-- note: ... --> comments or the notes field: press S in the HTML player; native PPTX notes slides (presenter view) |
| Motion | On by default: HTML slide-in transitions + staggered bullet entrances; native PPTX fade transitions + click-to-reveal bullets. motion: 'off' / --motion off for a fully static deck |
| Markdown extras | Tables (| ... |), blockquotes (>), and note comments are auto-detected into matching layouts |
dsh-ppt skill |
A complete six-step SOP registered into DSH |
| Standalone SKILL.md | Copy skills/dsh-ppt/ into Claude Code / Cursor / Gemini CLI / Codex for cross-harness use |
| Visual engine | Reuses the hyperframes visual style library; HTML and PPTX share the same theme source |
Example:
Turn this sentence into a deck: "AI support cuts first response time to 8 seconds", with a dark tech theme.
Turn
docs/quarterly-review.mdinto a bilingual presentation and export PPTX.
Compatibility
Installation
dsh plugin --profile web add dsh-ppt
After restart, the ppt_create / ppt_themes tools and the dsh-ppt skill are available. The plugin ships with an empty config and won't crash startup.
Uninstall
dsh plugin --profile web remove dsh-ppt
Then restart the web service. To clean up fully, also remove the plugin entry from your profile cordis.patch.yml if you overrode it.
Quick start
Inside DSH (recommended)
1. ppt_themes { preview: true, outputDir: "dist" } # themes + gallery
2. ppt_create {
title: "Fewer Meetings",
content: "# Problem\n- Too many meetings\n\n# Solution\n- Async decisions",
theme: "data",
lang: "en"
}
3. Open the returned HTML path in a browser; edit the PPTX in PowerPoint / WPS / Keynote
Any harness (standalone SKILL.md)
Copy skills/dsh-ppt/ to any Agent Skills directory, then:
node <skill-dir>/scripts/build-deck.mjs \
--title "Product Launch" \
--content deck.md \
--theme data \
--lang en \
--out dist/deck
Artifacts:
Existing artifacts are not overwritten by default: if any member of the trio already exists, the whole set receives a shared -1, -2, ... suffix. Replacement requires explicit overwrite: true (or --overwrite in the CLI).
| File | Purpose |
|---|---|
*.html |
Standalone slideshow: arrow keys, V presenter view (separate window with real current/next previews, thumbnail strip, notes, timer, progress, pause, font size, blank screen), S notes, G thumbnail overview, F fullscreen, P print, ? shortcuts, Esc close |
*.pptx |
Editable 16:9 presentation (hand-written OOXML, zip via node:zlib, no third-party deps) |
*.json |
Structured manifest (version, theme, language, slides) |
Built-in themes
| ID | Name | Mood | Best for |
|---|---|---|---|
data |
Data Drift (default) | Futuristic / immersive | AI, tech launches, research |
swiss |
Swiss Pulse | Precise / rational | Data, SaaS, developer tools |
velvet |
Velvet Standard | Premium / restrained | Executive decks, brand, investor pitches |
soft |
Soft Signal | Warm / human | Brand stories, training, personal talks |
bold |
Maximalist Type | Loud / kinetic | Product launches, events, big moments |
Themes are derived from dsh-hyperframes visual-styles.md. Full palettes: skills/dsh-ppt/references/themes.md. Run ppt_themes { preview: true, outputDir: "dist" } for a side-by-side gallery and SVG palette cards.
Markdown input rules
- The first
# headingbecomes the cover title; its first paragraph becomes the cover subtitle. - Each
## sectionbecomes one slide: lists producebulletsslides; empty sections producesectiondividers. - Plain text without headings: the first paragraph is the cover, then every 5 sentences become one slide.
- A single sentence automatically produces a complete 3-slide structure: cover → core idea → closing.
- Long tables paginate automatically with repeated headers and up to 8 data rows per page. Notes stay on the first page. Tables support 8 columns and 60 characters per cell; oversized input returns an actionable error. Short rows are padded consistently in all artifacts.
maxSlidescounts pages after expansion. Exceeding it fails before writing files; raise the limit (up to 120) or split the deck. Middle slides are never silently discarded.- For precise control, use structured
slides(cover | section | bullets | statement | quote | table | closing), withrowsfor tables andnotesfor speaker notes.
Configuration
No required configuration. Optional:
- id: dsh-ppt
config:
outputDir: E:\decks # optional; defaults to the session working directory
maxSlides: 40 # optional; default 60 (3–120)
defaultTheme: data # optional; used when ppt_create has no theme
defaultLang: en # optional; used when ppt_create has no lang (zh/en/bilingual)
The DSH_PPT_OUTPUT_DIR env var can also set the default output directory; the ppt_create outputDir/theme/lang arguments have the highest priority.
Output paths resolve against each tool call's exec.agent.session.header.cwd: omitted paths use the session directory, relative paths (including plugin configuration) resolve within it, and absolute paths keep their meaning. Direct calls without a session fall back to the process working directory; concurrent sessions never change process cwd. Tools check exec.signal before and after loading the engine, so cancelled calls do not proceed to generation. Rendering and writing are synchronous and finish the artifact trio once started.
Bilingual support
langargument:zh(default) /en/bilingualcontrols the player UI, page numbers, and closing defaults.- Content language is up to the author: for a bilingual deck, prefer "Chinese title + English subtitle" or generate two decks from the same outline.
- Plugin docs come in Chinese (README.md) and English (this file); CLI and skill error messages are in Chinese.
Engineering quality
- Pure Node, zero runtime dependencies: HTML template, OOXML, and zip are hand-written using only
node:fs/node:path/node:zlib. - The skill and tools share one engine (
skills/dsh-ppt/scripts/deck-core.mjs), so DSH and bare-skill output are identical. - Unit tests cover registration contracts, JSON Schema, theme resolution, Markdown parsing, artifact generation, PPTX part integrity, and the CLI.
- No
eval/child_process/ secrets; artifacts are only written to the user-specified local directory.
Development
pnpm install
pnpm run build # tsc → lib/
pnpm test # build + node --test (registration/config/engine/CLI)
pnpm run smoke:cli # bare CLI smoke test, generates .smoke-deck
Known limitations
- The PPTX uses a blank layout plus text boxes: text is editable in PowerPoint / WPS, but no smart master placeholders yet.
- A one-sentence input produces a minimal 3-slide structure; for richer decks, expand the content into a Markdown outline first.
bilingualonly localizes the player UI; it does not translate content.- Charts and images are not supported yet; speaker notes and HTML/PPTX motion are already supported.
License
MIT. Community plugin, not affiliated with DeepSeek; @deepseek-ai/* is an officially reserved namespace.
Related projects
- dsh-hyperframes — HTML video skills (source of this plugin's visual styles)
- dsh-remotion — React programmatic video skills
- dsh-email — Email toolset
Links
More in this category
tt-a1i/archify#integrations/deepseek-harness★ 75299
Generate validated, self-contained interactive architecture, workflow, sequence, data-flow, and lifecycle diagrams from repositories or system descriptions.
dream-num/dsh-univer-office★ 450
Give DeepSeek Harness a real office environment. Univer Office Plugin brings spreadsheets, docs, slides, canvases, relational tables, and more into one runtime — with connected data, validation, versioned changes, and isolated worktrees for multi-agent collaboration.
PerryLink/dsh-industry-research★ 194
Deterministic industry research reports for DeepSeek Harness — company and industry research flows produce structured, verifiable reports from staged evidence.
HuanLinOTO/dsh-plugin-mineru★ 47
Expose MineRU document parsing tools to the model.
kw78/dsh-office-tools★ 26
Workspace-safe Office tools for agents: create/read Word, create/read/update Excel, and create/read PowerPoint decks with PNG/JPG/GIF image placement.
PolinniZhong/dsh-knit★ 24
Lists the Markdown documents, images and video that already exist anywhere in the session workspace in the DSH sidebar, ranked by relevance to the current conversation: recent messages are matched locally against document title, summary and body with IDF weighting, with no model calls and no network. Because the list is scanned from the workspace instead of remembered, restarting DSH or starting a new session does not empty it. Images and video preview in place, with relative-path images resolved and video streamed over HTTP Range. A references bar under the preview header shows which documents cite the one being previewed and which it cites, with one click to jump between them. The same ranking is exposed to the agent as a knit_docs tool, which returns the most relevant documents along with the passage that matched in each, where one is found.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.