DeckCraft: a Rust presentation editor for desktop, browser and automation
Presentations and slide shows: an open-source, clean-room reimplementation of Microsoft PowerPoint in pure Rust. Part of the ArtCraft Crafting Apps.
At a glance
- What is it?
- DeckCraft is an early-stage, clean-room presentation editor written in Rust for people who need PowerPoint files, full-screen presentations and scriptable slide operations. Its alpha status and Linux audio dependency are important adoption constraints.
- Who is it for?
- DeckCraft fits developers and automation-focused users who need editable PowerPoint files plus CLI and MCP control, provided they can tolerate alpha software and validate their required media, font and export workflows. It is a poor fit for organizations that require a documented stable release, predictable upgrade compatibility or a polished support commitment.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
DeckCraft's editable PowerPoint scope
DeckCraft addresses presentation authoring rather than read-only slide playback. Its stated purpose is a clean-room reimplementation of Microsoft PowerPoint in pure Rust, with support for macOS, Windows, Linux, FreeBSD and the browser. The intended users include designers and presenters who build visual material, as well as developers and AI agents that need presentation operations to be scriptable.
The editor covers a broad presentation model. It includes slide masters, eleven layouts, inherited placeholders, eight original themes, sections, speaker notes, comments, headers, footers and custom slide sizes. Text can be edited in place with font and paragraph formatting, lists, columns, autofit, vertical text, fields and hyperlinks. The README also lists pictures, tables, charts, basic SmartArt, audio and video as supported content.
That scope is unusually close to the feature surface of a conventional office suite, but the README labels DeckCraft as alpha and says it is heading for beta. This is a product-status warning, not just a version-number detail. A feature being listed as available does not by itself establish compatibility with every PowerPoint file or guarantee identical editing behavior.
DeckCraft's Rust workspace and rendering architecture
The repository layout separates the presentation system into focused Rust crates. The workspace includes `deckcraft-model`, `deckcraft-text`, `deckcraft-render`, `deckcraft-pptx`, `deckcraft-format`, `deckcraft-anim`, `deckcraft-engine`, `deckcraft-mcp`, `deckcraft-ui-egui` and `deckcraft-media`. The default workspace members cover the `crates/*` directory, the desktop application and `apps/deckcraft-cli`.
This separation matches the project's data path. The model crate represents deck content, while rendering, text layout, animation, PowerPoint import and export are isolated in other crates. The desktop interface uses `deckcraft-ui-egui`, and media handling is represented by `deckcraft-media`. The workspace also contains codec crates for H.264, HEVC, VP9, AV1, Matroska, Ogg and Opus, alongside audio-related dependencies listed in the README.
DeckCraft also has an application layer for automation. The README says that more than 200 commands are available, all with undo support, and that they can be driven through the CLI, a JSON control channel and an MCP server. The repository includes a dedicated `deckcraft-mcp` crate. This architecture is more useful for automation than a purely visual editor because commands are treated as a first-class interface rather than merely simulated interface actions.
The cost of this architecture is a substantial build surface. Source builds depend on Rust 1.95, edition 2024 and a broad local workspace. PDF export uses the shared `craft-pdf` writer with import features disabled, so PDF work has its own dependency and validation requirements.
Installing DeckCraft and rendering the sample deck
The README offers two acquisition paths: GitHub release artifacts and a source build from the repository. For the first concrete use, the documented sample-render command creates PNG output from the built-in sample deck. The command writes files under `out/` after rendering all sample slides at scale 1.
For a source checkout, clone the repository and run the documented command:
git clone https://github.com/storytold/deckcraft
cd deckcraft
cargo run --release -p deckcraft-cli -- render --sample --all --scale 1 out/A successful build should produce the sample output directory and rendered slide images. The README shows this command in the context of local development, so it is more useful as a first build check than as a complete desktop installation guide.
Linux builds need ALSA headers for slideshow sound. The documented packages are `alsa-lib-devel` on Fedora, `libasound2-dev` on Debian and Ubuntu, and `alsa-lib` on Arch. Without the appropriate headers, the build stops at `alsa-sys`. Fonts are optional at build time: DeckCraft uses system fonts when `craft-fonts` is absent, but local builds can pick up the sibling repository automatically if it is cloned as `../craft-fonts`.
GitHub releases provide ready-made builds for Linux as an AppImage, `.deb`, `.rpm` and a tarball. The README does not give corresponding download commands for macOS or Windows, so users on those systems should use the release page rather than infer a package-manager workflow.
DeckCraft's rendering, presentation and file exchange features
The rendering and presentation features cover several common delivery paths. DeckCraft can present a deck full screen, provide presenter view, rehearse timings, play media and use pen input. Transitions include Morph, while animation categories include entrance, emphasis, exit and motion-path effects. Paragraph-level builds are also listed.
For file exchange, the README states that DeckCraft opens and saves PowerPoint `.pptx` files. It can export PDF, PNG, JPEG, animated GIF and outlines. PDF output includes slides, notes pages and handouts with selectable text. These features make the project relevant to a workflow that starts with PowerPoint and ends with static, portable or presentation-ready output.
Shape editing is another substantial part of the editor. The README lists more than 150 preset shapes, adjustment handles, connectors that remain attached to shapes, freeform and scribble tools, and boolean operations including union, combine, fragment, intersect and subtract. Fill and outline controls include gradients, pictures, patterns, dashes, arrowheads, shadows, glow, soft edges and reflections. Pictures can be cropped and corrected.
The practical limitation is compatibility uncertainty. The README confirms `.pptx` support, but it does not document a compatibility matrix, known unsupported PowerPoint features, fidelity guarantees or rollback procedure. Teams that depend on intricate third-party decks should keep the original files and validate a representative set before replacing their primary editor.
CLI, JSON control and MCP automation
DeckCraft is not limited to mouse-driven editing. The README says every button is also a command that the CLI and AI agents can drive through MCP. It further documents 200-plus commands, undo support, a JSON control channel and `deckcraft-mcp` as a repository crate. This is a meaningful design decision for workflows that need repeatable slide generation or inspection.
The documented `deckcraft-cli render --sample --all --scale 1 out/` command shows a direct CLI path for producing rendered output. The JSON channel is described as an automation interface, but the README does not provide its message schema, connection details or a complete MCP session example. Consequently, the existence of the interfaces is documented, while their production integration details still need to be checked in the repository documentation.
Automation also introduces constraints that ordinary GUI use hides. Commands must preserve undo semantics, and presentation files need to remain editable across export and reopen operations. The README does not specify command versioning or backward compatibility guarantees. An automation user should therefore inspect the current `deckcraft-cli` and `deckcraft-mcp` interfaces before building a long-lived pipeline around them.
DeckCraft's platform and alpha limitations
The alpha designation is the clearest reason to pause before standardizing on DeckCraft. The project supports several operating systems and the browser, but the README does not document which PowerPoint features are complete, how unsupported files are repaired, or whether browser and desktop versions expose exactly the same command set. Cross-platform availability should not be read as feature parity.
Media support is broad but format support still has a dependency boundary. The README names MP3, AAC, FLAC, ALAC, Ogg, Opus, WAV and AIFF audio, plus H.264, HEVC, VP9 and AV1 video. It also documents ALSA as a Linux slideshow-audio build dependency. A deck with media can therefore fail to build or present cleanly in an environment that lacks the required system libraries or codecs.
DeckCraft is a reimplementation, so visual and structural parity with Microsoft PowerPoint is not established by the project description. The repository license is `MIT OR Apache-2.0`, while the README badge also shows that dual-license expression. That affects how the code can be used under its stated terms, but it does not settle compatibility, trademark or document-format questions. Users should review the repository's `LICENSE-MIT`, `LICENSE-APACHE`, `NOTICE` and `ATTRIBUTION.md` files for the project's actual obligations.
DeckCraft release timing and upgrade handling
The repository is not archived, and its last push was on 2026-10-15. Recent releases include v0.7.0 on 2026-10-14, v0.6.1 on 2026-10-12 and v0.5.0 on 2026-10-11. This release cadence indicates recent development activity, but the alpha status remains the relevant adoption boundary.
The README documents GitHub releases with ready-made builds, but it does not provide a formal migration guide for earlier DeckCraft versions. It also does not document rollback behavior, file-repair behavior or a stable API promise for the CLI and MCP interfaces. An upgrade can therefore involve more than replacing the binary if a workflow depends on command output, JSON messages or presentation rendering.
For a pilot, the practical maintenance boundary is the project version itself. Keep the source checkout, `Cargo.lock`, required font repository and platform media dependencies aligned with the selected release. Check whether automation scripts rely on command names or JSON fields before upgrading, because those details are not described as stable in the README.
Editorial conclusion
DeckCraft fits developers and automation-focused users who need editable PowerPoint files plus CLI and MCP control, provided they can tolerate alpha software and validate their required media, font and export workflows. It is a poor fit for organizations that require a documented stable release, predictable upgrade compatibility or a polished support commitment. Verify first whether your existing `.pptx` files render correctly, whether every required font and media format is available, and whether the release artifacts work on your target platform before adopting it as a production presentation editor.
Frequently asked questions
How do I install DeckCraft and render its sample deck?
Clone the repository, enter the `deckcraft` directory and run `cargo run --release -p deckcraft-cli -- render --sample --all --scale 1 out/`. On Linux, slideshow-audio builds also need the ALSA headers documented for the distribution.
Can DeckCraft open and save PowerPoint files?
Yes. The README states that DeckCraft can open and save PowerPoint `.pptx` files, and it also documents PDF, PNG, JPEG, animated GIF and outline export.
Does DeckCraft support CLI automation and AI agents?
The README documents more than 200 commands, CLI scripting, a JSON control channel and an MCP server for AI agents. It does not provide the complete command schema or MCP session example.
Which platforms and media formats does DeckCraft support?
The README lists macOS, Windows, Linux, FreeBSD and browser support. It names MP3, AAC, FLAC, ALAC, Ogg, Opus, WAV and AIFF audio, plus H.264, HEVC, VP9 and AV1 video.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/storytold-deckcraft)Was this useful?