Builds editable PowerPoint, PDF and HTML decks from a deck spec, with fit, source and visual checks.
Paste one prompt into ChatGPT, Claude or Codex and get an editable PowerPoint — action titles, sourced numbers and a review before hand-off. Not a picture of slides.
No install, no YAML. Paste this into ChatGPT (agent mode), Codex, Claude or Claude Code — any assistant that can run code and open a link — and fill in the brackets:
Study the repository https://github.com/eiler2005/slidecraft (read AGENTS.md first) and use
SlideCraft to make me an editable PowerPoint deck.
Topic: [what the deck is about]
For whom and why: [who will read it and what they should decide or do]
Length: 15–20 slides
Language: [English / Russian / …]
Content: [your notes, key points, numbers with their sources, links or files]
Style: [e.g. calm consulting look, dark keynote, or "match the colours of https://…"]
Follow the SlideCraft workflow: show me the action-title chain and 2–3 cover options before
building, cite a source for every number, then give me the .pptx and a PDF.
The assistant runs npx @eiler2005/slidecraft on its side, writes the deck, checks it and hands you an editable PowerPoint. Tested with Codex and Claude Code on exactly this prompt — see what each made, unedited, with an independent review: Codex · Claude Code. ChatGPT in agent mode made a five-slide deck end to end from a shorter version of this prompt; the tool errors it hit on the way are fixed in 0.7.5. Claude.ai with code execution follows the same AGENTS.md; we have not run it ourselves yet. The content can be in any language. A chat without code execution can still write the deck.yaml; build it yourself with npx @eiler2005/slidecraft build deck.yaml. For repeat work, install it into your assistant (install).
SlideCraft turns a goal into a consulting-grade presentation. You say what the deck must achieve and for whom. SlideCraft proposes templates for the task, builds the storyline and a ghost deck of action titles for you to approve, then writes the slides and renders them to an editable PowerPoint, an accessible vector PDF and a self-contained HTML deck — plus a one-pager and a Word memo when readers read rather than watch. A partner-style review closes the loop.
It works with any AI agent or LLM that can run a command:
install command;AGENTS.md and a JSON CLI.It works from your material: numbers come from your Excel or CSV files and are written once, sources cite the page of the report they come from, and text a colleague edits in PowerPoint flows back into the deck.
Underneath is one zero-install CLI. Every layout is measured with metric-compatible fonts, so text that fits in SlideCraft fits in PowerPoint — verified line by line against real PowerPoint output.
Most AI deck tools end in a web page or a picture of slides, so someone rebuilds the deck in PowerPoint — where boards, clients and brand teams actually work. SlideCraft ends in a .pptx whose text, tables, charts, notes and icons are native objects, from one prompt in the assistant you already use. The model brings the words. SlideCraft brings what the model lacks:
The deck is right the first time, and stays editable for the next round.
The honest limits.
Full analysis: why an editable PowerPoint matters — and where the claim stops.
This deck explains SlideCraft — and SlideCraft made it from one deck.yaml:
New here? Start here — your first deck in ten minutes · What you can do — capabilities by job to be done · Example library — eleven finished decks to copy
See the results yourself: a full run in every format with its review report in docs/showcase/orchestration-run/ · one deck in English and Russian made through the whole workflow in docs/showcase/fde-engineer/ (example) · originals next to SlideCraft's rebuilds and HTML, slide by slide, with npm run comparison → comparison/index.html · where to find what
SlideCraft is built by Denis Ermilov. Denis has 20 years in B2B FinTech and enterprise platforms — payment systems at national scale, a cross-border payment hub with direct links to China, India and Southeast Asia, a dealer-network platform with Volkswagen Group's team in Berlin — and is Director of Product at Cinimex Group. Much of that time went into decks for joint projects with consulting firms such as McKinsey & Company, Accenture and IBM: board papers, strategy recommendations, steering-committee updates, proposals. That work taught a short list of rules: answer first, one claim per slide, every number sourced, never shrink text until it is unreadable. Most of those rules are mechanical, so this project turns that consulting practice into software an AI agent follows every time.
Denis also writes about AI beyond the hype: Digital Bank (2023) and When Intelligence Became Cheap (2026), part of a three-book series on people, companies and trust once intelligence becomes cheap. → Books on Amazon · GitHub profile
you › Make a deck: the board should approve a partner-led entry into Germany
agent › Brief: board of 5, decision = €6M phase-1 budget, deck goes out as PDF.
Outputs: PPTX (pptxgenjs) + PDF rendered by PowerPoint, because readers get the PDF. ✅ CP1
agent › Three templates — opened picker.html:
A Strategy recommendation · Consulting Classic (answer first, 3 reasons, plan, ask)
B Strategy recommendation · Executive
C Executive update · Corporate Blue
you › A ✅ CP2
agent › Governing thought: "Entering Germany now captures a €40M window before two rivals scale"
01 Entering the German mid-market can add €40M revenue by 2028
02 Entering Germany now captures a €40M window before two rivals scale
03 The UK business is profitable, growing and ready to fund a second market … ✅ CP3
agent › Built 11 slides. Review: 0 blockers, 2 majors fixed, 1 minor left. ✅ CP4
slidecraft/northwind-germany/dist/northwind-germany.pptx · .pdf · previews/ · manifest.json
What a deck is made of. Four independent layers, all plain files you can read and diff:
| Layer | File | What it holds |
|---|---|---|
| Brief | brief.yaml | goal, ask, audience, how the deck will be used → which outputs |
| Storyline × theme | chosen from 14 × 7 | the shape of the argument for the task, and the look |
| Content | deck.yaml (+ sections/*.yaml) | action titles and slide content against 46 layout contracts; sources:, facts: from Excel/CSV, cover visual, language: |
| Your material | materials/, assets/ | reports cited by page, data files, pictures |
Layouts turn the content into one Scene IR; engines translate it into editable PPTX, PDF, HTML, a one-pager and a Word memo. Text is laid out with PowerPoint's measured rules, so the HTML and the PPTX break lines the same way.
How it is assembled — eight stages, four checkpoints you approve (the top row of the picture above): brief → pick a template → storyline → ghost deck of action titles → build → review → visual QA → deliver.
How it is checked. Automatic checks after every build (fit without truncation, sources for
every number, the same number everywhere, contrast, geometry); a copy-fit loop and a partner
review; then a reviewer model looks at every slide as PowerPoint and the browser draw it and
writes REPORT.md — a verdict and what needs your attention. Every change made while checking
lands in REVIEW-LOG.md.
The strongest model does the storyline and the reviews; faster models write slides in parallel and fit copy (Opus, Sonnet and Haiku in Claude Code; whatever you configure elsewhere).
Full process: workflow · architecture · final visual QA · design the cover · decks in Russian and other languages · orchestration templates and a full run
A template is a storyline (the shape of the argument for a task) × a theme (the look). Any storyline works in any theme. Fourteen storylines × six themes (or your own brand theme), built from forty-two layouts. The gallery site shows every storyline in every theme and the example decks in every format.
Storyline is the task, theme is the look: 14 storylines × 7 themes, independently selectable. Within each slide, route the message through slidecraft exhibits, reuse native library components with slidecraft components, and combine them using layout: composition. Shared design elements and content feed HTML and editable PowerPoint engines through one Scene IR. Constructor guide · Architecture diagrams and verification limits.
Also included: business case, product overview, case study, project kickoff, post-mortem, training / workshop, sales / customer QBR, investment memo. Bring your own outline and SlideCraft maps it onto layouts.
Small and quick: examples/europe-first-trip — a five-slide travel guide (2×2 value map, Harvey-ball fit by traveller type, budget chart, "who should go where" table), produced in a live end-to-end run with the plugin agents and with Codex, then curated.
Your brand: slidecraft theme import brand.potx --id contoso --font-dir ./fonts creates a theme with your colours, fonts and logo; slidecraft calibrate --theme ./slidecraft-theme/contoso.json checks line breaks against real PowerPoint (apply your brand). The template's pictures stay in place, its title band and slide size become the deck's frame (4:3 works too), and its Office theme travels into every PPTX.
Your old decks: slidecraft import old.pptx --render extracts text, tables, chart data, pictures and notes into a draft deck.yaml; /slidecraft:import then redesigns it slide by slide from the rendered original (import a PPTX).
One spec, several engines — you choose, SlideCraft recommends based on what you will do with the deck.
| Engine | Output | Editable | When to use | Install | License |
|---|---|---|---|---|---|
pptxgenjs (default) | PPTX | ✅ native text, tables, charts, notes | Decks you or your team will edit | bundled | MIT |
native (default) | — | Vector PDF with selectable text; CI and automation | bundled | MIT | |
pptx-convert | — | PDF goes to readers — rendered by PowerPoint/LibreOffice itself, pixel-identical | your office suite | — | |
html | HTML + PDF | in browser | Present from a browser, share a link, storytelling with rich decor | Chrome for PDF | MIT |
artifact-tool | PPTX | ✅ | Explicit local evaluation of the OpenAI adapter | Codex runtime | proprietary, evaluation/testing only — never bundled |
onepager | PDF (A4) | — | The argument on one page: every slide as a thumbnail with its action title | bundled | MIT |
docx | DOCX | ✅ | Pre-reads and memos: titles as headings, editable text and tables, exhibits as images | bundled | MIT |
Recommended: pptxgenjs for anything that leaves your team; artifact-tool only for explicit internal evaluation/testing in Codex (not production, commercial use or benchmarking); always a PDF — native for speed, pptx-convert when the PDF is the deliverable; HTML when you present from a browser.
Fidelity: text is laid out with PowerPoint's own measured rules, so HTML and the editable PPTX match; every deck ends with a reviewer-model check and a report of what needs your attention (rules · visual QA · calibration report).
slidecraft doctor shows what is available on your machine. Pros and cons of every engine: engines compared · choose an output engine · engine reference.
Pick your agent. All of them drive the same CLI, the committed bundle dist/slidecraft.mjs (Node ≥ 22.12, no npm install).
| You use | Set up | Then |
|---|---|---|
| Claude Code | /plugin marketplace add eiler2005/slidecraft then /plugin install slidecraft@slidecraft | /slidecraft:new <what the deck must achieve, for whom> |
| OpenAI Codex | npm i -g @eiler2005/slidecraft then slidecraft codex install (skills in ~/.codex/skills/slidecraft*) | codex "Using SlideCraft, make a 5-slide deck that …" |
| Cursor, Gemini CLI, Aider, Copilot agents, any LLM with a shell | npm i -g @eiler2005/slidecraft, or clone; point the agent at AGENTS.md | "Follow AGENTS.md and make a deck that …" — see use with any agent |
| Claude Desktop, Cursor, VS Code, Windsurf, Gemini CLI — or all of the above | npx @eiler2005/slidecraft install connects every AI app it finds (MCP server + Claude Code plugin + Codex skills) | "Use SlideCraft to make a deck that …" — see use with MCP apps |
| No agent, or any script | npx @eiler2005/slidecraft — no clone needed (npm) | npx @eiler2005/slidecraft build deck.yaml |
git clone https://github.com/eiler2005/slidecraft && cd slidecraft
node dist/slidecraft.mjs build examples/strategy-recommendation/deck.yaml
open examples/strategy-recommendation/dist/northwind-germany.pptx
MCP server: npx @eiler2005/slidecraft mcp (stdio). Listed in the official MCP Registry as io.github.eiler2005/slidecraft, so registry-aware clients can find and install it.
Write deck.yaml by hand: tutorial · deck spec · CLI reference.
| File | What it is |
|---|---|
<id>.pptx | Editable PowerPoint: native text boxes, tables and charts, speaker notes, slide masters per theme |
<id>.pdf | Tagged, accessible vector PDF: headings, alt text, table headers, source links (or PowerPoint-rendered with pptx-convert) |
<id>.html | One self-contained file: keyboard navigation, presenter notes (N), print to PDF |
<id>-onepager.pdf | A4 one-page summary: the title chain with slide thumbnails |
<id>.docx | Word memo: action titles as headings, editable text and tables, exhibits as images, notes |
previews/NN-<slide>.png | Slide previews for review and sharing |
manifest.json | Engines and versions, sha256 of inputs, data files and outputs, every fact's value, check results, limitations, visual_review: false until a human signs off |
Builds are deterministic: the same deck produces byte-identical PPTX and PDF.
Methodology: writing standard · visual standard · exhibit selection · storytelling · review.
46 layouts in six groups.
| Group | Layouts |
|---|---|
| Frame | title (cover, closing) · agenda (agenda, section-divider) |
| Message | exec-summary (SCR, key messages) · key-points (columns, cards, list) · big-statement (statement, quote, hero number) · text-image · text · before-after · composition (several exhibits in regions) · native-canvas (bespoke, editable shapes) · freeform · freeform-canvas (HTML/CSS, checked like any slide) |
| Numbers | kpi-tiles · chart-takeaway (bar, column, stacked, line, combo bar + line) · evidence-panorama · waterfall · bubble-chart (bubble, scatter, growth-share portfolio) · marimekko · tornado · football-field · funnel (funnel, pyramid) · data-table |
| Decide | options-comparison (text, Harvey-ball rating, up to 5 options) · matrix-2x2 · swot · five-forces · pestel · business-model-canvas · value-chain · seven-s (McKinsey 7S) · issue-tree (issue, driver) · maturity-model (grid, staircase) · coverage-map · architecture (zones + register) · evidence-chain · risk-matrix |
| Sequence | process-steps (chevrons, numbered) · timeline (milestones, gantt) · gate-matrix · process-compare (current vs proposed) · cadence (role calendar) · callout (numbered callouts on a screenshot) |
| People · Close | team-cards · org-chart · raci · next-steps (decision, actions) |
Contracts, limits and thumbnails: layouts reference. Add your own: add a layout.
Shipped in 0.5:
facts: with {{id}}, and charts and tables read straight from Excel and CSV;ingest reads PDF, Word, PowerPoint and Excel material; slides cite report#p14;sync brings text edited in PowerPoint back into the deck;install for Claude Desktop, Cursor, VS Code, Windsurf, Gemini CLI, Claude Code and Codex.Shipped in 0.7:
imageFocus keeps the subject in view;Shipped in 0.6:
language:; sources in the speaker notes.Next: live preview, table sync, presenter tools. See ROADMAP.md.
SlideCraft runs on your machine, or in your assistant's sandbox. It has no account and no telemetry, and it sends your deck content nowhere. It goes online only for what you ask for:
npx @eiler2005/slidecraft downloads the package from npm;imageQuery, slidecraft images --stock) search and download from Openverse and Wikimedia Commons, or from Pexels and Pixabay when you set PEXELS_API_KEY / PIXABAY_API_KEY; the search words leave your machine;imagePrompt, slidecraft images) send the prompt to an OpenAI-compatible API with your OPENAI_API_KEY;slidecraft theme from https://… opens that page in your local Chrome to read its colours and fonts.--dry-run lists every prompt or search before anything is sent. Rendering uses your local PowerPoint, LibreOffice or Chrome. Your material stays in slidecraft/, which is git-ignored.
Issues and PRs welcome — new layouts, themes and storylines especially. Start with CONTRIBUTING.md; npm run check runs lint, types and 1,200+ tests, including pixel-hash visual regression of every layout.
SlideCraft is source-available (not OSI open source) under the PolyForm Shield License 1.0.0:
Using SlideCraft at a company? Teams & brand-kit early access — your corporate template set up for you, shared brand kits for a team.
Versions up to and including 0.6.0 were released under the MIT License and stay under it. Bundled fonts are SIL OFL (fonts/SOURCES.md), icons are Tabler Icons (MIT), and third-party libraries keep their own licences (NOTICE). The consulting methodology generalises the author's earlier internal work.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @eiler2005/slidecraftMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-eiler2005-slidecraft": {
"command": "npx",
"args": [
"-y",
"@eiler2005/slidecraft"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@eiler2005/slidecraftnpmSlideCraft works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.