What it is
PhotoCraft is an open-source, clean-room reimplementation of Adobe Photoshop written in pure Rust, delivered as a native app with a CPU reference compositor and a wgpu GPU compositor. It supports layers, masks, adjustment layers, layer styles, type, vectors, a brush engine and layered PSD files. Every action is a command, so the same engine can be driven from the UI, a CLI, a JSON control channel or an MCP server. The project is in early alpha and is not yet a Photoshop replacement for daily professional work.
Who it's for
- Photoshop users who want a familiar, open-source, offline image editor
- Developers and AI-agent builders who want to script image editing through a CLI, JSON control channel or MCP server
- Rust developers interested in a document model, command engine and compositor architecture
- Contributors willing to test an early-alpha editor and file issues
Requirements
Requirements
- Rust toolchain with cargo to build from source (git clone, cargo run)
- Optional: craft-fonts checkout (CRAFT_FONTS_DIR) for bundled Japanese fonts in source builds
- FreeBSD 14 (x86_64) runtime libraries installed via pkg for the FreeBSD tarball
- Freedesktop runtime from Flathub for the Linux Flatpak bundle
Setup
Build and run from source
Clone the repository, then run the desktop app (optionally passing a PSD file) or the test suite.
bashgit clone https://github.com/storytold/photocraft cd photocraft cargo run --release -p photocraft -- image.psd # the desktop app cargo test --workspace # the test suiteOptional: build with Japanese fonts
craft-fonts is an optional build input; without it PhotoCraft uses your system's CJK fonts.
bashgit clone https://github.com/storytold/craft-fonts ../craft-fonts CRAFT_FONTS_DIR="$PWD/../craft-fonts" cargo run --release -p photocraftInstall the Linux Flatpak bundle
The bundle needs the freedesktop runtime from Flathub, which flatpak offers to install.
bashflatpak install --user photocraft-<version>-linux-x86_64.flatpak # or -linux-aarch64 flatpak run ai.storyteller.photocraftInstall on FreeBSD 14 (x86_64)
Install the runtime libraries, then unpack the release tarball into /usr/local.
bashpkg install libxkbcommon wayland libX11 libXcursor libXrandr libXi libxcb mesa-libs vulkan-loader gtk3 fontconfig freetype2 alsa-lib tar -xzf photocraft-<version>-freebsd-x86_64.tar.gz --strip-components 1 -C /usr/local photocraft
Examples
Headless open, edit, save
bashphotocraft-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.pngWhat it does: Opens a PSD, applies a Smart Sharpen filter and a Curves adjustment layer via registered commands, and writes a PNG.
Batch-apply an action list
bashphotocraft-cli batch --actions grade.json --in ./raw --out ./gradedWhat it does: Applies one action list to every image in a folder and writes the results to another folder.
Drive PhotoCraft from an agent over MCP
bashphotocraft-cli mcpWhat it does: Starts the MCP server so an AI agent can call the same command registry, headless or bridged to the running app.
Verify the notarized macOS CLI
bashditto -x -k photocraft-cli-<version>-macos-universal.zip .
spctl --assess --type install -vv photocraft-cli-<version>-macos-universal/photocraft-cli
# ... accepted, source=Notarized Developer IDWhat it does: Unzips the macOS CLI and checks Apple's notarization status.
Pros & cons
Pros
- Pro:Broad editing feature set: adjustment layers, layer styles, smart objects, 52 tools and a brush engine
- Pro:Real PSD/PSB support, with re-saves preserving the render of 307 of 309 psd-tools test files
- Pro:Every action is a command in a 500+ command registry, usable from the UI, CLI, JSON control channel or MCP server
- Pro:Cross-platform with installers for macOS, Windows, Linux, FreeBSD and the web, plus MIT/Apache-2.0 licensing
Cons
- Con:Early alpha; the README states it is not yet a Photoshop replacement for daily professional work
- Con:Known gaps include AI/generative features, about twenty missing tools, typography and pro workflow depth, and plug-in compatibility
- Con:Re-saved PSD files are not byte-identical to the source, and files dropped on a Wayland window don't open yet
Images
