The core idea of DeepSeek Harness is “Everything Is a Plugin”. When building automated workflows, agents often need to handle presentation files. Conventional solutions either rely on locally installed PowerPoint or LibreOffice, or depend on external conversion services. dsh-plugin-web-ppt is a pure JS implementation that directly reads and exports PPT files in the Harness environment, without internet access or Office installation.
Core Tools¶
The plugin provides three tools, corresponding to reading, rendering, and exporting:
ppt_read: Returns titles, body text, and speaker notes page by page. It is the entry point for an Agent to understand a PPT.ppt_render_svg: Exports each page as a self-contained SVG (images inlined as data URIs).ppt_export_html: Exports the whole presentation as printable HTML; using the browser’s “Print to PDF” function yields a PDF file.
All file read/write operations go through Harness’s fs service, so workspace ownership, sandbox policies, and write approvals behave consistently with regular Harness behavior.
Installation and Activation¶
Run the following command in a terminal to install it:
dsh plugin --profile <你的 profile> add dsh-plugin-web-ppt
After installation, run dsh --profile <name> --dump-config. The configuration output will include a # == dsh-plugin-web-ppt node, indicating that the plugin is active.
Configuration¶
The plugin supports override configuration through the profile’s cordis.patch.yml. Note that the patch replaces the entire config, so all key-value pairs must be specified.
- id: web-ppt
name: dsh-plugin-web-ppt
config:
maxFileBytes: 134217728
maxTextChars: 40000
includeHidden: false
| Configuration Key | Default Value | Description |
|---|---|---|
maxFileBytes |
67108864 (64 MB) | Maximum size for reading a single file; exceeding it causes immediate failure |
maxTextChars |
20000 | Text budget for ppt_read; excess is truncated and marked as truncated |
includeHidden |
false | Whether hidden slides are included by default |
Boundaries and Limitations¶
The plugin operates in read-only mode and does not support writing or editing PPT files.
| Capability | Limitation |
|---|---|
| File formats | Supports .pptx (Zip+OOXML) and .ppt (CFB+Escher) |
| Export formats | Does not support PNG export (Node environment has no canvas) |
| Encrypted files | Not supported by default; a password must be passed at invocation |
| Animations | Does not support playing animations; only final states or click-based step expansion can be exported |
| SVG compatibility | Exported SVG uses native <text> rather than foreignObject to ensure compatibility with design tools |
| File size | Single-file read limit is 64 MB |
Typical Usage¶
The pages parameter is always a 1-based selection string, for example 1-3,7 means pages 1, 2, 3, and 7. Omitting this parameter means all pages.
1. Reading PPT contents
Read the title, body, and notes of specified pages:
ppt_read path/to/presentation.pptx pages=1-5 password=yourpass
2. Exporting SVG
Render each PPT page as SVG and save to the specified directory:
ppt_render_svg path/to/presentation.pptx out_dir=slides pages=1-3
3. Exporting printable HTML
Generate a printable HTML file containing all animation steps:
ppt_export_html path/to/presentation.pptx out_file=print.html animation_steps=true
Summary¶
dsh-plugin-web-ppt provides native PPT processing capability for DeepSeek Harness. It does not depend on external conversion services, does not require local Office software, and all operations are governed by Harness’s permission system. For scenarios where presentation handling is needed in Agent workflows, this is a direct solution.
- Plugin homepage: https://github.com/unStone/dsh-plugin-web-ppt
- Ecosystem directory: https://www.skillhub.cn/plugins/unStone/dsh-plugin-web-ppt