PhotoCraft Photoshop-Compatible Editor: Open Source, Written in Rust
PhotoCraft is a Photoshop-compatible photo editor written from scratch in pure Rust that treats its own command layer as the product: an AI agent can open a document, run filters, batch a folder and export the result over MCP or the command line, using the same engine the desktop interface calls.
What PhotoCraft is
PhotoCraft is an open-source photo editor written from scratch in pure Rust. It is a clean-room project: nothing is borrowed from Adobe, and the whole editing stack — document model, GPU compositor, file formats and interface — is built in the open by the ArtCraft team.
It went from a first commit to a tagged release in under two weeks and now sits at 53,904 stars and 8,997 forks. It ships as a desktop application for Windows, macOS, Linux and FreeBSD, and as a WebAssembly build that runs the same editor in a browser tab.
What makes it interesting on this board is not the star count, though. It is that the editor was designed so that an AI agent can drive it.
Built to be driven by an agent
Every action in the interface is a typed command, and the same commands are exposed three ways: an MCP server, a CLI, and a JSON control channel that listens on loopback only and requires a token. There are more than 500 commands in total, each with its own parameter schema.
photocraft-cli run wave.psd --cmd filter.sharpen.smartSharpen --params {"amount":80} --out wave-final.pngphotocraft-cli batch --actions grade.json --in ./raw --out ./gradedBecause the command layer is the same one the UI calls, an agent gets the real editor rather than a headless approximation, and it can read back a result for every step it takes.
What is inside the editor
67 tools, 16 adjustment layers and 27 blend modes (plus six Paint.NET-compatible variants), a brush engine with dynamics, a full type engine, vector shapes and smart objects. Colour is managed end to end with ICC profiles in RGB, Grayscale, CMYK and Lab at 8, 16 and 32 bits per channel.
Rendering runs on wgpu, so the same compositor targets Metal, Vulkan, Direct3D 12 and WebGPU. A second, deliberately simple CPU compositor works as the reference oracle the GPU path is checked against — which is why the project can publish exact pixel-parity numbers instead of screenshots.
Files it opens and writes
PSD and PSB with layers, a layered TIFF path, the project's own .pcraft document, OpenRaster read and write, and SVG. Raster import and export covers PNG, JPEG, WebP, GIF, BMP, TGA, ICO, QOI and PNM; HDR work goes through OpenEXR, Radiance HDR, FITS and DPX.
Read-only support exists for Krita documents, Paint.NET PDN3 files and Affinity documents, and the official builds add HEIC import through a bundled decoder. Raster camera formats come in through a separate crate, so the editor is not limited to already-developed images.
How close is it to Photoshop?
The project publishes its parity numbers rather than claiming them. On the standard psd-tools corpus, 307 of 309 files round-trip to a pixel-identical render, 116 of 116 Photoshop shape layers match, and for the files its own writer can parse the output is byte-for-byte identical to the input. A second, larger mixed corpus passes 169 of 170.
The honest caveat is that this is still an early alpha. Generative AI tools are absent, around fifteen interactive tools are unfinished, and typography does not yet go as deep as a professional retoucher expects. It is a serious editing core, not a finished replacement for anyone's daily production work.
Run it yourself
Signed installers are published for Windows (x64, arm64 and a 32-bit build) and macOS (universal, signed and notarised), with AppImage, Flatpak, deb, rpm and tarball builds for Linux on x86_64 and aarch64, plus a FreeBSD tarball and a WebAssembly bundle that can be hosted as a static site.
git clone https://github.com/storytold/photocraftcargo run --release -p photocraft -- image.psdThere are more than 1,700 tests in the workspace; cargo test --workspace runs them. Japanese text needs the optional fonts crate installed. On Wayland, drag and drop is still open as a known gap.
Where to go next
The source, the parity reports and the issue tracker all live in the storytold/photocraft repository, and release downloads are on the releases page. The team also publishes the editor and its siblings at getartcraft.com/apps/photocraft.
If you are wiring it into an agent workflow, the command reference in the repository's book directory is the place to start — it lists every command, its parameters and what it returns.