Architecture Overview
CLI and Server Components
Section titled “CLI and Server Components”AI Engine and vLLM Integration
Section titled “AI Engine and vLLM Integration”Office Add-in Integration
Section titled “Office Add-in Integration”The user interface is implemented as an Office.js taskpane SPA that runs inside the PowerPoint host 1. This taskpane includes a chat panel, a live slide tree, and an action bar. It interacts with PowerPoint via the Office.js API, specifically using context.presentation.insertSlidesFromBase64(b64, options) for slide insertion and getFileAsync for file retrieval. The add-in tracks slides using opaque Slide.id values rather than indices. Communication between the taskpane and the server occurs over HTTPS and WebSockets, secured by a local CA generated via mkcert.
README.md L1-111 (showing 40 of 111)
# ppt-craft
> **Disclaimer: unofficial and unsupported.** Provided for testing and
> evaluation only, on an "AS IS" basis, with no warranty and no support. Not
> affiliated with or endorsed by Dell. See [DISCLAIMER.md](DISCLAIMER.md).
Wiki: https://sddcinfo.github.io/pptcraft/
Local "Claude-for-PowerPoint" add-in for the GB10 - runs **inside
PowerPoint** (online or desktop), powered by the **local Qwen3.6 vLLM
backend** instead of Anthropic's API.
```
┌────────────────────────────────────────────────────────────────────┐
│ PowerPoint host (Online in browser, OR desktop on Mac/Windows) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Claude-style taskpane (Office.js SPA) │ │
│ │ chat panel · live slide tree · action bar │ │
│ │ Office.js: insertSlidesFromBase64, getFileAsync, … │ │
│ └────────────────────────────┬───────────────────────────────┘ │
└──────────────────────────────┬│────────────────────────────────────┘
││ HTTPS (mkcert local CA) / WSS / REST
┌──────────────────────────────▼▼────────────────────────────────────┐
│ GB10 - ppt-craft serve (FastAPI on :3030, HTTPS) │
│ python-pptx + lxml on OOXML │
│ shared vLLM @ localhost:8010 (Qwen3.6-FP8) │
└────────────────────────────────────────────────────────────────────┘
```
## Backend sharing
`ppt-craft` reuses the **same shared vLLM endpoint** as
`meeting-scribe` and `autosre` - `http://localhost:8010` by default
(autosre-managed `Qwen/Qwen3.6-35B-A3B-FP8`). One model, three clients.
The 35B takes ~3 min to cold-load and needs ~35 GB VRAM, so the three
clients share one instance rather than each loading their own.
Each consumer can run **independently** by pointing at a different URL: