PhotoCraft: An open-source photo editor written from scratch in pure Rust

★ 78,356⑂ 13,855👁 327⑃ 6,152● 6,246▤ 24◈ 0
RustApache-2.0Created 2026-09-30getartcraft.com/apps/photocraft
78,356
stars
+292
13,855
forks
327
watchers
6,152
prs
6,246
issues
24
releases
0
discussions

README

PhotoCraft


  Image editing; an open-source, clean-room reimplementation of Adobe Photoshop, rebuilt in pure Rust.
  Layers, masks, adjustment layers, layer styles, type, vectors, brushes and real PSD files,
  in a native app written entirely in Rust. Open source, offline, and yours.



  
  
  
  
  
  
  



  



  PhotoCraft on getartcraft.com ·
  ArtCraft ·
  All Crafting Apps





  
  
  A caption card with a drop shadow, live type, and Vibrance and Curves adjustment layers, with the Curves editor open.
  The Great Wave off Kanagawa, Katsushika Hokusai, c. 1831


 [!NOTE]
 ArtCraft is a community of artists from all walks of life. Digital, generative, music,
 games — if you make things, you're one of us. Come say hi on Discord.


  Features ·
  Everything in the box ·
  PSD ·
  Agents ·
  Under the hood ·
  Get started ·
  Downloads ·
  Crafting Apps ·
  Discord





  
    
      🎛️ Familiar by design
      The menus, shortcuts, panels and tools are where your hands expect them, from ⌘J to ⇧⌘D. If you know Photoshop, you already know PhotoCraft.
    
    
      ⚡ Native and fast
      A GPU compositor on wgpu (Metal, Vulkan, DX12, WebGPU), copy-on-write tiles and multithreaded filters. No Electron, no web view, no waiting.
    
    
      🗂️ Real PSD files
      Open, edit and save layered Photoshop documents. Re-saving keeps the render of 307 of the 309 psd-tools test files.
    
    
      🤖 Agent-ready
      Every action is a command, so you can drive the same engine from the UI, the CLI, a JSON control channel or an MCP server.
    
  




 Features

Every screenshot here is the real app at work on public-domain art, rendered offscreen through its control channel.


  
    
      
      
      Levels and Vibrance adjustment layers, with the live Histogram panel.Impression, Sunrise, Claude Monet, 1872
      Edit without regret
      Adjustment layers keep every edit live. Stack Levels, Curves, Vibrance, Hue/Saturation and a dozen more, mask them to an area, reorder them, or turn them off, and your original pixels never change.
      
      16 adjustment layers that also apply directly to pixels, including Curves with per-channel editing, Levels with a live histogram, Black & White, Channel Mixer, Gradient Map, Photo Filter, Selective Color and Color Lookup (.cube, .3dl, .look). Plus Shadows/Highlights, Replace Color, Match Color, HDR Toning, Desaturate and Equalize.
    
    
      
      
      Outer Glow and Stroke on a live type layer, in the Layer Style dialog.Earthrise, William Anders / NASA, 1968
      Styles that sell the shot
      Drop Shadow, Inner Shadow, Outer and Inner Glow, Bevel & Emboss, Satin, Stroke, and Color, Gradient and Pattern Overlay, live on any layer, including type. Patterns come from a library (built-ins, Edit › Define Pattern, .pat import/export) and PSD Patt blocks.
      
      Copy and paste styles between layers, hide all effects at once, and open styles straight from your PSDs, rendered 

Top issues

Latest release

PhotoCraft v0.21.0 v0.21.0 2026-11-06
What's Changed
 Save the flattened document at full size into .pcraft files as an option by @dotCooCoo in https://github.com/storytold/photocraft/pull/9913
 Add guarded scratch storage and owned memory supervision by @vistaero in https://github.com/storytold/photocraft/pull/5330
 Save: stop doubling the encoded file in memory (6607) by @VishnuByrraju in https://github.com/storytold/photocraft/pull/8115
 Stream native PSD/PSB and EXR imports through bounded bands by @vistaero in https://github.com/storytold/photocraft/pull/5331
 Size PSD import memory limits from available RAM by @wanikhawar in

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON