插件目录 / Automation / pptfast
pptfast
已验证 · 实测可装 liustack
功能简介
稳定可编辑PPTX生成:语义IR进,DrawingML出
可用 — 实测通过,早期项目
稳定可编辑PPTX生成:语义IR进,DrawingML出 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README

pptfast
Make your deck in minutes, not hours.
🥇 The FIRST deck-generation plugin for DeepSeek Harness (dsh) 🥇
简体中文 · Install (hand it to your AI) · Commands · IR · Themes · Agent skill · ModLens (vision)
Talk to us
Issues are welcome any time. Open one, or follow @liustack on X. Share what you made with pptfast, which harness you use, and what the next release should solve. New releases land there first.
Highlights
⚡ Tell your AI what to cover, get the deck. You bring the content, the engine handles layout, color, type size, and spacing. The same content renders the same deck every time, so there is nothing to redo and no luck involved.
✏️ A real deck, not a picture of one. Every heading, bullet, and chart bar opens in PowerPoint for you to retype and restyle. Chart and table figures are the exception: to change the numbers, have your AI rebuild that page. 17 ready-made styles, and you can pull the colors and fonts out of a deck your company already uses.
🔌 Installs into the agent you already use. One command puts pptfast into DeepSeek Harness, Claude Code, or any agent that reads a skill folder (Codex and friends), and it knows how to build a deck the moment it lands.
🔁 Revisions without describing everything again. One command opens a preview page in your browser: page through it, write your notes right on the slides, and your AI picks them up and fixes them. The page refreshes itself as each revision lands.
🔒 No account, no API key, no network. Install it and it works. Node 22.19+ or Bun is all you need on the machine.
Install
Step 1, hand it to your AI. Send it this line:
Install the pptfast deck skill following https://raw.githubusercontent.com/liustack/pptfast/main/INSTALL.md, then run the health check and tell me the result.
There is no step 2. Your AI puts the skill folder where your harness reads it, and the skill brings its own version-pinned launcher, so there is no CLI to install by hand. pptfast renders entirely locally: no API key, no account, nothing to configure. The only prerequisite is Node 22.19+ (or Bun).
On DeepSeek Harness, it is one command instead. pptfast is a native DSH plugin there, not a skill folder:
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/[email protected]
Name the version. Without it, the install quietly lands on an older release and you miss the newest features. npm view @liustack/pptfast version prints the current one. The plugin card shows up as "pptfast", registers the deck-generation skill, and carries the CLI inside its own package. Uninstalling removes the skill with no residue.
Quick start
An IR is one JSON file describing the whole deck. Write a minimal one, then run the validate → render → preview loop:
cat > deck.json <<'EOF'
{
"filename": "hello.pptx",
"theme": { "id": "consulting" },
"slides": [
{ "type": "cover", "heading": "Hello pptfast", "subheading": "A first deck in ten minutes" },
{ "type": "content", "heading": "Why it works", "components": [
{ "type": "bullets", "items": ["Semantic IR in", "Native DrawingML out", "Every shape stays editable"] } ] },
{ "type": "ending", "heading": "Thanks" }
]
}
EOF
pptfast validate deck.json # → OK — 3 slides, theme "consulting"
pptfast render deck.json -o out/hello.pptx # → wrote out/hello.pptx (3 slides, ~24 KB)
pptfast render deck.json -o out/tech.pptx --theme tech # same deck, different theme
pptfast preview deck.json -o out/svgs # SVG per slide, for a visual self-check
One shape rule: cover/chapter/ending slides are heading + subheading only, components live on content slides. validate says exactly this if you mix them up.
No install at all also works: npx -y @liustack/pptfast validate deck.json. In a source checkout, node dist/cli.js replaces pptfast, and examples/ has ready-made IR files to try.
The commands you will reach for most:
| Command | Does |
|---|---|
validate <target> |
Check the IR, with page numbers on every error |
render <target> -o <out.pptx> [--theme <id>] |
Render a .pptx |
preview <target> -o <dir> [--html] |
One SVG per slide, plus a self-contained review page |
serve <target> |
Live preview that reloads on every change, with reviewer annotations |
audit <target> |
Geometry review: overflow, out-of-bounds, low contrast, overlap |
themes |
List the 17 built-in themes |
doctor |
Check the install: runtime, skill copies, optional capabilities, self-test render |
Full reference: docs/cli.md.
Documentation
| Doc | Read it when |
|---|---|
| Install guide | Handing installation to an agent or checking prerequisites |
| Agent skill | Learning the workflow pptfast teaches an agent |
| CLI manual | Looking up commands, flags, audits, previews, and health checks |
| IR reference | Writing a deck, slide, component, or narrative in JSON |
| Themes | Picking a built-in theme or extracting your own brand |
| Core concepts | Understanding themes, layouts, components, narratives, and capacity |
| Architecture | Working on the render chain or adding a theme, layout, or component |
| Deck projects | Building a multi-file deck with locked specs, assets, and live review |
| Layout selection and seed | Explaining why a layout was picked or keeping revisions stable |
| Contrast system | Debugging text color, painted backgrounds, or contrast findings |
| Designing themes | Drawing a theme redesign that can actually compile to PPTX |
| Testing | Running the right gate, inspecting snapshots, or changing exported XML |
| Internal API | Understanding why the JavaScript internals carry no semver promise |
| Release guide | Preparing and publishing an npm release |
| CHANGELOG | Finding what changed in a version |
Credits
Icon primitives are extracted from lucide (ISC License). pptfast itself was extracted from a production AI-deck-generation system and CJK-typography-tuned (full-width punctuation width, Chinese line breaking, a Chinese-first font stack, explicit east-asian font-slot declarations) from day one.
License
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 pptfast」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:liustack/pptfast Headless(CLI)profile:
dsh plugin --profile headless add github:liustack/pptfast 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。
使用场景
自动化一项重复工作——调度、串联任务或响应事件——不用你亲手启动。
适合谁
有周期性工作、想 cron 式无人值守而非手动触发的人。
二次开发建议
触发器和任务模板是缝——加事件驱动或文件监听触发,以及更丰富的流程编排。