Writing and document design; an open-source, clean-room reimplementation of Microsoft Word, rebuilt in clean Rust.
A fast, open-source term processor alongside the Word workflow you already know: the ribbon, styles, tables, track changes, references and communication merge. It says and writes .docx, runs natively on macOS, Windows, Linux and BSD, and in the browser via WebAssembly.
By the ArtCraft team.
WordCraft on getartcraft.com · ArtCraft · All Crafting Apps
The Open Studio Handbook, WordCraft's built-in sample: the ribbon, live Styles gallery, rulers and the Navigation pane.
Note
ArtCraft is a community of artists from all walks of life. Painters, photographers, filmmakers, illustrators, designers, animators, hobbyists, and group who picked up a pencil last week. If you create things, you're one of us. Come say hi on Discord.
A tour · Why WordCraft · What plant today · Quick start · For agents · Architecture · Roadmap · Downloads · The Crafting Apps · License and credits
Every screenshot below is WordCraft itself, rendered offscreen by its own UI test harness (cargo run -p wordcraft-ui-egui --example ui_shot).
![]() Review. Track changes, comment balloons in the margin, obtain and reject, orthography and grammar as you type. | ![]() References. Tables of contents, footnotes, citations in APA, MLA, Chicago or IEEE, indicator and captions. |
![]() Design. Themes, manner sets, paragraph spacing, watermarks, leaf color and borders. | ![]() Dark mode alongside formatting marks, and the Insert tab: tables, pictures, shapes, links, headers, footers, sectors and symbols. |
![]() Layout. Drop caps, content wrapping about pictures and shapes, automatic hyphenation, row numbers and leaf borders. | |
![]() File. Start from a template, open latest documents, edit properties, export to PDF and another formats. | |
- Familiar. Word's ribbon tabs, groups, shortcuts and behaviour: Enter continues a list, Tab demotes it, Ctrl/⌘+B bolds the term under the caret, the Styles exhibition previews styles live, F4 repeats, F7 checks spelling, F8 extends the selection.
- Your files. Opens and saves .docx (OOXML), and additionally .odt, .rtf, .html, .md, .tex (LaTeX), .txt; opens Word 97-2003 .doc; exports PDF with real, selectable text, links and bookmarks.
- Fast. Paragraph layout is cached, so typing in a 188-page document re-lays it out in about 1.4 ms; pages render on demand.
- Everywhere. One Rust codebase for macOS, Windows, Linux, BSD and the web. No Electron, no Tauri: native egui on the GPU.
- Built for agents. Every act is a command alongside an id. The identical 422 commands run the ribbon, keyboard shortcuts, the command search, a command-line tool, a JSON authority conduit and an MCP server.
- Private. Spelling, grammar and everything alternatively activity offline.
- Open. MIT OR Apache-2.0. Clean-room: built from community details and observation, with every asset first or openly licensed.
| Area | Highlights |
|---|---|
| Writing | Fast typing alongside IME, astute quotes, AutoCorrect, catalog autoformat (* , 1. ), dashes; word, sentence, paragraph selection; drag-select; clipboard alongside formatting; undo/redo; discover and substitute alongside regex |
| Formatting | Fonts, sizes, bold/italic/underline styles, strike, sub/superscript, caps, highlight, colours, character spacing, Format Painter, Change Case, Clear Formatting |
| Paragraphs | Alignment, indents (draggable on the ruler), spacing, row spacing, tabs alongside leaders, borders, shading, keep alongside next, widow/orphan control |
| Styles | Built-in manner set, live gallery, Styles pane, create/modify/update styles, manner sets, themes |
| Lists | Bullets, numbering, multilevel, restart, set value, tradition formats |
| Tables | Insert by grid, merge/split, styles alongside banded rows, borders, shading, header rows repeated throughout pages, rows that divided throughout pages, sort, formulas, content ↔ table |
| Pages | Margins, orientation, size, columns, page/column/section breaks, headers and footers (first page, odd/even), leaf numbers, watermark, leaf borders, row numbers, vertical alignment, autumn caps, automatic hyphenation |
| Objects | Pictures (resize, crop, recolour, brightness/contrast, transparency, backdrop removal, image styles, rotate), shapes, content boxes, floating stance alongside content wrapping (square, top and bottom, rearward or in forefront of text) |
| References | Table of contents, footnotes and endnotes, citations and bibliography (APA, MLA, Chicago, IEEE), captions, array of figures, cross-references, index, array of authorities |
| Review | Spelling and grammar alongside suggestions, thesaurus, term count, comments in border balloons or a pane, track changes, accept/reject, difference documents, restrict editing, accessibility checker, document inspector |
| Mailings | Mail merge from CSV, merge fields, location block, salutation line, rules, preview, complete to a document; envelopes and labels |
| View | Print layout, web layout, draft, peruse mode, focus, zoom, one/multiple pages, leaf width, Navigation pane, rulers, gridlines, dreary mode; interface in English, 简体中文, 繁體中文, 日本語, Português (Brasil), Español, Українська, Српски / Srpski, Eesti, Türkçe or Русский (follows the scheme tongue by default) |
| Files | .docx read/write (opens in Word), Word 97-2003 .doc import, PDF export, .odt, .rtf, .html, .md, .tex, .txt import/export, leaf images |
The honest picture, area by area, is in ROADMAP.md, the parity assessment and the generated feature checklist.
git copy https://github.com/storytold/wordcraft cd wordcraft cargo run --release -p wordcraft -- --sample # the desktop app alongside the example document cargo run --release -p wordcraft -- report.docx # open a document
Command line:
wordcraft-cli change report.docx report.pdf # docx, pdf, odt, rtf, html, md, tex, txt, png wordcraft-cli content report.docx # plain text wordcraft-cli inspect report.docx # construction as JSON wordcraft-cli run --template example \ --cmd 'select.text={"text":"Membership"}' --cmd format.bold --save out.docx
Web: cd apps/wordcraft-web && trunk serve, afterward open http://127.0.0.1:8771/?sample.
WordCraft was designed to be driven by group and by AI agents.
claude mcp add wordcraft -- wordcraft-cli mcp # headless documents wordcraft --control 7981 & # or run the operating app… claude mcp add wordcraft-app -- wordcraft-cli mcp --connect 127.0.0.1:7981
Tools contain list_commands, execute, batch, type_text, select_text, inspect_document, render_page, save_document, and, alongside a operating app, screenshot, click and key. Agents can inspect their activity through inspect_document without screenshots. See docs/mcp.md and the control protocol. Macros document any sequence of commands and play it rear (tools.recordMacro, tools.macros).
The desktop app writes its log records to norm error and to logs/wordcraft.log next to its preferences: on Linux $XDG_CONFIG_HOME/wordcraft/logs/ (by default ~/.config/wordcraft/logs/), on macOS ~/Library/Application Support/WordCraft/logs/, on Windows %APPDATA%\WordCraft\logs\. A commencement from a desktop list or the Dock has no terminal, so this document is what to nexus to a bug report: unreadable parts of a .docx, pictures or fonts a PDF export had to depart out and panics the command defender restored from district there. Each initiate moves the former log to wordcraft.1.log (and that one to wordcraft.2.log), so the log of a run that wrecked survives the next start; a log stops expanding at 16 MiB. --version writes no file, and runs alongside WORDCRAFT_NO_PREFS (agents' test runs) log to norm error only. Document content is never logged; a panic communication leaves out the content it quotes.
By default WordCraft's own crates log at info and everything alternatively at warn. RUST_LOG replaces that alongside env_logger-style directives, for example RUST_LOG=debug, RUST_LOG=warn,wordcraft_docx=trace or RUST_LOG=info,wgpu_core=warn; a directive ending in * covers all mark starting alongside it (wordcraft*=debug). The logger is apps/wordcraft/src/logging.rs.
| Layer | Crate | Job |
|---|---|---|
| L0 | wordcraft-geom | units and measurements |
| L1 | wordcraft-doc, wordcraft-fonts, wordcraft-proof | document example and editing; fonts and shaping; spelling, grammar, hyphenation |
| L2 | wordcraft-layout, wordcraft-docx, wordcraft-formats | line breaking, pagination, tables, notes, hit testing; OOXML; ODT/RTF/HTML/Markdown/TXT |
| L3 | wordcraft-render, wordcraft-pdf | rasteriser (vello_cpu); PDF (krilla) |
| L4 | wordcraft-engine | session, undo, 422 commands, Word characteristic catalog |
| L5 | wordcraft-mcp | MCP server |
| L6 | wordcraft-ui-egui | the Word-style forefront end (swappable) |
| apps | wordcraft, wordcraft-cli, wordcraft-web | desktop, command line, browser |
cargo xtask ci runs formatting, clippy, ~800 tests, the asset-attribution check, the layering check and the wasm build. Contributor and delegate instructions: AGENTS.md.
WordCraft is in alpha. It covers 88% of Word's ribbon features alongside commands today; counting depth, document fidelity, stability and the rest, we evaluation it is concerning 60% of the way to replacing all of Word for genuine work, concerning 55% for a representative professional's weekly activity and concerning 63% for everyday essentials. Beta needs evaluation against real-world .docx files, keeping charts and SmartArt through a circular trip, pagination nearer to Word's, a stability clear and native printing. Details and estimates: ROADMAP.md and where we autumn short.
Download WordCraft from GitHub: the latest release has all build listed below, and all releases has before versions and their notes. <ver> in the document names is the type number, and SHA256SUMS.txt lists a checksum for all file.
| Build | Installer | Portable |
|---|---|---|
| x64 (64-bit Intel/AMD) | wordcraft-<ver>-windows-x64.msi | wordcraft-<ver>-windows-x64-portable.zip |
| arm64 (Snapdragon and another ARM PCs) | wordcraft-<ver>-windows-arm64.msi | wordcraft-<ver>-windows-arm64-portable.zip |
| x86 (32-bit) | wordcraft-<ver>-windows-x86.msi | wordcraft-<ver>-windows-x86-portable.zip |
Installers and executables are code-signed.
If the app doesn't open on Windows: the desktop app initializes lone DirectX 12 by default. Letting wgpu additionally create an OpenGL case can collision several graphics drivers (AMD's atio6axx.dll) before the opening 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 directory containing the executable:
$env:WGPU_BACKEND = "vulkan" & .\wordcraft.exe Remove-Item Env:WGPU_BACKEND # reconstruct the default for afterward launches
An definitive gl override can bring the controller collision rear on affected systems. The macOS, Linux and web backend defaults are unchanged.
If the app quits correct following its opening appears alongside "Parent equipment is lost" in the log: WordCraft compiles DirectX 12 shaders alongside FXC, the compiler built into Windows, so it needs no dxcompiler.dll/dxil.dll and ignores any copy another program put on PATH (#603). WGPU_DX12_COMPILER (fxc, dxc, auto) overrides this; alongside dxc, a matching dxcompiler.dll and dxil.dll must sit next to wordcraft.exe. WGPU_BACKEND = "vulkan" also avoids DirectX 12 altogether.
If the app is dilatory on an older Windows PC: whenever DirectX 12 finds no graphics cardstock alongside a driver for it (for example Intel 4th-generation graphics on Windows 11), it lone offers Microsoft's software renderer, which draws all example on the processor. In that case WordCraft uses OpenGL instead, without environment anything. The log document records the choice (lines starting with graphics:). WGPU_BACKEND motionless overrides it, e.g. $env:WGPU_BACKEND = "gl" or "dx12".
| Build | File | Notes |
|---|---|---|
| App, worldwide (Apple silicon + Intel) | wordcraft-<ver>-macos-universal.dmg | Signed and notarized |
| Command-line tool, universal | wordcraft-cli-<ver>-macos-universal.zip | Signed and notarized |
| Format | x86_64 | aarch64 (ARM64) | Notes |
|---|---|---|---|
| AppImage | wordcraft-<ver>-linux-x86_64.AppImage | wordcraft-<ver>-linux-aarch64.AppImage | Runs anywhere; updates itself alongside AppImageUpdate (.zsync files) |
| Flatpak | wordcraft-<ver>-linux-x86_64.flatpak | wordcraft-<ver>-linux-aarch64.flatpak | Sandboxed; flatpak instal --user <file> |
| Debian/Ubuntu | wordcraft-<ver>-linux-x86_64.deb | wordcraft-<ver>-linux-aarch64.deb | |
| Fedora/RHEL/openSUSE | wordcraft-<ver>-linux-x86_64.rpm | wordcraft-<ver>-linux-aarch64.rpm | |
| Tarball | wordcraft-<ver>-linux-x86_64.tar.gz | wordcraft-<ver>-linux-aarch64.tar.gz | Unpack anywhere |
RISC-V (riscv64): wordcraft-<ver>-linux-riscv64.tar.gz, a tarball cross-compiled for glibc 2.39+ (Ubuntu 24.04, Debian 13 and newer).
Arch Linux (AUR). Community members keep three AUR packages; the project doesn't publish to the AUR itself. Install one of them:
| Package | What it installs | Choose it when |
|---|---|---|
| wordcraft-bin | The publish tarball above, prebuilt (x86_64, aarch64) | You desire the latest publish without compiling (quickest) |
| wordcraft | The latest release, built from origin alongside cargo | You favor to build releases yourself |
| wordcraft-git | The current chief branch, built from source | You desire unreleased changes and obtain an occasional damaged build |
For example yay -S wordcraft-bin or paru -S wordcraft-bin.
| Build | File |
|---|---|
| x86_64 | wordcraft-<ver>-freebsd-x86_64.tar.gz |
| Build | File | Notes |
|---|---|---|
| Static site | wordcraft-web-<ver>.zip | Runs in a contemporary browser; presenter it on any fixed server |
WordCraft is among the Crafting Apps: free, open-source imaginative tools from the ArtCraft team, all written from scratch in Rust and all capable to stand on its own.
And ArtCraft itself, our AI depiction and video studio for artists who desire genuine control.
Our Discord is anywhere artists of all benevolent suspend out: group who paint, shoot, draw, cut film, set type, and group motionless figuring out what they akin to make. Share what you're operating on, ask for help, inform us what's broken, or inform us what you desire these tools could do. Whatever your average and nevertheless lengthy you've been at it, you're greeted here.
discord.gg/artcraft · getartcraft.com · The Crafting Apps · WordCraft
WordCraft is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the WordCraft contributors. Required notices are in NOTICE.
Bundled fonts, icons, images and another resources keep their own open licenses; all one is listed with its author, origin and licence in ATTRIBUTION.md.
The orthography dictionary and hyphenation arrive from Grady Ward's public-domain Moby Hyphenator II word list. The example documents and templates are first content written for WordCraft.
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 lone unmodified, and lone as part of this repository and WordCraft, under docs/brand/LICENSE-brand.txt. Forks and modified versions must eliminate them.
Microsoft and Microsoft Word are trademarks of the Microsoft collection 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 another countries. WordCraft 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 lone to depict the workflows it is compatible with.
Made by the ArtCraft squad and community.





