storytold

PhotoCraft is an open-source desktop image editor written in pure Rust that supports layers, masks, type, vectors, and real PSD files for offline retouching.

v0.23.1
Published at
1d ago
78,940
Stars
1,394,969
Download
Synced at
23h ago

Latest release

v0.23.1Nov 12, 2026, 05:07 AM
Downloads slow? Switch the source anytime above

README

Project Overview

PhotoCraft is a desktop image editor for photographers, retouchers, and designers, built to handle layers, masks, and real PSD files offline. The whole application is written from scratch in Rust, with a separation between the document model, the command engine, and an egui interface; the canvas is composited by wgpu on Metal, Vulkan, DX12, or WebGPU, and the same code compiles to WebAssembly for the browser. Shortcuts follow Photoshop habits such as ⌘J and ⇧⌘D, and menus and panels sit where returning users expect them.

Item Value
Platform macOS, Windows, Linux, FreeBSD, Web
Language Rust, edition 2024, minimum 1.95
Version 0.20.1
Structure 24 crates, 68 tools
License MIT or Apache-2.0

Layers, masks, type, vectors, and PSD files live in one native program with no Electron shell.

Key Features

  • Adjustment layers: 16 adjustment layers, including Curves with per-channel editing, Levels with a live histogram, Black & White, Channel Mixer, and Gradient Map; each can be masked, reordered, or disabled
  • Layer styles: drop shadow, inner shadow, outer and inner glow, bevel and emboss, satin, stroke, and color, gradient, and pattern overlays that copy and paste between layers
  • Selections and masks: rectangular, elliptical, single-row, and single-column marquees, lassos, and Magic Wand, plus Quick Selection, Object Selection, Select Subject, and Select and Mask edge refinement
  • Type layout: point and paragraph text edited directly on canvas, with Character and Paragraph controls for font, weight, size, leading, tracking, alignment, and color
  • Vector shapes: rectangle, ellipse, triangle, polygon, line, pen, freeform pen, and curvature pen, with shape layers that unite, subtract, intersect, and exclude
  • Filters: blur, sharpen, noise reduction, distortion, pixelate, stylize, and render categories, with every dialog previewing live through the selection on canvas
  • Smart objects: smart filters and lossless transforms, with filter settings that can be changed, hidden, reordered, or masked at any time
  • History and transform: a full history panel, History Brush, and Free Transform with scale, rotate, skew, distort, and perspective
  • Color management: RGB, Grayscale, CMYK, and Lab documents at 8, 16, and 32 bits per channel, with ICC profile assignment and conversion plus soft proofing on ⌘Y
  • Format support: PSD/PSB, layered TIFF, OpenRaster, GIMP XCF, Krita .kra, Paint.NET PDN3, SVG, flat PNG, JPEG, WebP, GIF, OpenEXR, and FITS files, plus the native .pcraft format

Editing Workflow

  • Open a document: photocraft image.psd launches the desktop app with the file loaded and layers and text editable
  • Non-destructive adjustment: stack Levels and Curves on a layer, then limit the effect with a mask so original pixels stay untouched
  • Selection to mask: any selection becomes a layer mask, vector path, or shape in one step
  • Preview before commit: filter settings preview live through the selection on canvas before they are written to the layer
  • Step back freely: the history panel records each step, so you can return to any point or undo a single brush stroke

Files and Formats

  • PSD round trips: re-saving renders the same for 307 of the 309 files in the psd-tools test set, and unmodeled raw blocks are carried over untouched
  • Shape accuracy: 116 of 116 shape layers in the project's own PSD corpus match Photoshop pixels
  • Large documents: PSB, 16-bit and 32-bit, CMYK, and Lab documents open natively
  • Read-only formats: HEIC photos from iPhone and Mac and Affinity .af, .afdesign, .afphoto, and .afpub files open for viewing but are not written back
  • Write limitations: AVIF output needs the optional avif build feature, and AVIF decoding and JPEG XL are unsupported

Target Audience

  • Photographers who edit offline and keep layers intact
  • Designers moving from Photoshop who do not want to relearn shortcuts
  • Automation engineers who want to script retouching steps
  • Image users working on Linux or FreeBSD

Quick Start

Desktop Install

  1. On macOS, get photocraft-0.20.1-macos-universal.dmg and drag it into Applications
  2. On Windows, get photocraft-0.20.1-windows-x64.msi or use the portable zip
  3. On Linux, choose AppImage, .deb, .rpm, Flatpak, or tarball; the Flatpak ID is ai.storyteller.photocraft

Run from Source

  1. Install Rust 1.95 or newer
  2. Run
cargo run --release -p photocraft -- image.psd
  1. For Japanese fonts, point CRAFT_FONTS_DIR at a craft-fonts checkout; otherwise system CJK fonts are used

CLI and Automation

  1. Open, filter, and export in one command
photocraft-cli run wave.psd --cmd filter.sharpen.smartSharpen --params '{"amount":80}' --out wave-final.png
  1. Batch an action list: photocraft-cli batch --actions grade.json --in ./raw --out ./graded
  2. Serve agents over MCP: photocraft-cli mcp

System Requirements

Item Requirement
OS macOS, Windows, Linux, FreeBSD 14
Architecture x86_64, aarch64, Windows arm64; RISC-V only as a Linux tarball needing glibc 2.39+
Graphics backend wgpu: Metal, Vulkan, DX12, WebGPU
Source build Rust 1.95 or newer, 24-crate workspace
Browser build WebAssembly, hostable on any static server

Notes

  • Early stage: AI generative features, about 15 missing tools, typography depth, and plug-in compatibility are still absent, so judge whether it fits daily professional work
  • Wayland drag and drop: dropping files onto the window does not work in a Linux Wayland session; use File > Open or paste with Ctrl+V
  • XWayland scaling: at 125%, 150%, or 175% fractional scaling an XWayland window is enlarged and blurred, while native Wayland stays sharp
  • PSD is not byte-identical: a re-saved PSD rewrites image resources, layer records, and the composite; only the standalone photocraft-psd crate reproduces some files byte for byte
  • Branding is not licensed: the code is MIT or Apache-2.0 dual-licensed, while ArtCraft names and icons follow separate terms

Release history

Sort