PdfCraft is a free, open-source PDF application designed as an alternative to Adobe Acrobat. Built from scratch in Rust, it combines PDF viewing, document organization, page management, file merging, splitting, and encryption tools in a native desktop application.

Unlike cloud-based PDF services, PdfCraft is designed to process documents locally without requiring an account, telemetry, or cloud processing. It supports Windows, macOS, Linux, and FreeBSD, with a WebAssembly version that runs in a browser.

PdfCraft is particularly interesting for users who want a lightweight, privacy-focused PDF workbench without a subscription. However, it is still an early-stage project, and users who depend on advanced PDF editing, digital signatures, or OCR should consider its current limitations before adopting it.

Features

PDF Viewing and Search

PdfCraft provides a document viewer with text selection, page navigation, and search-as-you-type functionality. Its text selection follows the document's reading order, making it easier to select and copy content from complex layouts.

The renderer is designed to handle international text, vertical Japanese writing, color emoji, and transparency. The application also includes a dark theme and two-page reading mode for a more comfortable reading experience.

A command palette provides quick access to tools and commands, reducing the need to navigate through multiple menus.

Organize and Rearrange Pages

PdfCraft includes a visual page organizer that makes managing PDF documents straightforward. Users can rotate, delete, insert, and reorder pages, with undo support for reversing changes.

These tools are useful for rearranging reports, removing unwanted pages, correcting scanned documents, and assembling documents in the desired order.

The application also supports incremental editing and atomic saves, alongside autosave and crash recovery features designed to reduce the risk of losing work.

Merge, Extract, and Split PDFs

PdfCraft allows users to combine multiple PDF files into a single document, extract selected pages, and split documents into smaller files.

Its document-processing engine aims to preserve important PDF structures during these operations, including links, form fields, layers, and bookmarks.

This makes it useful for administrative work, combining reports, preparing documents for submission, and separating large files into manageable sections.

However, complex documents should be checked after processing to ensure that their formatting and interactive elements remain intact.

PDF Security and Encryption

PdfCraft supports opening encrypted PDF files using older RC4 encryption and modern AES-256 encryption.

It also respects document permissions specified by the author. This is useful when working with protected documents that restrict certain operations.

Encryption support does not mean that PdfCraft provides every security feature available in professional PDF software. Users who require certificate-based digital signatures, advanced redaction, or specialized document-security workflows should verify those capabilities separately.

Forms, Layers, and Document Structure

PdfCraft is designed to preserve PDF features beyond ordinary page content. These include form fields, layers, links, and bookmarks when combining or splitting documents.

This is important because PDF files often contain interactive elements and structural information that can be lost when processed by simpler PDF utilities.

The project emphasizes document integrity, although its developers acknowledge that its rendering quality has not yet been comprehensively compared against Adobe Acrobat.

Command-Line Tools and AI Automation

PdfCraft includes a command-line interface for inspecting documents, extracting text, rendering pages, editing PDF files, combining documents, extracting pages, and splitting files.

For example, you can inspect a PDF's structure in JSON format:

pdfcraft-cli info document.pdf

Extract text from a specific page:

pdfcraft-cli text document.pdf --page 3

Rotate pages, delete a page, and update the document title:

pdfcraft-cli edit input.pdf \
  --rotate 1,2:90 \
  --delete 5 \
  --title "Q3" \
  --out output.pdf

These capabilities make PdfCraft useful for batch processing, scripts, and automated document workflows. Its agent-oriented architecture also makes it suitable for integration with compatible AI tools.

Download PdfCraft v0.9.0 - Software Mirrors

PdfCraft v0.9.0 for Windows

pdfcraft-0.9.0-windows-x86.msi | 66.72 MB

pdfcraft-0.9.0-windows-x86-portable.zip | 78.64 MB

pdfcraft-0.9.0-windows-x64.msi | 68.66 MB

pdfcraft-0.9.0-windows-x64-portable.zip | 82.25 MB

pdfcraft-0.9.0-windows-arm64.msi | 64.65 MB

pdfcraft-0.9.0-windows-arm64-portable.zip | 78.74 MB

PdfCraft v0.9.0 for macOS

pdfcraft-cli-0.9.0-macos-universal.zip | 58.66 MB

pdfcraft-0.9.0-macos-universal.dmg | 90.77 MB

PdfCraft v0.9.0 for Linux

pdfcraft-cli-0.9.0-linux-x86_64.tar.gz | 29.27 MB

pdfcraft-cli-0.9.0-linux-aarch64.tar.gz | 27.82 MB

pdfcraft-0.9.0-linux-x86_64.tar.gz | 81.8 MB

pdfcraft-0.9.0-linux-x86_64.rpm | 82.43 MB

pdfcraft-0.9.0-linux-x86_64.flatpak | 61.94 MB

pdfcraft-0.9.0-linux-x86_64.deb | 82.85 MB

pdfcraft-0.9.0-linux-x86_64.AppImage.zsync | 273.11 kB

pdfcraft-0.9.0-linux-x86_64.AppImage | 77.96 MB

pdfcraft-0.9.0-linux-riscv64.tar.gz | 79.54 MB

pdfcraft-0.9.0-linux-riscv64.rpm | 80.19 MB

pdfcraft-0.9.0-linux-riscv64.deb | 80.43 MB

pdfcraft-0.9.0-linux-aarch64.tar.gz | 78.32 MB

pdfcraft-0.9.0-linux-aarch64.rpm | 79.61 MB

pdfcraft-0.9.0-linux-aarch64.flatpak | 58.27 MB

pdfcraft-0.9.0-linux-aarch64.deb | 80.15 MB

pdfcraft-0.9.0-linux-aarch64.AppImage.zsync | 261.77 kB

pdfcraft-0.9.0-linux-aarch64.AppImage | 74.72 MB

PdfCraft v0.9.0 for BSD

pdfcraft-0.9.0-freebsd-x86_64.tar.gz | 81.23 MB

Others Download related to PdfCraft v0.9.0

pdfcraft-web-0.9.0.zip | 13.78 MB

PdfCraft v0.9.0 Source Code

PdfCraft v0.9.0 Source code (zip)

PdfCraft v0.9.0 Source code (tar.gz)

PdfCraft v0.9.0 Release Notes:

What's Changed

  • Make a missing external oracle loud instead of a silent pass by @tanish2k09 in #2266
  • One way to write a synthetic PDF fixture by @tanish2k09 in #2275
  • Measure rendering against Poppler, and turn the pixel test on by @tanish2k09 in #2286
  • Say what the render-oracle score does and does not mean by @tanish2k09 in #2290
  • Pin that every JBIG2 conformance fixture decodes to the same picture by @tanish2k09 in #2300
  • The fonts README still called the standard-14 widths an estimate by @tanish2k09 in #2304
  • The text oracle scored us zero for honouring a no-copy document by @tanish2k09 in #2312
  • Fix oracle Clippy failure for four-byte pixel chunks by @sanyamsingh001 in #2342
  • Preserve precision when writing page transforms by @sanyamsingh001 in #946
  • Printing: a layer that is off in the document stays off on the sheets by @Byxis in #1135
  • Clear image leftovers by @not-a-feature in #1151
  • Tests: use 300 DPI synthetic scan for OCR searchability by @earlvanze in #1197
  • M8: Bound and reuse repeated redaction overlays by @LabDennis in #1426
  • M4: keep the last saved revision across undo (#1310, #1311, #1312) by @bartalos86 in #1435
  • M5: add comment and reply submission shortcuts by @Luchsen in #1457
  • M12: mark leaf tags as artifacts by @earlvanze in #1475
  • COS: index cross-reference entries on demand by @cyfung1031 in #1505
  • feat(ui): drop files on the Pages panel to insert pages by @tylerstoltz in #1547
  • Clamp extracted Indexed image samples to the declared palette range by @FredApps in #1581
  • Keep page labels and focused navigation consistent across reloads by @sanyamsingh001 in #1667
  • Keep the full final spread reachable with unequal page heights by @FredApps in #1672
  • Text selection: dragging to the top or bottom edge of the view scrolls it by @marcoarnulfo in #1675
  • Edit text & images: a dragged image's pixels follow its frame instead of waiting for the release by @marcoarnulfo in #1677
  • Text selection: a drag after a double- or triple-click extends by whole words or lines by @marcoarnulfo in #1689
  • fix(render, ui): form-heavy documents draw and fill fast (spot-colour images, widget placement, Fields panel) by @Piohrun in #1691
  • i18n(pt-br): fix 6 Brazilian Portuguese strings by @s17sh70x2jfl031ag in #1694
  • Sinhala and Tamil interface: draw with an installed font (part of #1688) by @manchitmr in #1706
  • M5: Fill & Sign text reads across on rotated pages by @alexanderalber in #1710
  • M14: add Vietnamese interface and date localization by @duydev in #1712
  • Edit text: the four-way arrow wherever a drag moves, and a sharp page while editing by @ch0kemeister in #1717
  • macOS: the standard About panel shows the website and Discord links (#1287) by @ch0kemeister in #1718
  • M6: detect form fields on scanned pages (#1721) by @alexanderalber in #1722
  • M2: Make literal text search linear and tolerate missing layout metadata by @LabDennis in #1725
  • fix(ui): clicking a theme card in Preferences picks that theme by @umesh429 in #1727
  • Issue #1676: put fallback faces on the interface baseline by @mtlcl410 in #1743
  • M7: fold repeated image transforms into one cm instead of nesting q by @komo1iddin in #1746
  • i18n: Taiwan vocabulary and the missing entries in zh-hant by @mtlcl410 in #1750
  • M7: keep the source operators of rows a text edit doesn't reach by @komo1iddin in #1754
  • M7: draw new characters with the source font's own embedded program by @komo1iddin in #1760
  • Automation: tell a tool name or an unknown id from a command without a tool in command_run by @marcoarnulfo in #1765
  • M7: reuse a page's font resource and program when embedding again by @komo1iddin in #1779
  • M2: Add word and character counts with optional content exclusions by @LabDennis in #1780
  • M7: read the page once per keystroke when measuring a text draft by @komo1iddin in #1781
  • M11: merge image fragments, and the Standard and Mobile optimizer presets (closes #1783) by @magdale76 in #1784
  • M7: rewrap Chinese and Japanese text between characters by @komo1iddin in #1827
  • M7: justify paragraphs whose font shows the space with another code by @komo1iddin in #1832
  • Edit image: give each flip button the icon of its own mirror axis by @marcoarnulfo in #1841
  • M10: A6 paper in the print dialog and doc_print by @marcoarnulfo in #1849
  • M7: Add / Update / Remove menu on Header and footer, Watermark, Background by @Byxis in #1857
  • fix(a11y): mark_decorative no longer panics on an unpaired ParentTree key (#1809) by @mtlcl410 in #1862
  • M2: a /Rotate that isn't a quarter turn counts as 0, as the page is drawn by @pauliusiv123-rgb in #1863
  • fix(cos): a nonpositive crypt-filter /Length no longer overflows (#1816) by @mtlcl410 in #1864
  • fix(audit): find rectangle covers closed with h or painted with b/b* (#1817) by @mtlcl410 in #1865
  • fix(sign): an unreadable extendedKeyUsage allows no purpose (#1807) by @mtlcl410 in #1866
  • audit: harden finding classes with golden tests and docs by @ejbarraza in #1892
  • fix(audit): an applied redaction at the end of a line is not a faux redaction by @CouchRiv in #1898
  • fix(a11y): bookmarks from structure keep the words of glyph-by-glyph headings by @CouchRiv in #1899
  • fix(audit): report faux-redaction rectangles in top-left page points by @CouchRiv in #1900
  • fix: render CCITT Group 4 images that declare /Rows 0 by @ehinderer in #1903
  • fix(automation): a missing path under --root says where it was looked for (#1890) by @mtlcl410 in #1907
  • M3: touchpad swipes glide on after the fingers lift on Wayland (#531) by @mlkonrad in #1909
  • fix(redact): the tail of a longer number is not a phone number (#1884) by @mtlcl410 in #1911
  • fix(forms): new text and date fields take Acrobat's Auto font size (#1888) by @mtlcl410 in #1912
  • feat(ui): a middle click closes a tab (#1853) by @mtlcl410 in #1920
  • fix(organize): bound how deep an import follows the object graph (#1800) by @mtlcl410 in #1921
  • M2: Bound page-tree traversal memory for repeated children (#1798) by @LabDennis in #1926
  • Compare files: side by side, scrolled and zoomed together by @regendorf-ux in #1927
  • M11: measure every use of an image drawn through deeply nested forms (#1811) by @mlkonrad in #1933
  • fix(edit): flattening keeps a widget it cannot draw and an undrawn reply (#1794) by @mtlcl410 in #1934
  • fix(control): a deadline and a cap for connections that have not authenticated (#1806) by @mtlcl410 in #1939
  • Issue #305: an update keeps the File Explorer menu choices, and the image menu gets a switch by @jcl-bit in #1941
  • fix(sign): a signed revision of a password-protected file opens with the document's key (#1808) by @mtlcl410 in #1945
  • feat(organize): Insert pages from file brings the file's bookmarks by @CouchRiv in #1947
  • XFA: flatten a form into a plain PDF, or convert it to a static form by @ysrdevs in #1948
  • feat(cli): page lists take ranges, and a missing page is named as typed (#1923) by @mtlcl410 in #1950
  • M9: signature labels follow the interface language, and one the font can't draw is refused, never written as ? by @kekeandzeyu in #1951
  • Keep native open replies queued while dialogs and pickers are active by @sanyamsingh001 in #1953
  • M2: bound ASCII85 decoding by the stream's output limit (#1796) by @Ridzzz0Alam in #1954
  • M4: write each page label dictionary as an indirect object by @marcoarnulfo in #1959
  • M6: auto-size text fields shrink and wrap typed text on screen, as on the page by @dsskaggs-ai in #1964
  • Print: print as image (Advanced), with grayscale pictures by @regendorf-ux in #1965
  • fix(automation): no top-level oneOf in form_set_props input schema (#1961) by @andreero0 in #1967
  • CLI: run --script --report prints one JSON document for the run (#1891) by @vangel76 in #1974
  • Issue #1910: Organize opens on the current page by @alehel in #1975
  • Signature pad: Undo button and Ctrl/Cmd+Z take back the last stroke (#1963) by @vangel76 in #1978
  • View: show page size when hovering the bottom-left of the page view (#1855) by @vangel76 in #1979
  • Export to Word: show pictures on positioned pages, bound the pictures (#1936) by @vangel76 in #1981
  • M2: keep the raw crop minimum in physical points by @sanyamsingh001 in #1982
  • Comments: font size for text boxes in Comment Properties (#1908) by @vangel76 in #1984
  • Viewer: a press on a page makes it the current page (#1956) by @vangel76 in #1985
  • View: Single Page wheel turns to the next page at the edge of a zoomed-in page (#1924) by @vangel76 in #1986
  • Draw: a released pen stroke stays on screen until the page raster has it (#1858) by @vangel76 in #1987
  • Forms: simplified field notation written as real JavaScript, not AFMakeNumber(0) by @regendorf-ux in #1995
  • Edit: crop an existing page image with its handles by @regendorf-ux in #2002
  • Redaction Tool Properties: the mark's appearance, and Make properties default by @regendorf-ux in #2008
  • fix(ui): wrap long filenames and metadata in Document Properties (#2011) by @Osaym in #2012
  • M2: clip intersection starts its row walk at the first shared row by @cyfung1031 in #2026
  • fix(render): a Multiply highlight inside a transparency group keeps the text (#1968) by @mtlcl410 in #2027
  • M7: list Edit text & images first under Modify page by @lava in #2028
  • Linux/BSD: open files from later launches in the running PdfCraft (#1726) by @tydude001 in #2037
  • fix(forms): read each JavaScript name tree node once by @Dev-next-gen in #2040
  • Wait for remote-link errors before asserting in UI tests by @sanyamsingh001 in #2041
  • M2: heavy-sheet generator and page timing harness (item 8 of storytold/pdfcraft#623) by @cyfung1031 in #2042
  • perf(xfa): make som index lookup linear by @osaidahmed in #2047
  • i18n(es): translate the new print and Add text strings, Type on the signature pad, tú register by @txiki739 in #2049
  • fix(ui): preserve Ctrl+Alt+Q during digital ID creation by @sampaiodias in #2055
  • chore(contributors): credit mtlcl410 by display name by @mtlcl410 in #2065
  • M4: read page transitions and display times (/Trans, /Dur) into DocInfo by @mtlcl410 in #2074
  • M4: set page transitions and display times (/Trans, /Dur) through the engine and the tools by @mtlcl410 in #2083
  • M12: the geometry of page transitions (ISO 32000-2 table 164) by @mtlcl410 in #2084
  • M3: a document that asks to open in Full Screen mode asks first (/PageMode /FullScreen) by @mtlcl410 in #2086
  • chore(packaging): give test-msi.ps1 a UTF-8 BOM so Windows PowerShell 5.1 parses it by @mtlcl410 in #2092
  • fix(organize): keep page labels on their pages when pages are deleted by @marcoarnulfo in #2093
  • fix(ui): check boxes over text should show the pointing hand, not the I-beam by @alehel in #2099
  • M3: preserve coordinate clicks across slow frames by @sanyamsingh001 in #2100
  • fix(a11y): mark_decorative finds MCIDs in named property lists (#1813) by @jonathanwxh-cell in #2106
  • fix(ui): header, footer and watermark dialogs refuse undrawable text … by @jonathanwxh-cell in #2107
  • M7: Hebrew in Add text (#128) by @michaelsh1 in #2109
  • fix(sign): a signed page's resources are page content whatever keys a later revision writes (#1787) by @mtlcl410 in #2115
  • fix: Space Audit lines up its columns and counts form fonts as fonts by @alehel in #2118
  • test(ui): wait for the save to write the file instead of a fixed frame count by @lhymes in #2122
  • fix(render): a soft mask fades a gradient fill again by @marcoarnulfo in #2132
  • OCR: Downsample to shrinks a page box given in pixels by @marcoarnulfo in #2135
  • Fix multi-select choice index ordering by @sanyamsingh001 in #2144
  • M3: Improve Back/Forward page navigation (fixes #2080) by @srt8hellcat2-ui in #2151
  • fix(fonts): keep a subset Type 0 font for glyphs /W leaves to /DW by @marcoarnulfo in #2153
  • M1: every PDF leaves the engine checked, and every writer uses one staging-file writer (#2166) by @mtlcl410 in #2182
  • M9: harden .p12 digital IDs (#1847) by @Ridzzz0Alam in #2201
  • packaging: RPM requires library sonames, so openSUSE can install it by @tydude001 in #2205
  • fix(edit): keep the runs of untouched text between two edits by @marcoarnulfo in #2209
  • Forms: fields that share a name take the same value by @marcoarnulfo in #2217
  • M3: Save asks before writing over a changed file, one tab per file, locked autosaves (#2166) by @mtlcl410 in #2218
  • fix(redact): size image clearing with checked arithmetic (#2177) by @atahabilder1 in #2221
  • fix(forms): open a text field on press so dragging over it selects text by @marcoarnulfo in #2226
  • fix(test): reload tests pin the English interface like every other harness by @abc2cb in #2239
  • M7: the Edit tab turns on Edit text & images, as in Acrobat by @abc2cb in #2241
  • fix(edit): keep Edit text & images boxes drawn while page input waits by @abc2cb in #2242
  • fix(organize): draw a rotated page large and centred in its grid cell by @abc2cb in #2243
  • M4: lay out Organize pages as Acrobat's panel by @abc2cb in #2248
  • feat(ui): Shift on a corner handle keeps proportions for comments, stamps, and form fields by @adrianiglesiass in #2252
  • Refuse header/footer Bates numbers that would overflow u64 by @Silvertree2010 in #2253
  • fix(preflight): read device colour from content operators, not whitespace-split bytes by @guillehr2 in #2260
  • docs: catalog hashes in ATTRIBUTION.toml are updated by hand by @vangel76 in #2271
  • Tabs: show the drop line in front of the first tab (#2225) by @vangel76 in #2278
  • M0: the every-command test never opens a real file dialog by @abszar in #2281
  • Export All Images: zero-pad the page number so files sort in page order (#2208) by @snipeTR in #2295
  • edit: commit the open paragraph when a click switches text boxes by @midasmatterhorn in #2302
  • Read WinAnsi 0xAD as a hyphen, so search and redaction can see it by @tanish2k09 in #2305
  • fix(engine): give a host with no clock or time zone a real one (Session::with_wall_clock) by @bonfim6P in #2317
  • feat(automation): Automation::render_pixels returns a page as RGBA, without the PNG round trip by @bonfim6P in #2318
  • M14: Italian catalog: complete the missing entries by @kcobelli-pixel in #2320
  • fix(ui): stop dropping cached tiles when zooming away and back (#2196) by @Hathor875 in #2323
  • test(ui): wait for the text layer by state, not for a fixed second (#1277) by @mtlcl410 in #2327
  • fix(print): the Print dialog waits for the printer list instead of offering Save as PDF (#160) by @mtlcl410 in #2332
  • M3: arrow keys follow the Scroll speed preference (#985) by @mtlcl410 in #2333
  • Requeue render requests after parse cancellation by @sanyamsingh001 in #2334
  • feat(automation): accessibility_tags lists tags a page at a time, with filters by @CouchRiv in #2335
  • feat(automation): bookmarks and links say where on the page they go by @CouchRiv in #2344
  • fix(ui): on macOS, dragging a tab moves the tab, not the window by @tisca26 in #2347
  • M10.5: convert print previews to grayscale by @earlvanze in #2351
  • Preserve literal spaces in page-label prefixes by @sanyamsingh001 in #2355
  • crypt: property tests for encrypted content, crypt filters and damaged ciphertext by @amoisttowe1 in #2358
  • fix(ui): a shape just drawn resizes from its handles without the Select tool by @cortenburg28-arch in #2362
  • fix(cli): render comments the app renders when /AP is missing by @earlvanze in #2382
  • Fix util.printd panic on an escaped multi-byte character by @Silvertree2010 in #2386
  • Reject impossible dates such as Feb 30 in FormCalc Date2Num and Parse by @Silvertree2010 in #2388
  • M5: Make Properties Default in Comment Properties by @DCM4711 in #2031
  • M1: keep unknown trailer entries on a full save (#1338) by @bartalos86 in #1431
  • Tests: viewer find test waits by a deadline (flaky under load) by @echelon in #779
  • Add permission-aware selected-text Copy to Edit and context menus by @FredApps in #1244
  • M6: expose dropdown and list-box field alignment (#1208) by @DWAA1660 in #1263
  • M14: correct localization and installer parity statuses (gap 24) by @rp6186030 in #1211
  • M1: repair exhausted xref hints without object-number overflow (#1337) by @DWAA1660 in #1359
  • M10: Windows print jobs show per-sheet progress; printers list faster (follow-up to #944) by @TKIPisalegacycipher in #1236
  • Keep selected form values and page content through later edits (#1319, #1305, #1324, #1306) by @bartalos86 in #1452
  • M7: keep line breaks when editing a multi-line paragraph (#1443) by @rp6186030 in #1486
  • MCP: confine file access with --automation-read-root and --automation-write-root by @isaac-levine in #1448
  • fix(macos): Cmd+Q asks about unsaved changes (#1136) by @Mahmud-Baspehlivan in #1533
  • M3: scroll the view when drawing at an edge; take back a polygon's last point by @philip-tam in #1549
  • M2: preserve inline-image pixels when rewriting page content by @MMexicann in #1562
  • Perf: defer marker and link index scans until first use by @cyfung1031 in #1434
  • M12: tag unstructured AcroForm widgets by @earlvanze in #1451
  • M12: find untagged accessibility content by @earlvanze in #1463
  • feat(ui): preference to hide author-only highlight hover previews (#1432) by @Totopo27 in #1466
  • Print: 4 x 6 in label paper and a Label layout for shipping labels by @Ace40063 in #1583
  • M12: show structure tag content by @earlvanze in #1496
  • Keep added text selectable over form fields by @FredApps in #1528
  • M7: Cut, Redact, Create Link and Recognize Text in the picture menu; keep the menu open by @philip-tam in #1621
  • M6: preserve XFDF field text around XML comments by @storybored379 in #1647
  • M14: store XDG preferences in configuration directory (#1395) by @DWAA1660 in #1536
  • M7: grow text boxes and edit existing text by @YouseifUS in #1539
  • M6: make list boxes directly selectable and scroll to selection (#1524) by @lollinoo in #1543
  • Complete the Arabic (العربية) catalog: every missing row translated by @hasan-sdaif in #1559
  • M1: edit finds the pages a damaged file's readers find by @marcoarnulfo in #1664
  • M14: Fix(nixos): discover installed UI fallback fonts on NixOS by @tomasmark79 in #1553
  • M6: preserve carriage returns in form CSV exports by @MMexicann in #1563
  • M6: export valid XML tags for Unicode field names by @MMexicann in #1588
  • Keep annotations readable under reading colours (#1548) by @edurbs in #1557
  • Comments panel: page groups fold from their chevron by @marcoarnulfo in #1614
  • M3: Wayland: stop retaining Ctrl zoom for pixel-only wheel input by @tomasmark79 in #1569
  • Tests: the signing test's password meets the 8-character minimum (#2417) by @wstock in #2420
  • fix(parity): merge the keys concurrent merges left twice in acrobat-features.toml by @mtlcl410 in #2419
  • fix(i18n): zh-hant had two keys twice after concurrent merges by @mtlcl410 in #2414
  • Tests: repair stale save and search regressions without weakening validation by @FredApps in #2484
  • Fix main UI regressions in paging, fonts and test expectations by @FredApps in #2502
  • i18n: fill Vietnamese and Lithuanian coverage gaps on main by @FredApps in #2510
  • Read the Annex D.2 alias codes as the ink they draw, in both tables by @tanish2k09 in #2656
  • Score reading order in the text oracle, which word F1 cannot see by @tanish2k09 in #2680
  • Record the day's two changes in the roadmap and gap 12 by @tanish2k09 in #2682
  • fix(render): faster sampled functions, image decodes across zoom levels and patch meshes (vendored hayro-interpret patches 31–33) by @Piohrun in #2436
  • fix(ui): validated signature display, snapshot tab reuse by @chiranjeevi-max in #1895
  • ci: add nix check workflow by @dylanmtaylor in #2727
  • test: retain open regressions and deterministic fixtures by @skylartaylor in #2067
  • M8: the redaction audit finds a cover over one word of a long line (#2662) by @mtlcl410 in #2698
  • Resolve remote links and document-supplied output names safely by @skylartaylor in #3083
  • M6: preserve complete plain XML form values by @MMexicann in #2686
  • deny: acknowledge the new zbus unmaintained advisories by @skylartaylor in #3091
  • M6: preserve whitespace in XML and XFDF attributes by @MMexicann in #1917
  • fix(filters): preserve output-limit errors in raw Flate fallback by @MMexicann in #2267
  • Read stream-boundary comments as the renderer does, and isolate new marks from appended graphics state by @skylartaylor in #3102

New Contributors

  • @Luchsen made their first contribution in #1457
  • @tylerstoltz made their first contribution in #1547
  • @s17sh70x2jfl031ag made their first contribution in #1694
  • @manchitmr made their first contribution in #1706
  • @alexanderalber made their first contribution in #1710
  • @duydev made their first contribution in #1712
  • @ehinderer made their first contribution in #1903
  • @regendorf-ux made their first contribution in #1927
  • @andreero0 made their first contribution in #1967
  • @vangel76 made their first contribution in #1974
  • @alehel made their first contribution in #1975
  • @Osaym made their first contribution in #2012
  • @lava made their first contribution in #2028
  • @tydude001 made their first contribution in #2037
  • @Dev-next-gen made their first contribution in #2040
  • @osaidahmed made their first contribution in #2047
  • @txiki739 made their first contribution in #2049
  • @sampaiodias made their first contribution in #2055
  • @jonathanwxh-cell made their first contribution in #2106
  • @michaelsh1 made their first contribution in #2109
  • @lhymes made their first contribution in #2122
  • @atahabilder1 made their first contribution in #2221
  • @abc2cb made their first contribution in #2239
  • @adrianiglesiass made their first contribution in #2252
  • @Silvertree2010 made their first contribution in #2253
  • @abszar made their first contribution in #2281
  • @midasmatterhorn made their first contribution in #2302
  • @bonfim6P made their first contribution in #2317
  • @kcobelli-pixel made their first contribution in #2320
  • @tisca26 made their first contribution in #2347
  • @amoisttowe1 made their first contribution in #2358
  • @cortenburg28-arch made their first contribution in #2362
  • @DCM4711 made their first contribution in #2031
  • @TKIPisalegacycipher made their first contribution in #1236
  • @isaac-levine made their first contribution in #1448
  • @Ace40063 made their first contribution in #1583
  • @hasan-sdaif made their first contribution in #1559
  • @tomasmark79 made their first contribution in #1553
Full Changelog: v0.8.0...v0.9.0

Performance and Compatibility

PdfCraft is written in Rust, with its PDF parsing, rendering, and editing logic organized into reusable libraries. The graphical interface is built on top of this underlying engine.

The project emphasizes faithful document rendering, reliable file operations, and local processing. Its developers report zero crashes across a test corpus of 983 PDF files, although this result should not be interpreted as a guarantee of compatibility with every PDF document.

Supported platforms include Windows, macOS, Linux, FreeBSD, and modern web browsers through WebAssembly. Available packages include Windows installers and portable archives, a universal macOS disk image, Linux AppImage packages, Debian packages, RPM packages, and other distribution formats.

PdfCraft is still in early development. Its roadmap identifies renderer improvements, stronger compatibility testing, editing existing PDF content, digital signatures, OCR, Office-related workflows, preflight tools, and XFA support as areas for further development.

Consequently, it is best viewed as a promising PDF workbench rather than a complete replacement for every Adobe Acrobat workflow.

System Requirements

  • Operating systems: Windows, macOS, Linux, and FreeBSD.

  • Browser support: WebAssembly build for modern browsers.

  • Windows architectures: x86, x64, and ARM64.

  • Linux architectures: x86-64 and ARM64.

  • macOS: Universal build for Intel and Apple silicon.

  • Build requirements: Rust 1.90 or newer, along with the project's documented development dependencies.

The project does not establish a comprehensive minimum RAM or processor specification in the information reviewed. Basic PDF viewing should be suitable for a broad range of modern computers, but performance will depend on document complexity and system resources.

Pros and Cons

Pros

  • Free and open-source under permissive licenses.

  • Native applications for major desktop operating systems.

  • Local document processing without mandatory accounts or cloud uploads.

  • PDF viewing with text search and selection.

  • Page rotation, deletion, insertion, and reordering.

  • PDF merging, extraction, and splitting.

  • Support for encrypted PDFs and document permissions.

  • Designed to preserve links, form fields, layers, and bookmarks.

  • Autosave, crash recovery, and undo support.

  • Command-line tools for scripting and batch processing.

  • WebAssembly version for browser-based use.

Cons

  • Still in early development, with some features planned rather than implemented.

  • PDF rendering quality has not yet been comprehensively benchmarked against Adobe Acrobat.

  • Advanced editing of existing PDF content remains a development priority.

  • Digital signatures, OCR, and specialized document workflows are not yet comprehensive.

  • Compatibility with complex forms and unusual PDF documents requires further testing.

  • Professional publishing and document-preflight capabilities are limited.

How to Install

The easiest way to install PdfCraft is to visit its official website and download the package for your operating system.

Windows users can choose an installer or portable archive. macOS users can download the universal disk image, while Linux users can select AppImage, DEB, RPM, or another available package.

To build PdfCraft from source, install Rust 1.90 or newer and run:

git clone https://github.com/storytold/pdfcraft.git
cd pdfcraft
cargo run --release -p pdfcraft

For command-line PDF processing, build or install the CLI package provided by the project. Consult the official documentation for supported commands, build dependencies, and platform-specific installation instructions.

Final Verdict

PdfCraft is a promising open-source PDF editor for users who want to read, organize, combine, split, and secure documents without relying on a cloud service or paid subscription.

Its strongest advantages are local processing, cross-platform availability, careful handling of PDF structure, and a command-line interface that supports automation. These features make it appealing to developers, privacy-conscious users, and anyone who regularly manages PDF documents.

The main limitation is maturity. PdfCraft does not yet cover every advanced capability offered by established PDF applications, particularly for editing existing content, digital signatures, OCR, and specialized document workflows.

For everyday PDF viewing and organization, PdfCraft is worth trying. Users who need a complete professional PDF solution should evaluate its current feature set against their specific requirements before replacing their existing software.

PdfCraft v0.9.0
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux / BSD
Date Added:
2026-10-18T07:07:22.058Z

FortiClient 5.6.0 build 1075 Offline Installer is a complete security package that includes antivirus, VPN client, firewall, web filtering and network optimizer.

As ambitious feature selection is based on a classical state panel, with sections arranged in a column. FortiClient antivirus, central part of the suite, offers real-time protection, automatic updates, quarantine and monitor Windows Registry.

FortiClient firewall is simple but functional, with an intrusion detector, a manager of advanced rules and the definition of security zones. Similar Simplicity is in connection modules VPN, WAN optimization and FiltroWeb.

Few developers offer as complete security package free of charge. FortiClient may not be the most pleasant or complete, but its amplitude and low resource consumption make it an option to consider, especially for less powerful computers.

Alternative Download for Forticlient 5.6

Change Log:
- Initial release of 5.6.0.
- Updated to add support for FortiSandbox 2.4.0.

Special Notices
SSL VPN 98% issues

  • New SSL VPN Windows Driver has been introduced, which will help resolve various SSL VPN connection issues.

  • The new driver will help increase the performance by up to 20% and provide a stable VPN connection.


Windows notification of AV being disabled

  • In FortiClient 5.6.0, FortiClient will notify Windows Security Center Antivirus is Down only when FortiClient Antivirus has really stopping running.


Local certificate store not supported

  • FortiClient (Windows) no longer supports the local certificate store, and it is recommend that you use Windows Certificates Store instead. If you are currently using the local certificate store, you should transition to Windows Certificates Store before upgrading to FortiClient (Windows) 5.6.0.


Microsoft Windows server support

  • For Microsoft Windows servers, only the AntiVirus feature for FortiClient is supported.


What’s New in FortiClient (Windows) 5.6.0
This section identifies the new features and enhancements in FortiClient (Windows) 5.6.0. For more information, see the FortiClient Administration Guide.

FortiClient install option
FortiClient installer now only installs features required for the solution chosen by user at the time of install.

Improved FortiClient compliance feature
FortiClient endpoint compliance is now enforced by FortiOS where administrator can either warn or block noncompliant endpoints. FortiClient dashboard will display the compliance status and reason for non-compliance. FortiClient dashboard will also include information on the configuration settings that is causing non-compliance.

Vulnerability Scan GUI
The FortiClient GUI for the Vulnerability feature has been improved to show details on detected vulnerabilities and patch status and to identify software failed to be auto-patched. The improved display of the results helps improve usability, where the user can easily identify outstanding vulnerabilities that may need to be fixed manually.

User Avatar retrieval from cloud applications
FortiClient can now be used to retrieve username and user avatar from third-party cloud application, such as LinkedIn, Salesforce and Google.

User Avatar sent to FortiAnalyzer
FortiClient can now send user avatar and device information to FortiAnalyzer so that it can be used in FortiView and reports.

Improved remote logging to FortiAnalyzer
FortiClient endpoints now send detailed logs to FortiAnalyzer so that data can be used for FortiView and custom reports.

Sandbox detection
The Sandbox Detection feature can be used to send files to FortiSandbox for analysis without having to install the AntiVirus feature. This feature can use used with other third-party AV products installed on the endpoint. The Sandbox Detection feature will quarantine any files found to be malicious by FortiSandbox. You can also send the following file types with supported file extensions to FortiSandbox for analysis: web and email downloads as well as files copied from removable USB drives or network drives.

New SSL VPN Windows Driver
New SSL VPN Windows Driver has been introduced, which will help resolve various SSL VPN connection issues. The new driver will help increase the performance by up to 20% and provide a stable VPN connection.

VPN Auto-Reconnect improvement
When FortiClient VPN auto-connect feature is turned on, and VPN connection fails, a permanent pop-up window is displayed to inform the user about the connection failure. FortiClient will keep re-trying to connect VPN in the background, until the user selects an option from the pop-up window.

Configurator and Rebranding Tools
FortiClient Configurator Tool, which is used to create custom installers, will be available for download for free from Fortinet Developer Network site (http://fndn.fortinet.net/). FortiClient Rebranding Tool is available for download with FNDN site license.

FortiClient 5.6.0 build 1075 Offline Installer
Free
Software Informations:
Developer:

Operating System:
Windows / Mac / Linux
Date Added:
2026-10-18T06:07:24.278Z

FilmCraft is a free, open-source video editor designed as an alternative to Adobe Premiere Pro. Built from scratch in Rust, it combines timeline-based editing, color correction, audio mixing, visual effects, titles, captions, and video export in a desktop application.

FilmCraft aims to provide a familiar editing experience for users accustomed to professional non-linear video editors. It supports Windows, macOS, and Linux, with a WebAssembly version for browsers. Its command-line interface and Model Context Protocol (MCP) server also make it possible to automate editing tasks using scripts and compatible AI agents.

The project is ambitious, but it remains under active development. Although its feature checklist covers a substantial portion of Premiere Pro's functionality, the developers estimate that it is only around 50% to 60% ready to replace Premiere in real-world production workflows.

Features

Multitrack Timeline Editing

FilmCraft provides a traditional video editing workspace with source and program monitors, media bins, thumbnails, and a multitrack timeline. Its interface includes familiar editing workspaces for assembly, color correction, effects, and audio.

The editor supports three-point editing, trimming, clip insertion, overwriting, transitions, keyframes, and synchronized audio and video. It also includes multicamera editing and tools for organizing media and sequences.

These capabilities make FilmCraft suitable for assembling footage, creating documentaries, editing promotional videos, and working on other timeline-based projects.

Color Grading and Video Effects

FilmCraft includes color correction tools, tone adjustments, and a GPU-based compositor that processes images in linear light. Users can adjust footage and apply effects without relying on Adobe's proprietary editing engine.

The project includes a broad selection of video effects and transitions, with many familiar editing operations represented in its command and interface systems.

However, feature availability does not guarantee identical results to Premiere Pro. Some advanced effects are approximations, and certain processing tasks still rely on the CPU. Performance can vary depending on the footage, effects, and export settings.

Audio Editing and Mixing

FilmCraft includes audio tracks, mixing controls, clip volume adjustments, keyframes, and audio transitions. Its audio tools support common post-production tasks such as balancing dialogue, music, and sound effects.

The application can decode several audio formats, including AAC, Opus, MP3, FLAC, ALAC, and Vorbis. It can also export audio as WAV.

A significant limitation is the lack of VST3 and Audio Units plugin hosting. Users who depend on third-party audio effects or established professional mixing workflows should account for this before switching.

Titles, Graphics, and Captions

The text engine supports typography features such as kerning, ligatures, bidirectional text, line breaking, tracking, and leading.

Users can create text and graphic clips containing shapes, paths, fills, strokes, backgrounds, and shadows. These elements can be animated using keyframes.

FilmCraft also supports subtitle and caption workflows, including SRT, WebVTT, and SCC import and export. Caption tracks can use formats such as Subtitle, CEA-608, CEA-708, and Teletext.

These tools are useful for adding opening titles, lower thirds, subtitles, and other graphics directly within an editing project.

Video Formats and Export

FilmCraft implements several codecs and containers in Rust rather than bundling FFmpeg as its video-processing engine. The project uses FFmpeg externally for testing and comparing codec behavior.

Supported formats include H.264, HEVC, Apple ProRes, VP9, AV1, Avid DNxHD/DNxHR, Motion JPEG, and common still-image formats. Support differs between decoding and encoding.

For export, FilmCraft offers H.264 MP4 with AAC audio, ProRes 422 HQ, Motion JPEG in QuickTime containers, DNxHR, image sequences, animated GIF, and WAV audio.

Background rendering jobs provide progress reporting and cancellation. Cached render previews help avoid recalculating unchanged sections of a timeline.

There are important limitations. H.264 is the primary delivery-codec export option, while HEVC and AV1 export are not generally available as equivalent delivery options. Hardware encoding support also depends on the operating system and hardware.

Project Interchange

FilmCraft supports several formats for exchanging timelines with other editing and audio-production applications.

These include Final Cut Pro XML, FCPXML, OpenTimelineIO, CMX 3600 EDL, AAF, and OMF. Depending on the format, projects can transfer sequences, tracks, transitions, keyframes, markers, source timecode, and audio information.

This interoperability is particularly useful when collaborating with editors who use different applications. Nevertheless, complex projects should be tested after import because interchange formats and individual applications do not always represent every editing feature identically.

AI-Agent Automation

One of FilmCraft's most distinctive features is its command-oriented editing engine. The graphical interface, command-line tools, JSON control interface, and MCP server use the same underlying command system.

Compatible AI agents can execute editing commands, inspect project state, manipulate timeline elements, adjust effects, and initiate exports. The application also provides automation identifiers that allow tools to interact with its interface.

This makes FilmCraft interesting for developers experimenting with programmatic video editing and repeatable post-production workflows.

Download FilmCraft v0.9.0 - Software Mirrors

FilmCraft v0.9.0 for Windows

filmcraft-0.9.0-windows-x86.msi | 54.66 MB

filmcraft-0.9.0-windows-x86-portable.zip | 66.46 MB

filmcraft-0.9.0-windows-x64.msi | 54.61 MB

filmcraft-0.9.0-windows-x64-portable.zip | 67.41 MB

filmcraft-0.9.0-windows-arm64.msi | 51.23 MB

filmcraft-0.9.0-windows-arm64-portable.zip | 64.37 MB

FilmCraft v0.9.0 for macOS

filmcraft-cli-0.9.0-macos-universal.zip | 58.01 MB

filmcraft-0.9.0-macos-universal.dmg | 70.35 MB

FilmCraft v0.9.0 for Linux

filmcraft-0.9.0-linux-x86_64.tar.gz | 66.52 MB

filmcraft-0.9.0-linux-x86_64.rpm | 67.05 MB

filmcraft-0.9.0-linux-x86_64.flatpak | 48.55 MB

filmcraft-0.9.0-linux-x86_64.deb | 67.45 MB

filmcraft-0.9.0-linux-x86_64.AppImage.zsync | 220.68 kB

filmcraft-0.9.0-linux-x86_64.AppImage | 62.98 MB

filmcraft-0.9.0-linux-riscv64.tar.gz | 65.22 MB

filmcraft-0.9.0-linux-riscv64.rpm | 65.83 MB

filmcraft-0.9.0-linux-riscv64.deb | 66.07 MB

filmcraft-0.9.0-linux-aarch64.tar.gz | 63.75 MB

filmcraft-0.9.0-linux-aarch64.rpm | 65.01 MB

filmcraft-0.9.0-linux-aarch64.flatpak | 45.43 MB

filmcraft-0.9.0-linux-aarch64.deb | 65.53 MB

filmcraft-0.9.0-linux-aarch64.AppImage.zsync | 211.91 kB

filmcraft-0.9.0-linux-aarch64.AppImage | 60.48 MB

FilmCraft v0.9.0 for BSD

filmcraft-0.9.0-freebsd-x86_64.tar.gz | 65.9 MB

Others Download related to FilmCraft v0.9.0

filmcraft-web-0.9.0.zip | 12.73 MB

FilmCraft v0.9.0 Source Code

FilmCraft v0.9.0 Source code (zip)

FilmCraft v0.9.0 Source code (tar.gz)

FilmCraft v0.9.0 Release Notes:

What's Changed

  • fix: preserve individual linked-clip selections through deletion by @haranishi in #1639
  • fix(interchange): avoid UTF-8 slice panics in file URLs by @nuclearspike in #1609
  • fix(media): preserve Unicode prefixes in image-sequence filenames by @nuclearspike in #1570
  • fix(export): prevent nested renderer-pool deadlocks by @earlvanze in #861
  • ci: delegate FreeBSD workflow to craft-common-actions and add nix check by @dylanmtaylor in #2124
  • ci: standardize FreeBSD workflow on shared FreeBSD 15.1 action by @dylanmtaylor in #2158
  • Follow stored media paths only on this computer or the project's share by @skylartaylor in #2304

New Contributors

  • @nuclearspike made their first contribution in #1609
Full Changelog: v0.8.0...v0.9.0

Performance and Compatibility

FilmCraft is written in Rust and uses a modular architecture that separates its editing engine from the graphical interface. The project emphasizes frame-accurate timing, background rendering, codec testing, and GPU compositing.

Native applications are available for Windows, macOS, and Linux. A WebAssembly build also allows the application to run in a browser.

Despite these strengths, FilmCraft is not yet a complete replacement for Premiere Pro. The developers identify performance with large footage, incomplete hardware acceleration on Linux, limited plugin support, and real-world media compatibility as areas that still need work.

The project's automated codec tests are useful evidence of implementation progress, but they do not establish compatibility with every camera, phone, or professional media workflow.

System Requirements

  • Operating systems: Windows, macOS, and Linux.

  • Browser support: A WebAssembly version is available.

  • Linux architectures: x86-64 and ARM64 packages are available.

  • Development requirements: Rust and the project's documented dependencies are required to build from source.

  • Hardware acceleration: Availability depends on the operating system, graphics hardware, and the specific decoding or encoding task.

The project does not provide a comprehensive minimum hardware specification in the information reviewed. Users working with high-resolution footage should test performance on their own systems before adopting FilmCraft for demanding projects.

Pros and Cons

Pros

  • Free and open-source under the MIT or Apache 2.0 license.

  • Native applications for Windows, macOS, and Linux.

  • Multitrack editing, trimming, keyframes, transitions, and color grading.

  • Built-in title, graphics, and caption tools.

  • Broad codec and media interchange support.

  • Background rendering with cached previews.

  • Command-line and MCP support for AI-assisted editing.

  • Rust-based implementation without bundling FFmpeg as its processing engine.

  • No mandatory commercial subscription.

Cons

  • Still under active development and not yet ready to replace Premiere Pro in every production workflow.

  • Performance with large projects and demanding footage needs further validation.

  • No VST3 or Audio Units plugin hosting.

  • HEVC and AV1 export are not available as general delivery-codec options.

  • Hardware acceleration varies by operating system and task.

  • Compatibility with real-world camera and phone footage requires further testing.

  • Some effects and transitions are approximations rather than exact equivalents of Premiere Pro features.

How to Install

The easiest option is to download the appropriate package from the project's GitHub Releases page. Available packages include Linux AppImage, DEB, and RPM files, a universal macOS disk image, and a portable Windows archive.

To build and run FilmCraft from source, install Rust and the required development tools, then execute:

git clone https://github.com/storytold/filmcraft
cd filmcraft
cargo run --release -p filmcraft

To start the application with its JSON control server, run:

cargo run --release -p filmcraft -- --control 9876

To list the available editing commands:

cargo run --release -p filmcraft-cli -- commands

To launch the headless MCP server:

cargo run --release -p filmcraft-cli -- mcp

Consult the official documentation for detailed build dependencies, automation configuration, and platform-specific instructions.

Final Verdict

FilmCraft is an ambitious open-source video editor that combines professional-style timeline editing, color correction, audio tools, captions, codec support, and project interchange in a single Rust-based application. Its command-oriented architecture and MCP integration are particularly interesting for developers who want to automate video editing with scripts or AI agents.

Its broad feature set makes it worth exploring, especially for users who want a free alternative to commercial video editors. However, the number of implemented features should not be confused with production readiness. Plugin compatibility, performance with demanding footage, hardware acceleration, and support for real-world media remain important considerations.

FilmCraft is best suited to experimentation, development, and projects that can tolerate an evolving editing environment. Professionals who rely on mature plugin ecosystems and predictable performance should continue using their established editor until FilmCraft has been tested against their specific workflows.

FilmCraft v0.9.0
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux / BSD
Date Added:
2026-10-18T06:07:21.137Z

LightCraft is a free, open-source photo management and RAW development application designed as an alternative to Adobe Lightroom. Built in Rust, it combines photo library organization with a comprehensive set of image editing tools, allowing photographers to adjust exposure, refine colors, apply local corrections, and prepare images for export without modifying their original files.

LightCraft is designed for desktop use on Windows, macOS, and Linux, with a WebAssembly version that runs in a browser. It also supports automation through a command-line interface and the Model Context Protocol (MCP), making it an interesting option for photographers who want local control over their workflow.

Features

Non-Destructive Photo Editing

LightCraft keeps original images intact and stores editing operations separately. You can experiment with different adjustments without permanently changing the source files.

Its editing tools include exposure, contrast, highlights, shadows, whites, blacks, tone curves, white balance, vibrance, and saturation. The application uses a wide-gamut, 32-bit floating-point processing pipeline designed to preserve tonal and color information throughout editing.

Color Grading and Presets

The color tools include an eight-band Color Mixer, RGB tone curves, and separate color grading controls for shadows, midtones, and highlights. These features provide flexibility for natural photo correction as well as creative color treatments.

LightCraft also includes built-in presets and lets users save custom looks. You can copy, paste, or synchronize selected adjustments across multiple photos, which is useful when editing a collection of images from the same shoot.

Local Masking and Adjustments

LightCraft supports brush masks, linear gradients, and radial gradients, along with selection tools for luminance, color, sky, subject, and background. Masks can be combined, subtracted, intersected, and inverted.

Local adjustments let you change exposure, contrast, color, texture, sharpness, and other properties in specific parts of an image. This helps users refine skies, brighten subjects, or create more controlled lighting effects without applying every adjustment globally.

Crop, Geometry, and Black-and-White Editing

The cropping tools support common aspect ratios, straightening, rotation, flipping, and manual geometric transformations. Composition overlays help photographers align images and refine framing.

For monochrome photography, LightCraft includes black-and-white conversion, an eight-band monochrome mixer, and additional color grading controls for creating tinted or split-tone results.

Photo Library Management

LightCraft includes tools for organizing photo collections, including folders, albums, smart albums, stacks, virtual copies, ratings, flags, labels, filtering, searching, and sorting.

Its local-first approach avoids requiring an online account or cloud catalog. The project describes its catalog as a human-readable log of editing operations, making it easier to inspect, back up, and replay changes.

Command-Line and AI Automation

In addition to its graphical interface, LightCraft provides a command-line application for rendering images and applying adjustments. MCP support allows compatible AI agents to interact with the application through an automation interface.

These capabilities are useful for repeatable editing tasks, scripted workflows, and experimentation with AI-assisted photo processing.

Download LightCraft v0.9.1 - Software Mirrors

LightCraft v0.9.1 for Windows

lightcraft-0.9.1-windows-x86.msi | 84.8 MB

lightcraft-0.9.1-windows-x86-portable.zip | 100.81 MB

lightcraft-0.9.1-windows-x64.msi | 85.79 MB

lightcraft-0.9.1-windows-x64-portable.zip | 104.51 MB

lightcraft-0.9.1-windows-arm64.msi | 82.26 MB

lightcraft-0.9.1-windows-arm64-portable.zip | 100.26 MB

LightCraft v0.9.1 for macOS

lightcraft-cli-0.9.1-macos-universal.zip | 102.7 MB

lightcraft-0.9.1-macos-universal.dmg | 107.74 MB

LightCraft v0.9.1 for Linux

lightcraft-0.9.1-linux-x86_64.tar.gz | 103.89 MB

lightcraft-0.9.1-linux-x86_64.rpm | 104.75 MB

lightcraft-0.9.1-linux-x86_64.flatpak | 75.38 MB

lightcraft-0.9.1-linux-x86_64.deb | 105.35 MB

lightcraft-0.9.1-linux-x86_64.AppImage.zsync | 172.7 kB

lightcraft-0.9.1-linux-x86_64.AppImage | 98.55 MB

lightcraft-0.9.1-linux-riscv64.tar.gz | 101.21 MB

lightcraft-0.9.1-linux-riscv64.rpm | 102.11 MB

lightcraft-0.9.1-linux-riscv64.deb | 102.51 MB

lightcraft-0.9.1-linux-aarch64.tar.gz | 99.36 MB

lightcraft-0.9.1-linux-aarch64.rpm | 101.02 MB

lightcraft-0.9.1-linux-aarch64.flatpak | 71.25 MB

lightcraft-0.9.1-linux-aarch64.deb | 101.74 MB

lightcraft-0.9.1-linux-aarch64.AppImage.zsync | 330.84 kB

lightcraft-0.9.1-linux-aarch64.AppImage | 94.46 MB

LightCraft v0.9.1 for BSD

lightcraft-0.9.1-freebsd-x86_64.tar.gz | 103.42 MB

Others Download related to LightCraft v0.9.1

lightcraft-web-0.9.1.zip | 21.33 MB

LightCraft v0.9.1 Source Code

LightCraft v0.9.1 Source code (zip)

LightCraft v0.9.1 Source code (tar.gz)

LightCraft v0.9.1 Release Notes:

What's Changed

  • Fix Lightroom catalog import results and reduce CPU and memory use by @skylartaylor in #1406
  • ci: add comfortable runtime limits to unbounded jobs by @skylartaylor in #1836
  • Integration batch 36: 110 reviewed community PRs (slideshow, camera verification, translations, never-crash, UI) by @echelon in #1843
  • DNG export and Convert / Copy as DNG write the colour a raw without matrices opens with by @marcoarnulfo in #1750
  • Edit panel: the Reset tooltip shows the platform's shortcut, Ctrl+Shift+R on Windows and Linux by @marcoarnulfo in #1753
  • LR-META-XMP: Retry automatic XMP sidecar writes that failed by @endthestart in #1772
  • Never crash: Check raw data size before allocating in PEF, TIFF tiles and ARW6 (#1512) by @endthestart in #1776
  • Catalog and downloads: Don't write through a link at a temp file's name (#1502) by @endthestart in #1779
  • Faces: Drop faces made from a photo's old file when it is replaced (#1524) by @endthestart in #1780
  • LR-PREF-GENERAL: Keep the Settings window in place when switching tabs by @endthestart in #1782
  • fix(ui): prevent search text selection from dragging the window by @Ni-zav in #1784
  • cli: refuse non-object snapshot params instead of panicking by @midasmatterhorn in #1791
  • Packaging: advertise HEIF images and repair the AppStream screenshot by @IanHollow in #1795
  • codecs: decode lossless (SOF3) JPEGs correctly by @midasmatterhorn in #1796
  • Open the active grid photo with Enter by @FredApps in #1797
  • LRC-DEV-LOUPEOVERLAY: a layout image over the loupe (View ▸ Loupe Overlay) by @BuonBreda in #1798
  • LR-CROP-STRAIGHTEN: turning a crop shrinks it about its centre instead of swapping it for the largest crop (#1794) by @guillehr2 in #1804
  • ui: render the Show All Masks overlay in zoom windows by @midasmatterhorn in #1808
  • Fix crop.rotateAspect turning a zero-size crop into a NaN rect by @Silvertree2010 in #1813
  • Keep crop finite when crop.set gets a huge rect by @Silvertree2010 in #1816
  • LR-META-XMP: radial masks keep their inside/outside from Lightroom (fixes #1815) by @bitshiftza in #1817
  • LR-LIB-REMOVE-ALBUM: removing a photo from an album keeps it in its folder (fixes #1805) by @bitshiftza in #1818
  • LR-IMP-LOCAL: browsing a Local folder keeps or picks the active photo (fixes #1447) by @bitshiftza in #1820
  • Detail: snap the 100% view to whole screen pixels by @john01px2022 in #1831
  • LR-VIEW-BEFOREAFTER: both panes animate together during click zoom (stacked on #1747) by @AlexChambers in #1832
  • CI-RUST195: keep strict Clippy clean on Rust 1.95 by @Myrarc in #1835
  • Keywords panel: sections fold, Add keyword offers the library's keywords, and removals say what they touched by @nledford in #1166
  • i18n: add Czech (cs) interface language by @Losminek in #1190
  • Nix: nix build and nix develop work again on NixOS by @dev-null-undefined in #1211
  • KEY-SLIDER-NUDGE: scrolling sideways over a slider adjusts it by @PiMinusMax in #1465
  • LR-RAW-NEF: Coolpix P7000 NRW files decode without stripes and with their white balance by @radialmonster in #1467
  • build: automatically include CJK fonts and fix Windows packaging compatibility by @draco892 in #1479
  • LR-VIEW-PHOTOGRID: a mouse-wheel notch scrolls a third of the grid or filmstrip by @MarkusFriedel in #1482
  • LR-EDIT-DETAIL-NR: noise reduction works in the original's pixels, so previews match the full-size render scaled down (fixes #960) by @atmikshetty in #1489
  • KEYC-RATING: backtick cycles the flag; Cmd+Up / Cmd+Down raise / lower it by @atmikshetty in #1490
  • LR-LIB-PEOPLE: rename a person across the library (#1444) by @Hossamvs in #1510
  • LR-EDIT-EFFECTS-DEHAZE: raster::morph square min / max filters (split from #1286) by @mattsivak in #1521
  • Fix range-mask handle drags and color sampling settings by @nevicia2010-hub in #1538
  • LR-IMP-LOCAL: Forget untouched records of deleted files when browsing a folder again (#1392) by @endthestart in #1547
  • LR-BEHAV-GPU: Turn GPU rendering off after the GPU is lost while running (#1337) by @endthestart in #1548
  • LR-MERGE-PANO: Keep panoramas at full resolution when memory allows (#1455) by @endthestart in #1549
  • Library grids: Home/End and Shift+Left/Right selection keys; Cmd+O opens a library, Shift+H visualizes HDR by @eliets2 in #1555
  • LR-LIB-STACK: deleting a stacked photo drops it from the stack so i/n badges update (fixes #1493) by @squareSphere29 in #1556
  • LR-META-INFO: Show the lens for Nikon DSLR raws by @endthestart in #1590
  • LR-IMP-DEVICE: Show the import review when a card is connected by @endthestart in #1601
  • LR-MERGE-HDR: merged DNGs declare the white balance their source shows (follow-up to #1123) by @alvarohn in #1613
  • LR-BEHAV-WINDOW: the window opens at the size it was left at, zoomed if it was by @nledford in #1625
  • Protect originals and preserve existing files when exporting presets by @SarimSyed in #1637
  • LR-LIB-SMARTALBUM: a view can hold its photos until it is refreshed by @nledford in #1656
  • PERF-EDIT: an edit is followed from what it touched, not worked out from every photo (stacked on #1656) by @nledford in #1660
  • PERF-EDIT: a smart album's count follows an edit, asking only the photos it touched (stacked on #1660) by @nledford in #1662
  • LRC-LIB-PEOPLE: a double click on an unnamed face opens its photo in the loupe by @marcoarnulfo in #1665
  • Import: find sidecars whose photo extension or .xmp differs in case by @emmertex in #1686
  • fix(mcp): stop stdio cleanly after output failure by @euisuh in #1688
  • Loupe: the info overlay's shadow is dark, not a second white copy of the text by @marcoarnulfo in #1693
  • LR-IMP-FORMATS: decode EOS R6 Mark II C-RAW with adaptive QP up to 175 by @cookingwithsimon in #1694
  • Metadata: read the Panasonic lens name from maker note tag 0x0051 (#1671) by @switch87 in #1703
  • LR-PROF-BROWSER: long profile names are cut short in a narrow panel by @marcoarnulfo in #1710
  • LR-MERGE-HDR: moving clipped highlights stay, less memory, and HDR for Each Bracket Set by @dev-null-undefined in #1715
  • Colour grading wheels: vivid sRGB rim fading evenly to neutral by @emmertex in #1719
  • MCP-CONTROL: validate remote reply framing and IDs (#1716) by @G6bill in #1722
  • Perf: DNG Deflate tiles at level 1, 4.8–7× faster writes for 3–12 % more bytes by @dev-null-undefined in #1731
  • render --settings applies the preset in a .lcpreset, and refuses files it can't read by @marcoarnulfo in #1733
  • Lightroom import: raise catalog/WAL size limit from 1 GiB to 4 GiB by @vpjl in #1738
  • catalog: slice captured dates on char boundaries so non-ASCII dates don't panic by @midasmatterhorn in #1741
  • packaging: RPM requires library sonames, so openSUSE can install it by @tydude001 in #1744
  • Before/After: a click on the Before view zooms in on the point clicked by @marcoarnulfo in #1747
  • gpu: init-marker tests use their own scope counter so parallel device tests cannot join them (#1721) by @MarekSpodBiedry in #1758
  • Top bar: in full screen the left buttons move into the traffic lights' space by @marcoarnulfo in #1767
  • Widen offline reverse-geocoding longitude search at high latitudes by @Silvertree2010 in #1769
  • Never crash: Write preview cache files from one bounded writer (#1522) by @endthestart in #1777
  • raw: check maker-note crop bounds with checked_add by @midasmatterhorn in #1792
  • engine: refuse negative indices instead of targeting element 0 by @midasmatterhorn in #1793
  • LRC-SS-PLAYBACK: slideshow playback: fades, random order, repeat, previews prepared in advance, playback controls by @bitshiftza in #796
  • Use consistent arrows throughout the app and clarify histogram controls by @shurkanTwo in #806
  • Slideshow layout, options and backdrop: composed slides in playback and a live preview (LRC-SS-LAYOUT/OPTIONS/BACKDROP, stacked on #796) by @bitshiftza in #808
  • Slideshow overlays: identity plate, rating stars, text with tokens, watermark (LRC-SS-OVERLAYS, stacked on #808) by @bitshiftza in #821
  • LR-EDIT-OPTICS-PROFILE: Sony ILCE-7RM6 embedded lens corrections (distortion applied; CA and vignetting parsed) by @dev-null-undefined in #824
  • Slideshow intro and ending screens (LRC-SS-TITLES, stacked on #821) by @bitshiftza in #904
  • Slideshow templates: built-ins of our own, user templates, browser with hover preview (LRC-SS-TEMPLATES, stacked on #904) by @bitshiftza in #912
  • Slideshow export to PDF, JPEG sequence and AV1 video (LRC-SS-EXPORT, stacked on #912) by @bitshiftza in #929
  • Rotate left/right turns the crop with the image instead of cutting it (#962) by @MarekSpodBiedry in #966
  • LR-IMP-FORMATS: recheck stale preview-only raws when a library opens (#662) by @valenfys in #974
  • Export: "Same folder as original photo" destination (#956) by @itrycodinganditsbad in #996
  • LR-VIEW-ZOOM: slider drags stay sharp where the GPU keeps up (#330) by @mattsivak in #1009
  • LR-EXP-DNGOPT: lossy DNG export by @emmertex in #1010
  • LR-IMP-FORMATS: verify 22 more CR3 bodies; EOS R6 Mark III white balance by @emmertex in #1029
  • LR-MASK-BRUSH: pen pressure scales brush size and flow by @emmertex in #1033
  • LR-BEHAV-ACCESS: canvas tools by keyboard (stacked on #1023) by @emmertex in #1038
  • LR-IMP-CAMERA-COVERAGE: verify 117 Nikon and Fujifilm bodies on CC0 files by @emmertex in #1045
  • LR-IMP-CAMERA-COVERAGE: measured image area for Nikon bodies without CropArea by @robmdunn in #1053
  • LR-MASK-EFFECTS: local adjustment presets with Lightroom Classic import by @OneSlips in #1062
  • LR-IMP-CAMERA-COVERAGE: verify 97 Canon CR2, Pentax and Ricoh models on CC0 files by @emmertex in #1081
  • LR-IMP-FORMATS: decode Epson ERF by @emmertex in #1087
  • LR-IMP-CAMERA-COVERAGE: verify 21 Sony and Leica models on CC0 files by @emmertex in #1096
  • Add complete Polish (pl) localization by @neronek22 in #1100
  • UI: align Local folder rows, paint dock gaps, bottom-align the tool strip (#1097, #1098, #1099) by @mattsivak in #1102
  • LR-IMP-FORMATS: import and decode Mamiya MEF (stacked on #1087) by @emmertex in #1105
  • Preview cache: cached thumbnails are no longer taken for the person's photos (#610, #1066) by @nledford in #1106
  • LR-IMP-CAMERA-COVERAGE: verify 17 uncompressed Olympus and Samsung models on CC0 files by @emmertex in #1108
  • L10N: fill the de, es, fr, ja and uk catalogs (gap 21) by @emmertex in #1111
  • docs: add user docs in docs/user by @itrycodinganditsbad in #1180
  • LR-EDIT-SECTION-SOLO: Solo Mode for Edit sections by @mattsivak in #1308
  • Fonts: finish Thai fallback delivery for desktop and web releases by @LabDennis in #1311
  • LR-IMP-FORMATS: property tests for the CRX decoder by @eliets2 in #1461
  • LR-IMP-FORMATS: CI-enforce the unsupported CRX variants listed in docs/cr3.md by @eliets2 in #1462
  • LR-PROF-CAMERACOLOR: Canon EOS R7 / R6 Mark II calibrate measurements by @cookingwithsimon in #1466
  • KEY-HIDEPINS: Tool Overlay modes (Auto / Always / Selected / Never) for spot and mask pins, Shift+H cycles them (fixes #224) by @atmikshetty in #1473
  • KEYC-COMPARE: = and - make the grid thumbnails larger and smaller by @atmikshetty in #1491
  • People: confirm suggested faces above a chosen score (#1442) by @Th4nat0s in #1495
  • LR-EXP-QUALITY: Use optimized Huffman tables for JPEG exports (#1373) by @endthestart in #1540
  • fix(rawinfo): report failed validation batches through exit status by @FooVoo in #1696
  • LR-PROF-CAMERACOLOR: bundled Sony ILCA-99M2 camera profile by @PiMinusMax in #1019
  • Integration batch 37: 20 rebased community PRs (print module, decode speed-ups, camera coverage, Italian) by @echelon in #1852
  • feat(xtask): #1037 ci reports the machine, GPU adapters and skipped tests by @THEtheChad in #1135
  • perf(catalog): #1136 index stacks and album membership; no per-photo list scans at 100k by @THEtheChad in #1138
  • LR-EDIT-OPTICS-PROFILE: decode Sony shading, CA and distortion tables (nothing new applied), plus a BigTIFF overflow fix by @AlexChambers in #1176
  • i18n: translate dialog notes, toasts and tooltips by @emmertex in #1298
  • DNG: fit tone and chroma curves to the embedded preview (#1277) by @radialmonster in #1316
  • Perf: 64 MP raws decode faster (AHD 1.7×, ARW6 decode, camera-look colour 1.9×, no full-size copy), same pixels by @dev-null-undefined in #1320
  • LR-IMP-CAMERA-COVERAGE: verify 30 more camera models on public raw files by @AlexChambers in #1327
  • LR-IMP-PROFILES: Presets apply the imported profile they name (#1001) by @cookingwithsimon in #1469
  • LR-RAW-NEF: stretch non-square pixels (Nikon D1X/D1H) to square by @radialmonster in #1475
  • fix(export): a metadata/sharpen/conflict value that passes validation is the one exported by @sperea in #1705
  • Edit panel: the histogram clipping buttons stay clear of the hovered scroll bar by @marcoarnulfo in #1708
  • LRC-LIB-KEYWORDS: the Keyword List holds its place as the Keywords box above it changes by @nledford in #1755
  • LR-BEHAV-EMPTY-STATES: an empty library leads to Import by @nledford in #1761
  • LR-PROF-DROPDOWN: a long profile name no longer widens the Edit panel by @marcoarnulfo in #1762
  • Commands: Refuse malformed photo ids instead of using the selection (#1506) by @endthestart in #1773
  • Dialogs: the confirm button is on the right, filled when it is the next step by @nledford in #1802
  • Buttons: one component with kinds, sizes and icons (stacked on #1802) by @nledford in #1810
  • Add Italian interface translation by @GabrielePecchioli in #1198
  • Print module: picture and custom packages, printer colour management, colour-managed PDF (gap 15) by @atmikshetty in #1215
  • LR-MERGE-PANO: a panorama or HDR merge of raws keeps the as-shot white balance of its frames by @eliets2 in #1471
  • Integration batch 38: 6 rebased community PRs (Nikon camera profiles, lens-corrected colour, HDR frame order, focus points) by @echelon in #1857
  • LR-PROF-CAMERACOLOR: Match the camera look against lens-corrected JPEGs by @endthestart in #1586
  • LR-PROF-CAMERACOLOR: Add a bundled Nikon Z 6II camera profile by @endthestart in #1592
  • LR-MERGE-HDR: frame-order independent merges, and no magenta bias next to clipped pixels by @alvarohn in #1614
  • LRC-LIB-LIBFOLDERS: drag photos from the grid onto a Folders row to move them there by @nledford in #1834
  • Show the camera's focus point (Sony α1, A7S III) and zoom to it (#1480) by @bitshiftza in #1487
  • LR-PROF-CAMERACOLOR: Add bundled Nikon Z 8 and D5300 camera profiles by @endthestart in #1595
  • Integration batch 39: 4 rebased community PRs (Georgian, slider scrub and reset hints, straight brush lines) and the Windows ARM64 font pin by @echelon in #1865
  • LR-MASK-BRUSH: Shift-click draws a straight brush stroke from the last one by @endthestart in #1829
  • KEY-SLIDER-RESET: a slider's name and thumb say a double-click resets it (fixes #1436) by @atmikshetty in #1474
  • KEY-SLIDER-SCRUB: drag a slider's value sideways to scrub it by @good-news-everyone in #1604
  • i18n: Georgian (ka) interface language by @devius in #1823
  • Integration batch 40: 3 rebased community PRs (GPU face detection, soft-proof zoom windows, faster folder sync) and restored tracker rows by @echelon in #1867
  • LR-VIEW-ZOOM: soft proofing gets zoom windows; 1:1 tested equal to export by @emmertex in #1027
  • PERF-SYNC: a Synchronize Folder scan reads off the folder's listing whether a photo and its sidecar are there by @nledford in #1602
  • Faces: GPU (wgpu) path for detection and recognition convolutions by @emmertex in #1663
  • ci: refactor workflows to use storytold/craft-common-actions by @dylanmtaylor in #967
  • Follow catalog paths only on this computer or the catalog's share by @skylartaylor in #2175
  • Open Original: only file types LightCraft reads reach the system opener by @skylartaylor in #2199
  • Fix offline reverse geocoding for cities at longitude exactly 180 by @Silvertree2010 in #2061
  • Fix Assisted Culling bursts that cross midnight at month end by @Silvertree2010 in #2095
  • Search words with an unknown field prefix as plain text by @Silvertree2010 in #2099
  • Keep the zone when shifting a capture time without seconds by @Silvertree2010 in #2146
  • Codecs: clip positive-infinity float samples to white (#1952, item 6) by @AlexChambers in #2071

New Contributors

  • @midasmatterhorn made their first contribution in #1791
  • @IanHollow made their first contribution in #1795
  • @FredApps made their first contribution in #1797
  • @guillehr2 made their first contribution in #1804
  • @Silvertree2010 made their first contribution in #1813
  • @Myrarc made their first contribution in #1835
  • @Losminek made their first contribution in #1190
  • @draco892 made their first contribution in #1479
  • @Hossamvs made their first contribution in #1510
  • @nevicia2010-hub made their first contribution in #1538
  • @squareSphere29 made their first contribution in #1556
  • @SarimSyed made their first contribution in #1637
  • @euisuh made their first contribution in #1688
  • @G6bill made their first contribution in #1722
  • @vpjl made their first contribution in #1738
  • @tydude001 made their first contribution in #1744
  • @valenfys made their first contribution in #974
  • @neronek22 made their first contribution in #1100
  • @LabDennis made their first contribution in #1311
  • @Th4nat0s made their first contribution in #1495
  • @FooVoo made their first contribution in #1696
  • @sperea made their first contribution in #1705
  • @GabrielePecchioli made their first contribution in #1198
  • @good-news-everyone made their first contribution in #1604
  • @devius made their first contribution in #1823
Full Changelog: v0.8.0...v0.9.1

Performance and Compatibility

LightCraft is written in Rust and uses background rendering to keep the interface responsive during common editing operations. The project reports that it can display embedded camera previews or cached renders quickly while preparing full-resolution images in the background.

The application supports Windows, macOS, and Linux, as well as a browser-based WebAssembly build. Available Linux packages include AppImage, DEB, and RPM formats, with builds for x86-64 and ARM64 systems.

However, LightCraft is still a developing project. Its feature list should not be interpreted as proof of complete Adobe Lightroom compatibility. Photographers with established Lightroom workflows should verify RAW camera support, editing results, and catalog migration before moving their primary library.

System Requirements

  • Operating systems: Windows, macOS, and Linux.

  • Browser support: A WebAssembly build is available.

  • Processor architectures: Linux releases include x86-64 and ARM64 builds.

  • Build requirements: Rust and the project's documented dependencies are needed to compile from source.

The project does not establish a comprehensive minimum hardware specification in the information reviewed. Actual performance will depend on image resolution, RAW processing requirements, and available system resources.

Pros and Cons

Pros

  • Free and open-source under the MIT and Apache 2.0 licenses.

  • Non-destructive editing preserves original photos.

  • Extensive controls for exposure, tone curves, color grading, and local adjustments.

  • Photo library organization tools for managing larger collections.

  • Native applications for major desktop operating systems.

  • Browser-based build for experimentation without a traditional desktop installation.

  • Command-line and MCP support for automation.

  • Local-first workflow without a mandatory cloud account or subscription.

Cons

  • Still under active development, so feature completeness and reliability may vary.

  • Compatibility with existing Lightroom catalogs and established workflows needs verification.

  • RAW format support may not cover every camera model or file variation.

  • Users accustomed to Lightroom may encounter differences in editing behavior and output.

  • Advanced automation and browser workflows may require additional setup.

  • Published minimum hardware requirements are limited.

How to Install

The simplest option is to download a suitable package from the project's GitHub Releases page. Linux users can choose the available AppImage, DEB, or RPM package, while macOS and Windows packages are also provided.

For users who prefer to build from source, install Rust and the required development tools, then run:

git clone https://github.com/storytold/lightcraft
cd lightcraft
cargo run --release -p lightcraft

To open a specific photo folder, pass its path when launching the application:

cargo run --release -p lightcraft -- ~/Pictures/trip

To try the browser-based build, follow the project's WebAssembly setup instructions and run:

cargo xtask web --serve

The project also provides a command-line renderer for scripted workflows. Consult the official documentation for supported formats, available adjustment parameters, and platform-specific installation details.

Final Verdict

LightCraft is a promising open-source alternative for photographers who want a local photo library and RAW editing workflow without relying on a commercial subscription. Its combination of non-destructive editing, color grading, masking, presets, and catalog management makes it more ambitious than a basic image editor.

Its strongest differentiators are its Rust-based architecture, local-first design, and automation support. These features may appeal to technical users and photographers interested in building repeatable editing workflows.

The main reservation is maturity. Before switching from Lightroom, users should test their own camera RAW files, compare exported images, and confirm that the library features they depend on are available and reliable. LightCraft is worth trying, but photographers with demanding production workflows should evaluate it alongside their existing tools rather than assume full feature parity.

LightCraft v0.9.1
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux / BSD
Date Added:
2026-10-18T05:07:15.428Z