Skip to main content

PhotoCraft / Guide

PhotoCraft Quickstart: A Photoshop in Pure Rust

PhotoCraft is an open-source, clean-room reimplementation of Adobe Photoshop, written from scratch in Rust. Layers, masks, adjustment layers, layer styles, type, vectors, brushes and real PSD files, in a native app that also compiles to WebAssembly.

What you need

  • Rust with a recent stable toolchain
  • Git
  • Optional: craft-fonts for the Japanese UI and Type fonts
git clone https://github.com/storytold/photocraft
cd photocraft
cargo run --release -p photocraft -- image.psd   # the desktop app
cargo test --workspace                           # the test suite

Release installers for macOS, Windows, Linux and FreeBSD are attached to each GitHub release. On Linux you can pick an AppImage, a .deb, an .rpm, a tarball or a Flatpak bundle. The whole engine also runs in the browser as a WebAssembly build.

Edit with familiar tools

If you know Photoshop, the layout is where your hands expect it: menus, shortcuts, panels and 34 tools, from ⇧⌘D to the Pen tool.

  • Adjustment layers keep every edit live. Stack Levels, Curves, Vibrance and more, mask them, reorder them, and your original pixels never change. There are 16 of them.
  • Layer styles — Drop Shadow, Inner Shadow, Outer and Inner Glow, Bevel & Emboss, Satin, Stroke and Color, Gradient and Pattern Overlay — apply live to any layer, including type.
  • Selections go from marquees and the Magic Wand to Quick Selection, Object Selection and Select Subject, all on your machine with no cloud.
  • Vectors are resolution-independent shape layers; type is edited right on the canvas.

Save real PSD files

PhotoCraft opens, edits and saves layered Photoshop documents. Re-saving keeps the render of 307 of the 309 files in the psd-tools test set, and anything it does not model yet is carried over instead of being dropped.

It also reads and writes PNG, JPEG, TIFF, WebP, GIF, BMP, TGA, ICO, QOI, PNM, OpenEXR, Radiance HDR and AVIF at 8, 16 and 32 bits, plus its own .pcraft format.

Drive it from anywhere

Every menu item, tool and dialog runs a command from one registry of 500+. The UI, the CLI, the JSON control channel and the MCP server all call the same commands.

# Headless: open, edit, save
photocraft-cli run wave.psd \
  --cmd filter.sharpen.smartSharpen     --params '{"amount":80}' \
  --cmd layer.newAdjustmentLayer.curves --params '{"points":[[0,0],[64,48],[192,212],[255,255]]}' \
  --out wave-final.png

# Apply one action list to a folder of images
photocraft-cli batch --actions grade.json --in ./raw --out ./graded

# Let an agent drive it over MCP
photocraft-cli mcp

An honest status

PhotoCraft is in early alpha. Much of Photoshop’s feature surface exists in some form, but it is not yet a replacement for daily professional work. The biggest gaps are AI and generative features, about twenty missing tools, depth in typography and professional workflows, and plug-in compatibility. Expect rough edges, and file issues with your OS, document size, layer count and a screenshot.

Taking it further

  • Fetch the test corpora with cargo xtask corpus --all and run cargo xtask test-corpus.
  • Read the architecture and control-protocol docs in the repository’s book/ and docs/.
  • Explore the other Crafting Apps — VectorCraft, FilmCraft, LightCraft and more.