返回目录
开源项目文档办公类新手

GitHub - storytold/deckcraft: Presentations and slide shows: an open-source, clean-room reimplementation of Microsoft PowerPoint in pure Rus

DeckCraft Presentations and slide shows; an open-source, clean-room reimplementation of Microsoft PowerPoint, rebuilt in pure Rust. Build decks with themes, layouts, shapes, pictures, tables, charts, transitions and animations, open and save PowerPoint files,

2 次阅读2026/11/10 发布
GitHub - storytold/deckcraft: Presentations and slide shows: an open-source, clean-room reimplementation of Microsoft PowerPoint in pure Rus 来源图片

社区作者 · zZz

它解决什么问题

DeckCraft

Presentations and slide shows; an open-source, clean-room reimplementation of Microsoft PowerPoint, rebuilt in pure Rust.

Build decks with themes, layouts, shapes, pictures, tables, charts, transitions and animations, open and save PowerPoint files, and present them full screen. Native on macOS, Windows, Linux and FreeBSD, and in the browser.

Every button is also a command that the CLI and AI agents (through MCP) can drive.

DeckCraft on getartcraft.com · ArtCraft · All Crafting Apps

Note ArtCraft is a community of artists from all walks of life. Painters, photographers, filmmakers, illustrators, designers, animators, hobbyists, and people who picked up a pencil last week. If you make things, you're one of us. Come say hi on Discord .

What works · Getting started · Agents, CLI and MCP · Roadmap · Downloads · The Crafting Apps · License

What works today

DeckCraft is in alpha, heading for beta (see the roadmap ). Today it can:

可复制命令
Make decks : slide masters and eleven layouts with placeholders that inherit position and

formatting, eight original themes with colour and font schemes, sections, notes, comments, headers and footers, custom slide sizes.

curve and scribble tools, merge shapes (union, combine, fragment, intersect, subtract), gradient, picture and pattern fills, outlines with dashes and arrowheads, shadows, glow, soft edges and reflections.

  • Draw : 150+ preset shapes with adjust handles, connectors that stay glued to shapes, freeform,

columns, autofit, vertical text, fields and hyperlinks.

  • Write : in-place text editing with full font and paragraph formatting, bullets and numbering,

audio and video (MP3, AAC, FLAC, ALAC, Ogg, Opus, WAV, AIFF; H.264, HEVC, VP9, AV1).

  • Add content : pictures with crop and corrections, tables with styles, charts, SmartArt basics,

by-paragraph builds, full-screen slide show, presenter view, pen, rehearse timings, media playback.

  • Present : transitions (including Morph), entrance/emphasis/exit and motion-path animations,

with selectable text), PNG/JPEG and outlines. Unsaved work is kept by AutoRecover.

  • Exchange files : open and save PowerPoint .pptx , export PDF (slides, notes pages, handouts

MCP server for AI agents.

  • Automate : 200+ commands with undo, all scriptable from the CLI, a JSON control channel and an

Shape Format contextual tab and selection handles

Format Shape pane: gradient type, direction and stops

Slide Sorter with each slide's transition

Dark mode, with a native chart

The built-in sample deck, rendered by deckcraft-cli render --sample --all

Getting started

命令
git clone https://github.com/storytold/deckcraft
命令
cd deckcraft
命令
cargo run --release -p deckcraft-cli -- render --sample --all --scale 1 out/

On Linux, the build also needs the ALSA headers for slide-show sound: alsa-lib-devel on Fedora, libasound2-dev on Debian and Ubuntu, alsa-lib on Arch. Without them it stops at alsa-sys .

Fonts come from craft-fonts : clone it next to this repo ( ../craft-fonts ) and local builds pick it up automatically; without it DeckCraft uses your system fonts.

Each GitHub release has ready-made builds, on Linux as an AppImage, a .deb , an .rpm and a tarball. On Gentoo, the community ::snakebyte overlay packages the Linux release as app-office/deckcraft-bin (not maintained by the DeckCraft team):

eselect repository add snakebyte git https://github.com/switch87/snakebyte-overlay.git emaint sync -r snakebyte echo ' app-office/deckcraft-bin ~amd64 ' >> /etc/portage/package.accept_keywords/deckcraft emerge --ask app-office/deckcraft-bin

Logs

The desktop app writes its log records to standard error and to logs/deckcraft.log in the settings directory, beside ui.json and prefs.json (Linux ~/.

config/deckcraft/logs/ , or $XDG_CONFIG_HOME/deckcraft/logs/ ; macOS ~/Library/Application Support/DeckCraft/logs/ ; Windows %APPDATA%\DeckCraft\logs\ ).

A start from a desktop menu or the Dock has no terminal, so this file is what to attach to a bug report: the crash guard's panic report, a failed crash-recovery save, PowerPoint parts skipped on import and audio output problems land there.

Each launch moves the previous log to deckcraft.1.log (and that one to deckcraft.2.log ), so the log of a run that crashed survives the next start. The file stops growing at 16 MiB. --version writes no file.

Variable Effect

RUST_LOG Log levels for standard error and the log file. Default: info for DeckCraft's own crates, warn for everything else. env_logger-style directives replace that, e.g.

RUST_LOG=debug , RUST_LOG=warn,deckcraft_pptx=trace or RUST_LOG=info,wgpu_core=warn ; a directive ending in * covers every target starting with it ( deckcraft*=debug ).

The logger is apps/deckcraft/src/logging.rs ; the realtime audio callback does not log. The web app logs to the browser console instead.

Agents, CLI and MCP

Every action in DeckCraft is a command with a stable id, so people, scripts and AI agents use the same verbs:

deckcraft-cli commands format. # list commands deckcraft-cli run --sample --cmd ' slide.new={"layout":"titleOnly","title":"Hello"} ' --save hello.

deckcraft deckcraft-cli mcp # MCP server over stdio (headless) deckcraft-cli mcp --connect 7990 # drive the running app (deckcraft --control 7990)

Roadmap

DeckCraft is in alpha . It covers 79% of PowerPoint's features by breadth (92% of the core ones, measured) and is about 55% of the way to replacing PowerPoint for real work (estimated). See ROADMAP.

md for the stage, numbers by dimension and what's next, docs/target-app-parity.md for the full assessment, docs/gaps.md for every known shortfall and docs/parity-checklist.md for the feature-by-feature checklist.

Downloads

Download DeckCraft from GitHub: the latest release has every build listed below, and all releases has earlier versions and their notes. <ver> in the file names is the version number, and SHA256SUMS.txt lists a checksum for every file.

Windows

Build Installer Portable

x64 (64-bit Intel/AMD) deckcraft-<ver>-windows-x64.msi deckcraft-<ver>-windows-x64-portable.zip

arm64 (Snapdragon and other ARM PCs) deckcraft-<ver>-windows-arm64.msi deckcraft-<ver>-windows-arm64-portable.zip

x86 (32-bit) deckcraft-<ver>-windows-x86.msi deckcraft-<ver>-windows-x86-portable.zip

Installers and executables are code-signed.

If the app doesn't open on Windows: the desktop app initializes only DirectX 12 by default. Letting wgpu also create an OpenGL instance can crash some graphics drivers (AMD's atio6axx.

dll ) before the window appears, so the app would flash in Task Manager and quit. WGPU_BACKEND overrides the default for troubleshooting (for example dx12 or vulkan ). In PowerShell, from the folder containing the executable:

$ env: WGPU_BACKEND = " vulkan " & .\ deckcraft.exe Remove-Item Env:WGPU_BACKEND # restore the default for later launches

An explicit gl override can bring the driver crash back on affected systems. The macOS, Linux and web backend defaults are unchanged.

macOS

Build File Notes

App, universal (Apple silicon + Intel) deckcraft-<ver>-macos-universal.dmg Signed and notarized

Command-line tool, universal deckcraft-cli-<ver>-macos-universal.zip Signed and notarized

Linux

Format x86_64 aarch64 (ARM64) Notes

AppImage deckcraft-<ver>-linux-x86_64.AppImage deckcraft-<ver>-linux-aarch64.AppImage Runs anywhere; updates itself with AppImageUpdate ( .zsync files)

Flatpak deckcraft-<ver>-linux-x86_64.flatpak deckcraft-<ver>-linux-aarch64.flatpak Sandboxed; flatpak install --user <file>

Debian/Ubuntu deckcraft-<ver>-linux-x86_64.deb deckcraft-<ver>-linux-aarch64.deb

Fedora/RHEL/openSUSE deckcraft-<ver>-linux-x86_64.rpm deckcraft-<ver>-linux-aarch64.rpm

Tarball deckcraft-<ver>-linux-x86_64.tar.gz deckcraft-<ver>-linux-aarch64.tar.gz Unpack anywhere

RISC-V 64 (riscv64): deckcraft-<ver>-linux-riscv64.tar.gz , a tarball only (cross-compiled; needs glibc 2.39+, e.g. Ubuntu 24.04+).

FreeBSD

Build File

x86_64 deckcraft-<ver>-freebsd-x86_64.tar.gz

Web (WebAssembly)

Build File Notes

Static site deckcraft-web-<ver>.zip Runs in a modern browser; host it on any static server

The Crafting Apps

DeckCraft is one of the Crafting Apps : free, open-source creative tools from the ArtCraft team, each written from scratch in Rust and each able to stand on its own.

App What it's for Code Learn more

PhotoCraft Image editing: layers, masks, type and real PSD files GitHub Website

VectorCraft Vector illustration GitHub Website

FilmCraft Video editing, color and sound GitHub Website

LightCraft Photo library and raw development GitHub Website

PdfCraft Reading, organizing and protecting PDFs GitHub Website

EffectCraft Motion graphics and visual effects GitHub Website

DesignCraft Page layout and publishing GitHub Website

DeckCraft Presentations and slide shows · you are here GitHub Website

And ArtCraft itself, our AI image and video studio for artists who want real control.

Come make things with us

Our Discord is where artists of every kind hang out: people who paint, shoot, draw, cut film,

命令
set type, and people still figuring out what they like to make. Share what you're working on,

ask for help, tell us what's broken, or tell us what you wish these tools could do. Whatever your medium and however long you've been at it, you're welcome here.

discord.gg/artcraft · getartcraft.com · The Crafting Apps · DeckCraft

License and credits

DeckCraft is dual-licensed under MIT or Apache-2.0 , at your option. Copyright (c) 2026 ArtCraft Team and the DeckCraft contributors. Required notices are in NOTICE .

Bundled fonts, icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ATTRIBUTION.md .

DeckCraft's themes, layouts, shape geometry, icons and sample decks are original work, drawn or generated in code; no Microsoft artwork, fonts, themes or templates are used.

The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as part of this repository and DeckCraft, under docs/brand/LICENSE-brand.txt .

Forks and modified versions must remove them.

Microsoft and PowerPoint are trademarks of the Microsoft group of companies. Adobe, Photoshop, Illustrator, Premiere Pro, Lightroom, Acrobat, After Effects and InDesign are trademarks or registered trademarks of Adobe Inc.

in the United States and/or other countries. DeckCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Microsoft Corporation or Adobe Inc.

; these names are used only to describe the workflows it is compatible with.

Made by the ArtCraft team and community.

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

Getting started · Agents, CLI and MCP · Roadmap · Downloads · The Crafting Apps · License What works today DeckCraft is in alpha, heading for beta (see the roadmap ). Today it can:

可复制命令
Make decks : slide masters and eleven layouts with placeholders that inherit position and

formatting, eight original themes with colour and font schemes, sections, notes, comments, headers and footers, custom slide sizes.

curve and scribble tools, merge shapes (union, combine, fragment, intersect, subtract), gradient, picture and pattern fills, outlines with dashes and arrowheads, shadows, glow, soft edges and reflections.

columns, autofit, vertical text, fields and hyperlinks.

audio and video (MP3, AAC, FLAC, ALAC, Ogg, Opus, WAV, AIFF; H.264, HEVC, VP9, AV1).

by-paragraph builds, full-screen slide show, presenter view, pen, rehearse timings, media playback.

with selectable text), PNG/JPEG and outlines. Unsaved work is kept by AutoRecover.

MCP server for AI agents.

Shape Format contextual tab and selection handles Format Shape pane: gradient type, direction and stops Slide Sorter with each slide's transition Dark mode, with a native chart The built-in sample deck, rendered by deckcraft-cli render --sample --all Getting started

  • Draw : 150+ preset shapes with adjust handles, connectors that stay glued to shapes, freeform,
  • Write : in-place text editing with full font and paragraph formatting, bullets and numbering,
  • Add content : pictures with crop and corrections, tables with styles, charts, SmartArt basics,
  • Present : transitions (including Morph), entrance/emphasis/exit and motion-path animations,
  • Exchange files : open and save PowerPoint .pptx , export PDF (slides, notes pages, handouts
  • Automate : 200+ commands with undo, all scriptable from the CLI, a JSON control channel and an
命令
git clone https://github.com/storytold/deckcraft
命令
cd deckcraft
命令
cargo run --release -p deckcraft-cli -- render --sample --all --scale 1 out/

On Linux, the build also needs the ALSA headers for slide-show sound: alsa-lib-devel on Fedora, libasound2-dev on Debian and Ubuntu, alsa-lib on Arch. Without them it stops at alsa-sys . Fonts come from craft-fonts : clone it next to this repo ( .

/craft-fonts ) and local builds pick it up automatically; without it DeckCraft uses your system fonts. Each GitHub release has ready-made builds, on Linux as an AppImage, a .deb , an .rpm and a tarball.

On Gentoo, the community ::snakebyte overlay packages the Linux release as app-office/deckcraft-bin (not maintained by the DeckCraft team): eselect repository add snakebyte git https://github.com/switch87/snakebyte-overlay.

git emaint sync -r snakebyte echo ' app-office/deckcraft-bin ~amd64 ' >> /etc/portage/package.accept_keywords/deckcraft emerge --ask app-office/deckcraft-bin Logs The desktop app writes its log records to standard error and to logs/deckcraft.

log in the settings directory, beside ui.json and prefs.json (Linux ~/.config/deckcraft/logs/ , or $XDG_CONFIG_HOME/deckcraft/logs/ ; macOS ~/Library/Application Support/DeckCraft/logs/ ; Windows %APPDATA%\DeckCraft\logs\ ).

A start from a desktop menu or the Dock has no terminal, so this file is what to attach to a bug report: the crash guard's panic report, a failed crash-recovery save, PowerPoint parts skipped on import and audio output problems land there.

Each launch moves the previous log to deckcraft.1.log (and that one to deckcraft.2.log ), so the log of a run that crashed survives the next start. The file stops growing at 16 MiB. --version writes no file.

Variable Effect RUST_LOG Log levels for standard error and the log file. Default: info for DeckCraft's own crates, warn for everything else. env_logger-style directives replace that, e.g.

RUST_LOG=debug , RUST_LOG=warn,deckcraft_pptx=trace or RUST_LOG=info,wgpu_core=warn ; a directive ending in * covers every target starting with it ( deckcraft*=debug ). The logger is apps/deckcraft/src/logging.rs ; the realtime audio callback does not log.

The web app logs to the browser console instead. Agents, CLI and MCP Every action in DeckCraft is a command with a stable id, so people, scripts and AI agents use the same verbs: deckcraft-cli commands format.

# list commands deckcraft-cli run --sample --cmd ' slide.new={"layout":"titleOnly","title":"Hello"} ' --save hello.

deckcraft deckcraft-cli mcp # MCP server over stdio (headless) deckcraft-cli mcp --connect 7990 # drive the running app (deckcraft --control 7990) Roadmap DeckCraft is in alpha .

It covers 79% of PowerPoint's features by breadth (92% of the core ones, measured) and is about 55% of the way to replacing PowerPoint for real work (estimated). See ROADMAP.md for the stage, numbers by dimension and what's next, docs/target-app-parity.

md for the full assessment, docs/gaps.md for every known shortfall and docs/parity-checklist.md for the feature-by-feature checklist.

Downloads Download DeckCraft from GitHub: the latest release has every build listed below, and all releases has earlier versions and their notes. <ver> in the file names is the version number, and SHA256SUMS.txt lists a checksum for every file.

Windows Build Installer Portable x64 (64-bit Intel/AMD) deckcraft-<ver>-windows-x64.msi deckcraft-<ver>-windows-x64-portable.zip arm64 (Snapdragon and other ARM PCs) deckcraft-<ver>-windows-arm64.msi deckcraft-<ver>-windows-arm64-portable.zip x86 (32-bit)

来源教程配图

ArtCraft
配图 1 · ArtCraft查看原图
DeckCraft editing a slide: ribbon, slide thumbnails with sections, a process diagram on the canvas, notes and status bar
配图 2 · DeckCraft editing a slide: ribbon, slide thumbnails with sections, a process diagram on the canvas, notes and status bar查看原图
A selected shape with the Shape Format tab
配图 3 · A selected shape with the Shape Format tab查看原图
The Format Shape pane editing a gradient fill
配图 4 · The Format Shape pane editing a gradient fill查看原图
Slide Sorter view with transitions under each slide
配图 5 · Slide Sorter view with transitions under each slide查看原图
DeckCraft in dark mode showing a chart slide
配图 6 · DeckCraft in dark mode showing a chart slide查看原图
All eight slides of the Northern Lights sample deck
配图 7 · All eight slides of the Northern Lights sample deck查看原图
教程配图
配图 8 · 教程配图查看原图

适用场景

学习研究
开源项目实践