WordCraft is a free, open-source word processor designed as an alternative to Microsoft Word. Developed by the ArtCraft team, it is written in Rust and aims to reproduce familiar Word workflows while providing native applications for desktop operating systems and a browser-based version.
The application goes beyond basic text editing. It includes document formatting, styles, tables, page layout, references, comments, tracked changes, mail merge, and PDF export. It can open and save DOCX files, making it a potential option for users who regularly exchange documents with Microsoft Office users.
WordCraft also includes command-line tools and Model Context Protocol (MCP) integration, allowing compatible AI agents to create, inspect, edit, and export documents programmatically.
Although its feature set is extensive, WordCraft is still approaching maturity for everyday writing. Users who rely on complex Word documents or specialized publishing workflows should test compatibility before making it their primary word processor.
Features
Document Editing and Formatting
WordCraft provides a familiar ribbon-style interface with formatting controls for fonts, sizes, bold and italic text, underlining, colors, highlighting, superscript, and subscript.
It supports paragraph alignment, indentation, line spacing, tabs, borders, shading, and other layout options. The Format Painter lets users copy formatting between document elements, while built-in styles help maintain consistent formatting across longer documents.
The editor also includes AutoCorrect, smart quotes, automatic list formatting, find and replace with regular expressions, and standard undo and redo functionality.
These features make WordCraft suitable for writing reports, letters, essays, and other everyday documents.
DOCX Compatibility and File Formats
WordCraft supports reading and writing Microsoft Word's DOCX format. It also supports importing and exporting ODT, RTF, HTML, Markdown, and plain-text documents.
PDF export produces selectable text and supports links and bookmarks, making it useful for distributing reports and other finished documents.
The ability to work with common document formats is one of WordCraft's main advantages. However, opening a DOCX file does not guarantee that every element will render identically to Microsoft Word. Complex layouts, embedded objects, and less common formatting features should be checked after import.
Styles, Themes, and Page Layout
WordCraft includes paragraph and character styles, style sets, themes, and a live style gallery. Users can create or modify styles to maintain consistent formatting throughout a document.
Page-layout controls include margins, page size, orientation, columns, section breaks, page breaks, headers, footers, page numbers, watermarks, and page borders.
The application also supports automatic hyphenation, line numbering, drop caps, and text wrapping around pictures and shapes.
These capabilities are useful for creating structured reports, academic papers, business documents, and longer publications.
Tables, Images, and Graphics
WordCraft supports tables with merged and split cells, borders, shading, banded styles, sorting, and formulas. Rows can split across pages, and table headers can repeat on subsequent pages.
Images can be inserted, resized, cropped, rotated, recolored, and adjusted for brightness, contrast, and transparency. Additional features include picture styles, shapes, and text boxes with floating positioning and text wrapping.
The editor also supports converting text into tables and tables into text, helping users restructure information without recreating content manually.
References and Academic Writing
WordCraft provides a collection of tools for structured and academic documents, including:
Automatic tables of contents.
Footnotes and endnotes.
Citations and bibliographies in APA, MLA, Chicago, and IEEE styles.
Captions and tables of figures.
Cross-references and indexes.
Tables of authorities.
These tools make WordCraft particularly interesting for students, researchers, and professionals who work with long documents containing references and supporting material.
Users preparing formal academic submissions should verify that the generated references and formatting comply with their institution's requirements.
Comments, Track Changes, and Proofreading
WordCraft includes comments displayed in document margins or a dedicated pane. Track Changes allows users to review edits and accept or reject individual changes.
Document comparison, spelling and grammar suggestions, a thesaurus, word counting, and an accessibility checker provide additional support for reviewing and refining documents.
The application also includes document inspection and editing restrictions.
These features are valuable for collaborative editing and document review, although teams should test their specific review workflows before replacing established Microsoft Word processes.
Mail Merge
WordCraft supports mail merge using CSV data sources and document fields. Users can insert merge fields, configure address blocks and greeting lines, preview personalized documents, and generate merged output.
Envelope and label tools are also included.
This can help automate repetitive administrative tasks such as generating letters, notices, certificates, and personalized business documents.
AI and Command-Line Automation
WordCraft is designed to support both manual editing and programmatic document manipulation. Its editing engine exposes commands that are shared across the graphical interface, keyboard shortcuts, command search, CLI, JSON control channel, and MCP server.
The command-line interface supports document conversion, text extraction, structural inspection, rendering, and scripted editing.
For example, convert a Word document to PDF:
wordcraft-cli convert report.docx report.pdf
Extract its text:
wordcraft-cli text report.docx
Inspect the document structure as JSON:
wordcraft-cli inspect report.docx
These capabilities make WordCraft useful for batch processing, document-generation pipelines, and AI-assisted workflows. Compatible agents can inspect documents and execute editing commands without relying exclusively on screenshots or mouse interaction.
Download WordCraft v0.8.0 - Software Mirrors |
|---|
WordCraft v0.8.0 for Windowswordcraft-0.8.0-windows-x86.msi | 76.35 MB wordcraft-0.8.0-windows-x86-portable.zip | 91.48 MB wordcraft-0.8.0-windows-x64.msi | 77.56 MB wordcraft-0.8.0-windows-x64-portable.zip | 94.06 MB wordcraft-0.8.0-windows-arm64.msi | 74.72 MB wordcraft-0.8.0-windows-arm64-portable.zip | 91.41 MB |
WordCraft v0.8.0 for macOSwordcraft-cli-0.8.0-macos-universal.zip | 83.61 MB wordcraft-0.8.0-macos-universal.dmg | 104.01 MB |
WordCraft v0.8.0 for Linuxwordcraft-0.8.0-linux-x86_64.tar.gz | 94.97 MB wordcraft-0.8.0-linux-x86_64.rpm | 95.74 MB wordcraft-0.8.0-linux-x86_64.flatpak | 68.42 MB wordcraft-0.8.0-linux-x86_64.deb | 96.27 MB wordcraft-0.8.0-linux-x86_64.AppImage.zsync | 317.28 kB wordcraft-0.8.0-linux-x86_64.AppImage | 90.58 MB wordcraft-0.8.0-linux-riscv64.tar.gz | 93.91 MB wordcraft-0.8.0-linux-riscv64.rpm | 94.7 MB wordcraft-0.8.0-linux-riscv64.deb | 95.05 MB wordcraft-0.8.0-linux-aarch64.tar.gz | 92.32 MB wordcraft-0.8.0-linux-aarch64.rpm | 93.63 MB wordcraft-0.8.0-linux-aarch64.flatpak | 65.56 MB wordcraft-0.8.0-linux-aarch64.deb | 94.28 MB wordcraft-0.8.0-linux-aarch64.AppImage.zsync | 308.02 kB wordcraft-0.8.0-linux-aarch64.AppImage | 87.94 MB |
WordCraft v0.8.0 for BSDwordcraft-0.8.0-freebsd-x86_64.tar.gz | 97.74 MB |
Others Download related to WordCraft v0.8.0wordcraft-web-0.8.0.zip | 15.15 MB |
WordCraft v0.8.0 Source Code
WordCraft v0.8.0 Source code (zip)
WordCraft v0.8.0 Source code (tar.gz)
|
WordCraft v0.8.0 Release Notes: What's Changed- CI: main passes again (Word 2003 check reads through io; first keystroke after a chrome click isn't dropped) by @dkhlapov in #1578
- Interface-translation audit green and back in CI (#1128) by @dkhlapov in #1143
- Double-click the margin to create and edit a header or footer (#960) by @dkhlapov in #1144
- Alt+numpad character codes (#961) by @dkhlapov in #1146
- Review › Language reaches every proofing language (#860) by @dkhlapov in #1151
- Dark theme: the ruler text area is lighter than its margins by @marcoarnulfo in #1154
- Print: the preview fills the pane, with a zoom bar and scrolling both ways by @marcoarnulfo in #1157
- Zotero: text typed just after a citation goes outside its field by @marcoarnulfo in #1162
- Layout: a list label moves with its text when the paragraph is aligned (#1159) by @Silvertree2010 in #1163
- CI: translate Croatian in every interface catalog by @echelon in #1719
- Full screen on F11 and View › Window › Full Screen (#980) by @dkhlapov in #1153
- Layout: a paragraph ending with a page break leaves its space after on the old page by @naxvog in #1168
- Picture transparency/corrections/color are absolute from the original + transparency slider by @DevCoderMax in #1175
- Fonts embedded in a .docx lay out and export its text by @marcoarnulfo in #1176
- Layout: table rows share their cell margins and split across pages like Word by @naxvog in #1177
- Stop Space and Enter from resetting the X11 input context by @raythurman2386 in #1179
- Equations: bound parser tree depth, escape \text in LaTeX, merge runs everywhere (#1456) by @vangel76 in #1457
- i18n: add Vietnamese (vi) interface translation by @Nghiathan13 in #1458
- Tables: thick cell borders meet in closed corners by @dfgodvan in #1461
- Close prompt: a failed Save says why and keeps the document open (#1445) by @dkhlapov in #1465
- Metafile: WMF object table without scanning, in-place shape ops, cropped DIB decode (#1463) by @vangel76 in #1466
- i18n(hu): align two new rows with the catalog terms by @Skaywalker in #1469
- References: TOC entries carry their headings' list numbers by @dfgodvan in #1470
- PDF: draw horizontal and vertical lines inside groups by @cyril265 in #1474
- Layout: PAGE fields on the later pages of a paragraph show their own page (#1352) by @dkhlapov in #1481
- fix(proof): classify each whitespace token once when checking spelling (#1335) by @saadkhantareen in #1490
- Shapes: rounded rectangles keep their own corner radius by @cyril265 in #1476
- Fields: PAGEREF in headers and footers shows its bookmark's page by @cyril265 in #1477
- Ctrl+A stays on this page, and in a table grows cell, then row, then table, then the document (#1424) by @ImpotStite in #1478
- Word 365 cover pages: page-relative positions and freeforms drawn back to their start (#743) by @benandez in #1487
- Fix Replace All bypassing content-control locks by @MMexicann in #1488
- RTF import: keep section breaks and their page settings (#1378) by @dkhlapov in #1495
- Save As: fill the file type list (#1399) by @dkhlapov in #1497
- HTML import: bold header cells, cell alignment and the region paper (#1381) by @dkhlapov in #1494
- Custom page sizes: Size › More Paper Sizes and Page Setup width/height (#1433) by @dkhlapov in #1496
- Dark page: highlights are dimmed so the text on them stays readable (#1252) by @dkhlapov in #1498
- Fix mini toolbar positioning while scrolling by @shlok2721-web in #1501
- Canvas: draw colour emoji on screen as the PDF does (#1269) by @dkhlapov in #1504
- .doc import: cell shading, column count and merged cells (#1380) by @dkhlapov in #1507
- Layout: long tables keep one layout per cell and relayout without re-measuring by @dfgodvan in #1492
- Layout: a paragraph continued into the next column wraps around a shape there (#1374) by @dkhlapov in #1505
- ODT import: keep each section’s page properties (#1379) by @dkhlapov in #1506
- PDF export: Hebrew and Arabic text extracts in reading order (#1383) by @dkhlapov in #1508
- Web: image paste goes to the active edit target (#1349) by @dkhlapov in #1513
- Track Changes and content controls: table delete, Change Case and Unlink Fields respect them (#1329) by @dkhlapov in #1514
- PDF export: All Caps text extracts correctly (#1473) by @dkhlapov in #1509
- Web: New/Open waits for Save before discarding the document (#1315) by @dkhlapov in #1510
- Document Inspector: find hidden text outside the body and from styles (#1344) by @dkhlapov in #1515
- RTF: read and write tracked changes (insertions, deletions, authors, times) by @dkhlapov in #1516
- Canvas: alignment guides while dragging pictures and shapes by @dkhlapov in #1519
- Draw: Ink to Shape recognises arrows by @dkhlapov in #1520
- fix(math): preserve equation text color on save/load (#1467) by @mjohnson7cd in #1525
- fix(proof): British spellings such as honour and prioritise are not flagged (#40) by @HyakoV3 in #1536
- ODT: read and write tracked changes (text:tracked-changes) by @dkhlapov in #1517
- fix(pdf): inline pictures keep their alt text in tagged PDF (#1502) by @HyakoV3 in #1526
- proof: Turkish spelling, suggestions, grammar and hyphenation by @yeniufuklar-com in #1527
- ODT and .doc import: pictures are read once, within their byte budget (#1334) by @rabis7575 in #1554
- macOS: the title bar fits around the traffic lights as macOS draws them by @kkilchrist in #1559
- CI: Turkish review-command test skips without a Turkish dictionary by @echelon in #1752
- --help and -h print the usage for the app and every CLI command (#968) by @Nael-Nathanael in #977
- fix(cli): reject invalid page and scale arguments by @NavidZamanKhan in #982
- Native print test: fixed PDF creation date, no flaky byte comparison (#987) by @dkhlapov in #990
- Tables: AutoFit in a nested table, whole cells shaded for a selection through a table, Shift+Right at a cell's end by @rabis7575 in #1004
- Reset table tools on table deletion and preserve Draw Table outside tables by @y2w8 in #1006
- fix(markdown): preserve table cells containing code spans and pipes by @NavidZamanKhan in #1009
- Focus hides the ribbon, status bar and panes; Escape brings them back by @marcoarnulfo in #1017
- Ribbon tabs that don't fit move to a » menu instead of under Comments by @marcoarnulfo in #958
- i18n(cs): wording fixes after #387 by @Losminek in #973
- #916: Cross-reference opens a dialog by @justinjohn0306 in #1003
- feat(engine): rename documents from the title bar and open account settings from the badge by @neupaneprashant in #1016
- Track Changes: rejecting a whole inserted paragraph keeps the next paragraph's style and numbering by @przemek-arch in #1020
- Caret: Down and Up from a line start beside a table go into it, not past it by @rabis7575 in #1021
- macOS: Control-click opens the context menu, with its spelling suggestions by @marcoarnulfo in #1025
- DOCX: a hyperlink with an empty target is no link (#1005) by @vangel76 in #1030
- i18n(cs): complete the Czech catalog (built-in styles, equation gallery) by @Losminek in #978
- One Page and the zoom are saved with the document and restored when it is reopened by @marcoarnulfo in #1023
- DOCX: keep Office 2016 charts (cx:chart) and their data when saving by @marcoarnulfo in #1029
- Table eraser: borders beside vertically merged cells merge as in Word (#1039) by @vangel76 in #1044
- Layout: keep with next moves the heading when the next paragraph moves for widow control (#966) by @albayazid in #1049
- Ribbon menu buttons carry their name for accessibility by @tarpescu in #1050
- Page background: picture and texture fills are drawn and kept on save (#999) by @vangel76 in #1036
- Ribbon: holding a press no longer scrolls the document (#1019) by @lasse-tech in #1041
- Track Changes: deletions inside a field result are tracked, accepted and saved (#1037) by @vangel76 in #1043
- feat(ui): implement Ctrl+drag to copy objects on canvas by @guruswarupa in #1046
- fonts: Add platform-specific Hebrew font support by @H0ruu1 in #1052
- DOCX: merge settings.xml into the original instead of regenerating it (#1034) by @przemek-arch in #1059
- CI: Hebrew font substitution test expects David only on Windows by @echelon in #1790
- Comments: a click inside a selected balloon moves the caret in its text (#1013) by @lasse-tech in #1051
- UI: mini toolbar steps aside for the ribbon by @Toddpe in #1069
- Docs: encrypted DOCX row, duplicate document-grid rows, dated issue count by @vangel76 in #1072
- Contributors: add Sazid Al Bayazid (albayazid) to people.toml by @albayazid in #1074
- UI: combo boxes join their dropdown arrow (field rounded left, arrow right) by @Toddpe in #1083
- Proofing: a Dictionaries folder setting, and the dictionary each language found (#1063) by @witkowski01 in #1084
- CI: park the mini-toolbar scroll test that #1501 and #1069 disagree on by @echelon in #1834
- DOCX: carry unmodelled parts; keep comment ids, style defaults, latent styles, list ids and app props (#1034) by @przemek-arch in #1060
- Comments: an option to show only the selected text's comment (#1055) by @lasse-tech in #1066
- Docs: gaps.md re-audited against main by @vangel76 in #1071
- README: install on Gentoo from the ::snakebyte overlay by @switch87 in #16
- macOS packaging: strip extended attributes before signing and verify the DMG's app strictly (#525) by @vangel76 in #527
- fix(layout): match Word's contextual paragraph spacing by @OPUZZLES in #568
- STYLEREF fields show each page's result in headers and footers (#775) by @dkhlapov in #882
- Mail merge: .xls recipients, legacy encodings, Filter and Sort (#778) by @dkhlapov in #885
- .doc: open password-protected Word 97–2003 files (RC4, RC4 CryptoAPI, XOR) (#1079) by @vangel76 in #1087
- fix(layout): prevent list labels from inflating line height by @OPUZZLES in #601
- Russian proofing: spelling, suggestions, grammar and word division by @xmaks82 in #894
- File: recover unsaved work after a crash (#518) by @OPUZZLES in #586
- fix(layout): preserve legacy table paragraph spacing by @OPUZZLES in #577
- STYLEREF review follow-ups: headers stay cached, switch labels in our own words (#1286) by @dkhlapov in #1294
- CI: recovery pruning test retries a scan that a lock race skipped by @echelon in #1849
- Word forms keep their legacy form fields and rows' skipped grid columns when saved by @marcoarnulfo in #1184
- Keytips: Alt, J, T and Alt, J, L open the table tabs like Word by @marcoarnulfo in #1185
- Modify Style picks its font from the font box the ribbon uses by @marcoarnulfo in #1187
- UI: fix Select icon polygon rendering by @marc-antoine-girard in #1193
- Desktop: a maximized window no longer flashes on and off at start-up on Windows (#23) by @tlomts-dev in #1194
- Tables: Select All then Delete removes a table the document starts with; right-click Delete offers Delete Table again by @marcoarnulfo in #1202
- Right-click on a table of contents entry offers Update Field by @marcoarnulfo in #1203
- Navigation pane headings align left, indented under their parent by @marcoarnulfo in #1204
- Layout menus mark the current margins, orientation, size and columns by @marcoarnulfo in #1214
- Ctrl+Q resets the paragraph without also closing the window by @marcoarnulfo in #1220
- Ctrl+wheel zoom keeps the place under the pointer instead of scrolling the page away by @marcoarnulfo in #1226
- Harden against hostile-document DoS and non-web link export by @JeremyYao in #1235
- i18n(it): translate the 24 strings other catalogs added since #598 by @fabiodalez-dev in #1244
- Fonts: the interface CJK fallback skips faces without outlines by @dotCooCoo in #1250
- fix: remove dead-code unwrap_or magic string in percent_decode by @ahutsunshin in #1257
- Cut copies to the system clipboard from every control by @tarpescu in #1256
- fix: remove unreachable empty-string branch in open_bytes_with match by @ahutsunshin in #1258
- Accessibility: Windows Magnifier follows the caret onto a new line (#1119) by @rabis7575 in #1247
- Desktop: a window too big for its screen shrinks to fit when it opens (#1215) by @rabis7575 in #1253
- feat: add SVG and ICO MIME types to mime_of helper by @ahutsunshin in #1262
- Table Layout: the Cell Size boxes apply to the whole selection (#1242) by @Silvertree2010 in #1276
- Insert › Bookmark: Delete and Go To, laid out as Word's (#1236) by @rabis7575 in #1277
- Improve Polish spelling suggestions for final consonant devoicing by @neronek22 in #1298
- fix(ui): prevent options pane labels from overflowing (#1266) by @Zaxaerith in #1301
- CI: Select All + Delete test presses Select All until the document is selected by @echelon in #1865
- Layout: inside/outside floats swap sides on even pages; Page Setup shows mirror margins (#1181) by @LloydNicholson in #1239
- refactor: deduplicate ZIP and OLE magic number constants in io.rs by @ahutsunshin in #1260
- UI: view-mode tooltips, SmartArt labels and TOC style names follow the interface language by @andrejskvorc in #1272
- Restrict Editing: filling in forms opens fillable content controls (#1077) by @edurbs in #1309
- fix(ui): drag a Behind Text picture or shape over the text it overlaps by @mute-09 in #1313
- Word's text watermark in DOCX: drawn on screen and in the PDF, and kept on save (#1290) by @mmazzieri in #1328
- Insert Hyperlink: Link to › Place in This Document (#1234) by @Silvertree2010 in #1370
- An empty .docx opens as a blank document that saves back to it (#1384) by @rabis7575 in #1387
- Scripts can't close a document with unsaved changes without force (#1268) by @dkhlapov in #1391
- Paragraph dialog: leave mixed formatting alone, apply as one undo step (#1346) by @rabis7575 in #1397
- fix(geom): measurement parser rejects overflow to infinity during unit conversion (#1359) by @krinry in #1398
- xtask assets: fail when git ls-files fails, read raw NUL-separated paths (#1364) by @rabis7575 in #1401
- Mouse wheel keeps scrolling while a text selection is being dragged (#1388) by @MarekSpodBiedry in #1402
- Save preferences through a temporary file and log write failures (#1361) by @MarekSpodBiedry in #1404
- RTF import decodes Unicode escapes in font names (#1360) by @MarekSpodBiedry in #1406
- MCP type_text reports a refused paragraph break instead of typing the next line (#1356) by @MarekSpodBiedry in #1407
- Print to PDF and PNG export replace the file only after it is fully written (#1355) by @MarekSpodBiedry in #1408
- Restart Numbering keeps the list's own level definitions (#1351) by @MarekSpodBiedry in #1409
- Document::delete_range checks both ends before editing, so an error leaves the document unchanged (#1350) by @MarekSpodBiedry in #1410
- Styles gallery shows Word's quick styles for DOCX files that mark none, e.g. from LibreOffice (#1238) by @dkhlapov in #1394
- Outline Promote, Demote, Move Up and Move Down add one undo step instead of two (#1363) by @MarekSpodBiedry in #1403
- DOCX: cap the depth of header/footer parts that reference further headers/footers (#1322) by @MarekSpodBiedry in #1415
- Convert Text to Table refuses to drop fields or a table in the selection (#1318) by @MarekSpodBiedry in #1416
- Layout: formats past 65,536 in one paragraph keep their own style (#1340) by @rabis7575 in #1421
- #967: keep with next, keep lines together, page break before and widow control list their {"value"?: bool} by @Nael-Nathanael in #1427
- wordcraft --control checks its port (#1426) by @Nael-Nathanael in #1436
- #1376: a word too wide for the strip beside a floating picture moves on whole by @Nael-Nathanael in #1439
- DOCX: draw VML preset shapes such as Word's right arrow (#1377) by @Nael-Nathanael in #1442
- Picture Format › Crop: crop handles on the canvas by @dkhlapov in #1447
- Canvas: a redrawn page goes to egui as rendered, without a round trip through straight alpha by @spiritbearlabs in #1450
- Markdown import: brackets no longer turn later links in the paragraph into plain text (#1452) by @rabis7575 in #1453
- JSON open repairs hostile run lengths (#1337) by @justinjohn0306 in #1412
- Free part, list and comment ids after a file's largest ones (#1338) by @rabis7575 in #1428
- Page Setup: Justified vertical alignment (#1320) by @dkhlapov in #1435
- insert.picture and insert.icon leave the caret after the picture (#965) by @Nael-Nathanael in #1437
- macOS: Word for Mac's keys for Save As, Insert Endnote, New Comment, Replace and the ribbon (gap #24) by @spiritbearlabs in #1438
- Proofing: status bar flags a language whose dictionary isn't installed (#1167) by @vangel76 in #1441
- A file name that isn't valid Unicode no longer crashes wordcraft-cli or the app (#1440) by @Nael-Nathanael in #1444
- fix(engine): handle multi-byte UTF-8 characters before em-dash in dash_autoformat by @divyanshu2074 in #1570
- fix(engine): trim arguments when parsing sample text formulas by @divyanshu2074 in #1571
- .doc import: notes, headers and text boxes read their text once (#1319) by @rabis7575 in #1572
- Layout: widow control moves a three-line paragraph whole by @przemek-arch in #1575
- Lists: Russian letter numbering draws а) б) в) instead of digits by @alik654zx in #1577
- Flat OPC: reading bounded everywhere in the file, CDATA base64 read (#1353) by @rabis7575 in #1580
- Text boxes in tables nested deeper than 16 survive edits (#1339) by @rabis7575 in #1591
- Layout: a table's percentage width past 100% is kept by @finwarman in #1598
- Layout: page numbers can restart at 0 by @finwarman in #1601
- Save Changes prompt takes the keyboard from the page (#1597) by @alik654zx in #1602
- Comments: deleting a comment leaves no dangling anchors or replies (#1345) by @squaredcow in #1565
- All Caps draws ß as SS, as Word does (#1581) by @dkhlapov in #1583
- Italian proofing: po', qual è, È and un/un' grammar rules; more elisions in spelling by @lupant in #1585
- Respect the image byte limit during DOC DIB conversion by @haranishi in #1590
- Shapes: a right triangle keeps its right angle by @finwarman in #1599
- Equations: a multi-letter subscript stays whole after build-up by @marcoarnulfo in #1623
- Tabs left of the margin stay on a default stop they already sit on (Word) by @Morzilla in #1631
- CI: VML shape type 6 is a right triangle in the preset-mapping test by @echelon in #1900
- CI: the rtTriangle VML fixture draws a right triangle by @echelon in #1909
- Layout: a page break followed by another page start makes one page by @finwarman in #1611
- Layout: a bookmark after a page break takes no line by @finwarman in #1615
- Layout: a numbered paragraph opening with a page break takes its number along by @finwarman in #1616
- Tables: text running past an exact-height row is cut off by @finwarman in #1617
- Tables: a row with less room than its minimum height moves on whole by @finwarman in #1618
- Layout: an empty section mark stays on a full page by @finwarman in #1614
- Layout: an inherited footer sizes its percentage tables by its own section by @finwarman in #1620
- Layout: paragraph spacing adds up when HTML auto spacing is off by @finwarman in #1612
- Fonts: a missing roman font is drawn in Cambria, as in Word by @finwarman in #1613
- Fonts: a Bidi theme slot names the theme's complex-script font by @finwarman in #1619
- Escape selects a text box or WordArt, so Delete removes it (#1538) by @Yasas-Sri in #1604
- i18n(it): the interface audit checks Italian; Privacy Settings wording; envelope label test by @D13GOOOO in #1627
- A floating object anchored after a page break stays on the page its paragraph starts on by @Morzilla in #1632
- View Gridlines outlines header and footer tables (#1628) by @benandez in #1633
- DOCX: keep a bare w:pgNumType when saving by @lhymes in #1634
- DOCX: keep an explicit horizontal w:textDirection when saving by @lhymes in #1635
- Draw arrowheads on open freeform paths by @finwarman in #1645
- DOCX: keep w:formProt when saving by @lhymes in #1636
- DOCX: keep row-level w:tblPrEx when saving by @lhymes in #1637
- M12: preserve document properties when importing legacy DOC and DOT by @LabDennis in #1640
- Shapes: draw flowchart OR spokes by @finwarman in #1644
- ODT import: text after a drawing shape stays in its paragraph (#1654) by @benandez in #1657
- Layout: empty line breaks do not move floating tables by @finwarman in #1658
- RTF import: Mac OS Roman and DOS code pages (
\mac, \pc, \pca) (#1653) by @D13GOOOO in #1661 - Dropping several images inserts all of them (#1592) by @MarekSpodBiedry in #1664
- Copy puts the formatted text on the system clipboard as HTML, not only copies with equations (#1523) by @MarekSpodBiedry in #1667
- CLI PDF export: Arabic and Persian fall back to the craft-fonts Arabic face (#1652) by @benandez in #1668
- TOC page numbers reach the right margin of the TOC's section, and no blank line above imported entries by @dfgodvan in #1686
- engine: store replacement images under their true format extension by @midasmatterhorn in #1691
- Open on the Home tab every launch, as in Word (#1699) by @matstrange in #1700
- Tables: repeated header rows move to the next page with the first row (#1704) by @dfgodvan in #1705
- Text typed after a footnote or endnote number is no longer superscript (#1593) by @MarekSpodBiedry in #1663
- Layout: field instructions do not add blank paragraphs by @finwarman in #1665
- Layout: hide labels on page-break-only list paragraphs by @finwarman in #1673
- Shift+Delete cuts the selection on macOS and Linux too (#1669) by @D13GOOOO in #1676
- M15.1: print-area strings translated in every interface catalog by @leoncral in #1702
- A click on the ribbon's chrome keeps typing in the document (#1093 follow-up) by @matstrange in #1703
- Tables: honor consistent preferred cell widths by @finwarman in #1709
- Docs: merge table rows that conflict resolutions left duplicated by @echelon in #1936
- Legacy VML freeforms (header rule lines) are drawn and kept on save by @mmazzieri in #1659
- CI: both recovery scan-error tests retry a scan a lock race skipped by @echelon in #1939
- Fix blurred text in Web and Draft Layout on long documents by @ripdog in #1152
- Shortcuts: more of Word's default keys (Insert-key clipboard, F2 file keys, field and outline keys) (gap #24) by @rp6186030 in #1166
- feat(print): add orientation support and pass landscape options to spooler by @emre-clk91 in #1389
- perf: lowercase HTML tag names during collection to avoid double String allocation by @ahutsunshin in #1261
- Proofing: Vietnamese text under the default English language gets no marks by @haisondb35-blip in #1553
- fix(formats): preserve leading whitespace in markdown escape_line_start by @divyanshu2074 in #1568
- Web: add option to load system installed fonts in dropdown by @GhostMitra in #1390
- Table Layout › Sort opens a Sort dialog: column, order and header row by @marcoarnulfo in #1205
- Table Layout › Formula opens a Formula dialog with Word's suggested formula by @marcoarnulfo in #1210
- i18n: add Korean UI catalog and font fallback (from #1216) by @echelon in #1955
- CI: recovery tests retry a load a lock race refused by @echelon in #1957
- i18n: add Swedish (sv) interface translation by @holmbom in #1219
- i18n: add Croatian (hr) interface translation by @andrejskvorc in #1271
- Ita Translate: Italian Reading Mode column widths (from #1040) by @echelon in #1959
- Margins and page sizes: follow the measurement unit and keep translated names by @andrejskvorc in #1274
- Tables: Backspace after a nested table stays in its cell by @rbr48 in #906
- get_text and CLI text omit tracked deletions (#866) by @ImpotStite in #944
- M1: fields keep w:dirty through saves; computing a result clears it (#877) by @edurbs in #946
- Docs: drop a stray merge marker from the ROADMAP progress log by @echelon in #1962
- fix(references): clear imported TOC field result on update (#878) by @Totopo27 in #953
- Tables: one selected cell's border drags in its row only by @rabis7575 in #970
- Tab stops: edit on the ruler (corner selector, click, drag, drag off) and an inline-edit table in the Tabs dialog by @iot-root in #976
- proof: Czech (cs-CZ) spelling from the installed Hunspell dictionary by @Losminek in #1048
- CI: rustfmt the proofing language list by @echelon in #1970
- layout.pageSetup validates its section values (#1582) by @dkhlapov in #1584
- Tables: preserve row table border exceptions by @finwarman in #1708
- Fields: refresh unlocked DATE and TIME when a document is opened by @Hamza0101 in #1679
- Table style editor formats every table style part (#714) by @dkhlapov in #887
- CI: drop a duplicate contributor entry in people.toml by @echelon in #1977
- Recovery: a record lock held for a moment is waited out, not skipped by @echelon in #1979
- Table style review follow-ups: No Border on inherited parts, cell Top beats the style (#1288) by @dkhlapov in #1296
- Tables: formulas with cell references, functions, number formats and F9 by @rbr48 in #907
- fix(ui): draw Arabic and other non-Latin comment text in balloons by @ms-youssef in #950
- #954: macOS ⌘←/⌘→ go to the line's start and end by @justinjohn0306 in #972
- Use the shared PDF writer while preserving WordCraft export behavior by @skylartaylor in #1558
- ci: add nix check workflow by @dylanmtaylor in #2307
- Shorten Russian "Accessibility" label so it fits the options sidebar by @Silvertree2010 in #2672
- #2717: keep inherited proofing choices in Language dialog by @OPUZZLES in #2736
New Contributors- @raythurman2386 made their first contribution in #1179
- @Nghiathan13 made their first contribution in #1458
- @dfgodvan made their first contribution in #1461
- @cyril265 made their first contribution in #1474
- @saadkhantareen made their first contribution in #1490
- @ImpotStite made their first contribution in #1478
- @benandez made their first contribution in #1487
- @MMexicann made their first contribution in #1488
- @shlok2721-web made their first contribution in #1501
- @mjohnson7cd made their first contribution in #1525
- @HyakoV3 made their first contribution in #1536
- @kkilchrist made their first contribution in #1559
- @y2w8 made their first contribution in #1006
- @Losminek made their first contribution in #973
- @neupaneprashant made their first contribution in #1016
- @albayazid made their first contribution in #1049
- @tarpescu made their first contribution in #1050
- @lasse-tech made their first contribution in #1041
- @guruswarupa made their first contribution in #1046
- @H0ruu1 made their first contribution in #1052
- @Toddpe made their first contribution in #1069
- @marc-antoine-girard made their first contribution in #1193
- @tlomts-dev made their first contribution in #1194
- @dotCooCoo made their first contribution in #1250
- @ahutsunshin made their first contribution in #1257
- @neronek22 made their first contribution in #1298
- @Zaxaerith made their first contribution in #1301
- @andrejskvorc made their first contribution in #1272
- @mute-09 made their first contribution in #1313
- @mmazzieri made their first contribution in #1328
- @krinry made their first contribution in #1398
- @spiritbearlabs made their first contribution in #1450
- @divyanshu2074 made their first contribution in #1570
- @alik654zx made their first contribution in #1577
- @finwarman made their first contribution in #1598
- @squaredcow made their first contribution in #1565
- @lupant made their first contribution in #1585
- @haranishi made their first contribution in #1590
- @Morzilla made their first contribution in #1631
- @D13GOOOO made their first contribution in #1627
- @lhymes made their first contribution in #1634
- @LabDennis made their first contribution in #1640
- @midasmatterhorn made their first contribution in #1691
- @matstrange made their first contribution in #1700
- @leoncral made their first contribution in #1702
- @emre-clk91 made their first contribution in #1389
- @haisondb35-blip made their first contribution in #1553
- @holmbom made their first contribution in #1219
- @rbr48 made their first contribution in #906
- @Totopo27 made their first contribution in #953
- @iot-root made their first contribution in #976
- @Hamza0101 made their first contribution in #1679
- @ms-youssef made their first contribution in #950
Full Changelog: v0.7.0...v0.8.0 |
Performance and Compatibility
WordCraft is written in Rust and uses a modular architecture for document editing, typography, pagination, rendering, and file conversion. Its interface uses the native GPU-oriented egui framework rather than Electron or Tauri.
The project emphasizes responsive editing through cached paragraph layout and on-demand page rendering. Its developers report that typing in a 188-page document triggers layout recalculation in approximately 1.4 milliseconds. This is a project-reported benchmark rather than an independent performance test.
WordCraft supports macOS, Windows, Linux, BSD, and browsers through WebAssembly. It can read and write DOCX files and supports several additional document formats.
The main limitation is compatibility maturity. The project's roadmap identifies real-world DOCX testing, native printing, and signed application builds as remaining work. Charts, SmartArt, the equation editor, and the Draw tab are also listed as future development areas.
Consequently, WordCraft should not yet be assumed to offer complete feature parity with Microsoft Word, particularly for complex business documents and specialized workflows.
System Requirements
Operating systems: Windows, macOS, Linux, and BSD.
Browser support: WebAssembly build for compatible browsers.
Document formats: DOCX, ODT, RTF, HTML, Markdown, and plain text.
Export: PDF and page images, in addition to supported document formats.
Build requirements: Rust and the project's documented dependencies.
The project does not provide a comprehensive minimum hardware specification in the information reviewed. Actual performance will depend on document complexity, fonts, embedded images, and system resources.
Pros and Cons
Pros
Free and open-source under the MIT or Apache 2.0 license.
Familiar ribbon-style interface inspired by Microsoft Word.
DOCX reading and writing support.
Extensive formatting, styles, tables, and page-layout tools.
References, citations, footnotes, indexes, and tables of contents.
Comments, Track Changes, and proofreading tools.
Mail merge with CSV data sources.
PDF export with selectable text, links, and bookmarks.
Native desktop applications and a browser-based version.
CLI and MCP support for document automation.
Offline spelling and grammar features without requiring cloud processing.
Cons
Still approaching maturity for everyday writing and production use.
Complex DOCX compatibility needs more real-world validation.
Native printing and signed application builds remain development priorities.
Charts, SmartArt, and the equation editor are not yet complete features.
Does not provide full Microsoft Word feature parity.
Professional workflows may require additional testing and workarounds.
How to Install
The simplest option is to download a package from the project's GitHub Releases page, if a suitable build is available for your operating system.
To build and run WordCraft from source, install Rust and the required development dependencies, then execute:
git clone https://github.com/storytold/wordcraft
cd wordcraft
cargo run --release -p wordcraft -- --sample
To open an existing document:
cargo run --release -p wordcraft -- report.docx
For browser-based use, navigate to the web application directory and start the development server:
cd apps/wordcraft-web
trunk serve
The development server will provide a local address for opening WordCraft in a browser. Refer to the official repository for detailed build dependencies, release packages, and platform-specific instructions.
Final Verdict
WordCraft is an ambitious open-source word processor that combines familiar document editing with advanced formatting, references, review tools, mail merge, and automation. Its support for DOCX and PDF, together with additional formats and offline functionality, makes it a promising alternative for users who want more control over their document workflow.
Its command-line interface and MCP integration are especially interesting for developers and organizations that generate or process documents programmatically. The extensive feature set also makes it worth exploring for students, writers, and office users.
The biggest concern is maturity. WordCraft covers many of Microsoft Word's ribbon features, but feature coverage is not the same as complete behavioral compatibility. Users who depend on complex documents, advanced diagrams, equations, or established printing workflows should test their files carefully before switching.
For everyday writing and experimentation with open-source office software, WordCraft is worth trying. For mission-critical document production, it is better treated as a developing alternative until its compatibility and printing workflows have been validated against real-world requirements.
Post a Comment/Report Broken Link: