PhotoCraft v0.23.1

PhotoCraft is an open-source image editor designed as a clean-room reimplementation of Adobe Photoshop, built entirely in Rust. It provides a surprisingly broad set of professional image-editing features, including layers, masks, adjustment layers, filters, vector shapes, editable text, brushes, and native PSD support.

The project is particularly interesting for users who want a local, open-source Photoshop alternative without relying on Electron, cloud services, or proprietary software. However, PhotoCraft is still in early alpha, so it is better viewed as a promising alternative under active development than as a complete replacement for Photoshop.

Features

PhotoCraft offers a substantial collection of image-editing tools:

  • Layer groups, clipping masks, pixel and vector masks

  • Adjustment layers for Curves, Levels, Vibrance, Hue/Saturation, Black & White, Gradient Map, Selective Color and more

  • Layer styles including Drop Shadow, Inner Shadow, Glow, Bevel & Emboss, Stroke, and overlays

  • Brush, Pencil, Mixer Brush, Clone Stamp, Healing Brush and other painting tools

  • Marquee, Lasso, Magic Wand, Quick Selection, Object Selection and Select Subject

  • Editable point and paragraph text

  • Pen and vector shape tools

  • Smart objects and smart filters

  • Free Transform with scale, rotate, skew, distort and perspective

  • History and History Brush

  • Multiple blend modes, opacity, fill and layer controls

  • Color management with RGB, Grayscale, CMYK and Lab

  • 8, 16 and 32-bit-per-channel documents

  • PSD and PSB support

  • PNG, JPEG, TIFF, WebP, GIF, BMP, TGA, ICO, OpenEXR, HDR, AVIF and other formats

  • Export preview with quality, transparency, scale and estimated file size

  • Command palette and recorded actions

Its PSD support is one of its strongest features. The project tests its implementation against real-world PSD files and reports very high rendering compatibility across its test corpora. Unsupported data is designed to be preserved rather than simply discarded when documents are saved.

Another unusual feature is its automation architecture. PhotoCraft exposes its editing engine through the desktop interface, CLI, JSON control channel and MCP, making the application suitable for scripted workflows and AI-agent automation.

Download PhotoCraft v0.23.1 - Software Mirrors

PhotoCraft v0.23.1 for Windows

photocraft-0.23.1-windows-x64.msi | 112.94 MB

photocraft-0.23.1-windows-x64-symbols.zip | 6.91 MB

photocraft-0.23.1-windows-x64-portable.zip | 136.5 MB

photocraft-0.23.1-windows-arm64.msi | 106.43 MB

photocraft-0.23.1-windows-arm64-symbols.zip | 6.49 MB

photocraft-0.23.1-windows-arm64-portable.zip | 130.07 MB

PhotoCraft v0.23.1 for macOS

photocraft-cli-0.23.1-macos-universal.zip | 114.89 MB

photocraft-0.23.1-macos-universal.dmg | 261.49 MB

PhotoCraft v0.23.1 for Linux

photocraft-0.23.1-linux-x86_64.tar.gz.asc | 228 B

photocraft-0.23.1-linux-x86_64.tar.gz | 133.02 MB

photocraft-0.23.1-linux-x86_64.rpm.asc | 228 B

photocraft-0.23.1-linux-x86_64.rpm | 134.14 MB

photocraft-0.23.1-linux-x86_64.pkg.tar.zst | 105.94 MB

photocraft-0.23.1-linux-x86_64.flatpak.asc | 228 B

photocraft-0.23.1-linux-x86_64.flatpak | 99.73 MB

photocraft-0.23.1-linux-x86_64.deb.asc | 228 B

photocraft-0.23.1-linux-x86_64.deb | 135.06 MB

photocraft-0.23.1-linux-x86_64.AppImage.zsync.asc | 228 B

photocraft-0.23.1-linux-x86_64.AppImage.zsync | 220.82 kB

photocraft-0.23.1-linux-x86_64.AppImage.asc | 228 B

photocraft-0.23.1-linux-x86_64.AppImage | 126.04 MB

photocraft-0.23.1-linux-riscv64.tar.gz.asc | 228 B

photocraft-0.23.1-linux-riscv64.tar.gz | 130.31 MB

photocraft-0.23.1-linux-riscv64.rpm.asc | 228 B

photocraft-0.23.1-linux-riscv64.rpm | 131.51 MB

photocraft-0.23.1-linux-riscv64.deb.asc | 228 B

photocraft-0.23.1-linux-riscv64.deb | 132.14 MB

photocraft-0.23.1-linux-aarch64.tar.gz.asc | 228 B

photocraft-0.23.1-linux-aarch64.tar.gz | 127.25 MB

photocraft-0.23.1-linux-aarch64.rpm.asc | 228 B

photocraft-0.23.1-linux-aarch64.rpm | 129.57 MB

photocraft-0.23.1-linux-aarch64.pkg.tar.zst | 102.23 MB

photocraft-0.23.1-linux-aarch64.flatpak.asc | 228 B

photocraft-0.23.1-linux-aarch64.flatpak | 93.32 MB

photocraft-0.23.1-linux-aarch64.deb.asc | 228 B

photocraft-0.23.1-linux-aarch64.deb | 130.73 MB

photocraft-0.23.1-linux-aarch64.AppImage.zsync.asc | 228 B

photocraft-0.23.1-linux-aarch64.AppImage.zsync | 211.72 kB

photocraft-0.23.1-linux-aarch64.AppImage.asc | 228 B

photocraft-0.23.1-linux-aarch64.AppImage | 120.84 MB

PhotoCraft v0.23.1 for BSD

photocraft-0.23.1-freebsd-x86_64.tar.gz | 132.14 MB

photocraft-0.23.1-freebsd-aarch64.tar.gz | 124.94 MB

Others Download related to PhotoCraft v0.23.1

release-signing-key.asc | 803 B

photocraft-web-0.23.1.zip | 15.32 MB

PhotoCraft v0.23.1 Source Code

PhotoCraft v0.23.1 Source code (zip)

PhotoCraft v0.23.1 Source code (tar.gz)

PhotoCraft v0.23.1 Release Notes:

What's Changed

  • fix(ui): keep the Color Sampler cursor while a sampler is dragged (#13063) by @RickiNano in #13212
  • fix(ui): the Arbitrary angle rounds in f64 and keeps that value (#13067) by @RickiNano in #13217
  • Remove tool: 19 px brush after Reset Tool and on first use by @rmsff in #13151
  • Release: PhotoCraft v0.23.0 on main by @FredApps in #13345
  • Remove: alert on a pixel layer with Lock All by @rmsff in #13171
  • Pen: Undo after finishing a path gives it back to the Pen instead of deleting it (#6619) by @marmitoTH in #6413
  • ci: use StepSecurity's maintained actions by @dylanmtaylor in #13337
  • macOS signing: decode the certificate into an exclusive temp file by @dylanmtaylor in #11028
  • Place: refuse a scale that makes the placed image exceed the render pixel limit by @dylanmtaylor in #11229
  • automation: save_bytes never reads linked files by @dylanmtaylor in #11233
  • Escape control characters in log lines and diagnostic output taken from files and plug-ins by @dylanmtaylor in #11218
  • text: charge the rasterizer's output tiles, not only its pixels by @dylanmtaylor in #11047
  • fix(engine): apply the metadata choice to WebP Quick Export by @dylanmtaylor in #11058
  • fix(compose): bisect gradient stops, evict oversized effect maps, skip empty distance transforms by @dylanmtaylor in #11056
  • Camera Raw: read each source row once when building the preview proxy by @dylanmtaylor in #11064
  • fix(cms): charge decoded CLUT values against a per-profile budget by @dylanmtaylor in #11055
  • Save: a replacement in another group does not widen group access by @dylanmtaylor in #11232
  • fix(ui-egui): bound the RAW re-read and treat symlinked names as taken in batch export by @dylanmtaylor in #11204
  • fix(algo): hold raw filter parameters to their ranges (Water Paper, Box Blur, Lanczos, Camera Raw noise) by @dylanmtaylor in #11199
  • fix(algo): bound EXIF text decoding, warp scans, gallery windows, inpaint sizes, pyramid depth by @dylanmtaylor in #11161
  • codecs: list each Cryptomatte layer once and index streams by name by @dylanmtaylor in #10978
  • fix(gpu): cap plan accumulator slots and gradient lookup tables by @dylanmtaylor in #11061
  • fix(io): charge importers for the whole tiles surfaces keep by @dylanmtaylor in #11144
  • fix(format,engine): limit zstd windows, set bundle modes via the handle, refuse symlinked presets by @dylanmtaylor in #11145
  • fix(codecs): checked sizes in encoders, EXR name lookup, FITS float limit, VP8 plane copies, EXIF thumbnail bytes by @dylanmtaylor in #11164
  • fix(engine): bound sparse remap, scaled clone sources, path reads, export format, name lookups by @dylanmtaylor in #11181
  • fix(engine): authorization for nested scratch sessions and preset calls, CSV and PostScript text escaping by @dylanmtaylor in #11188
  • Actions: charge skipped steps to the playback budget, bound batch nesting, clip the set override by @dylanmtaylor in #10969
  • Engine: check dense working buffers against a budget before expanding sparse content by @dylanmtaylor in #10964
  • paint: refuse a sequential-dab stroke whose working copy is too large by @dylanmtaylor in #11070
  • CI: nightly release dry run by @FredApps in #13374
  • Zoom tool: Zoom In / Zoom Out mode buttons (#12066) by @RickiNano in #13013
  • Delete Anchor Point: Alt-click on an anchor selects its whole subpath by @rmsff in #13188
  • Convert Point: drag a segment as Direct Selection does by @rmsff in #13141
  • Freeform Pen: close a stroke only within 3 px of its start on each axis by @rmsff in #13313
  • Line tool: Weight 1 px and 5 × 10 px arrowheads by default and after Reset Tool (#13241) by @RickiNano in #13305
  • Count tool options bar: every control from the start in the reference order, tooltips and greying, scrubby size captions (#11765) by @hectorviov in #12206
  • paint: two stroke tests check the result the stroke now returns by @dylanmtaylor in #13378
  • Polygon tool: a rounded star rounds only its outer points (#13308) by @RickiNano in #13342
  • Type options bar: Toggle Character and Paragraph panels button by @slafebre in #13020
  • Line tool: a drag is one History step named "Line Tool" (#13244) by @NaufalDzz in #13303
  • Delete Anchor Point keeps its path on the first Escape, and leaves a drag alone (#13072) by @Raghav2012Code in #13176
  • Add Anchor Point: an anchor added to a straight segment is smooth, with handles (#12706) by @TrevorBrown-dev in #13215
  • fix(ui): a Perspective Crop drag with no area keeps the clicked corners (#13065) by @Raghav2012Code in #13234
  • ci: cap headless GPU backend tests with the nextest gpu group by @davidmann4 in #13257
  • Perspective Crop: W, H and Resolution clamp to the measured ranges with alerts by @hectorviov in #12237
  • Fix Flatpak updates and bump to 0.23.1 by @dylanmtaylor in #13322
Full Changelog: v0.23.0...v0.23.1

Performance and Compatibility

PhotoCraft is built as a native Rust application rather than a web wrapper or Electron application. Its rendering architecture uses wgpu for GPU compositing with support for graphics APIs including Metal, Vulkan, DirectX 12 and WebGPU.

The application also uses multithreaded filters and copy-on-write sparse tiles. This design is intended to reduce unnecessary copying and make large layered documents more manageable.

The project reports extensive automated testing, including PSD round-trip tests, compositor comparisons and multi-depth testing. Its architecture also includes a CPU compositor used as a reference against the GPU compositor.

PhotoCraft can run natively on Windows, macOS, Linux and FreeBSD, with a WebAssembly build for browser use.

The main limitation is maturity. The developers explicitly describe the project as early alpha and acknowledge that it is not yet suitable as a complete replacement for Photoshop in professional daily workflows. Missing areas include AI and generative features, some tools, deeper typography and professional workflows, and plugin compatibility.

System Requirements

PhotoCraft supports:

  • Windows

  • macOS

  • Linux

  • FreeBSD

  • WebAssembly/browser

Linux distributions can use AppImage, DEB, RPM, tarball or Flatpak packages.

Hardware requirements are not presented as a simple minimum specification. Because PhotoCraft uses GPU acceleration, actual performance will depend heavily on the graphics hardware and the size and complexity of the documents being edited.

Pros and Cons

Pros

  • Open-source and available under permissive MIT or Apache-2.0 licensing

  • Native Rust application

  • No Electron or embedded web browser required

  • Excellent focus on PSD compatibility

  • Extensive layer and adjustment-layer support

  • GPU-accelerated rendering

  • Supports CMYK, Lab and high-bit-depth documents

  • Strong brush and vector capabilities

  • Windows, macOS, Linux and FreeBSD support

  • Can also run through WebAssembly

  • Powerful CLI and automation capabilities

  • MCP support makes it interesting for AI-assisted workflows

  • Offline-first approach

Cons

  • Still early alpha

  • Not yet a complete Photoshop replacement

  • Missing some tools and professional workflows

  • No Photoshop plugin compatibility

  • AI and generative editing features are limited or absent

  • Typography capabilities are not yet as mature as established professional editors

  • Some rough edges should be expected

How to Install

The easiest approach is to download the appropriate package from the project's GitHub releases.

Linux users have several packaging options, including AppImage, DEB, RPM, tarball and Flatpak. Windows has a portable package, while macOS has a universal disk image.

Developers can also build PhotoCraft directly from source using Rust:

git clone https://github.com/storytold/photocraft
cd photocraft
cargo run --release -p photocraft -- image.psd

The repository also provides CLI functionality for automated editing and batch processing.

Final Verdict

PhotoCraft is one of the more ambitious open-source Photoshop alternatives currently available. Its combination of native Rust performance, extensive layer support, serious PSD compatibility work and an unusually capable automation architecture makes it much more than a basic image editor.

The strongest reason to watch PhotoCraft is its engineering approach. The project is building a real image-editing engine rather than simply creating a Photoshop-like interface, and its extensive PSD testing provides a useful foundation for compatibility.

The biggest problem is maturity. The project itself acknowledges that it is still early alpha and lacks several areas required for professional Photoshop replacement workflows. Users who depend on plugins, advanced typography, AI features or highly polished production workflows should not switch completely yet.

For enthusiasts, developers, Linux users, open-source advocates and anyone interested in building automated image-processing workflows, however, PhotoCraft is particularly compelling.

PhotoCraft v0.23.1
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux / BSD
Date Added:
2026-11-12T21:07:22.111Z
Categories:

Post a Comment/Report Broken Link: