The image editor you already know how to use.
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.
Features · Everything in the box · PSD · Agents · Get started · Crafting Apps
The Great Wave off Kanagawa, Katsushika Hokusai, c. 1831
🎛️ Familiar by designThe 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 fastA GPU compositor on wgpu (Metal, Vulkan, DX12, WebGPU), copy-on-write tiles and multithreaded filters. No Electron, no web view, no waiting. |
🗂️ Real PSD filesOpen, edit and save layered Photoshop documents. 134 of 135 real-world PSDs round-trip byte for byte. |
🤖 Agent-readyEvery action is a command, so you can drive the same engine from the UI, the CLI, a JSON control channel or an MCP server. |
![]() |
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. Impression, Sunrise, Claude Monet, 1872 |
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 to match Photoshop. Earthrise, William Anders / NASA, 1968 | ![]() |
![]() |
Selections that understand your image.Marquees, lassos and the Magic Wand for precision; Quick Selection, Object Selection and Select Subject when you want the computer to do the tracing; Select and Mask to refine hair-fine edges.Feather, expand, contract, smooth, grow, reselect. Turn any selection into a layer mask, a vector path or a shape. Smart selection runs on your machine, with no cloud and no account. Girl with a Pearl Earring, Johannes Vermeer, c. 1665 |
Type that sets beautifully.Point and paragraph text, edited right on the canvas, with full Character and Paragraph controls: font, weight, size, leading, tracking, alignment and colour.Type layers stay editable, take layer styles, and round-trip through PSD. Among the Sierra Nevada, California, Albert Bierstadt, 1868 | ![]() |
![]() |
Pixel-perfect vectors.Rectangle, Ellipse, Triangle, Polygon, Line and the Pen tool, with resolution-independent shape layers, gradient fills, and dashed, aligned strokes.Combine shapes (unite, subtract, intersect, exclude), keep paths in the Paths panel, use them as vector masks, or stroke and fill them. 116 of 116 shape layers in our PSD corpus match Photoshop's pixels. Water Lilies, Claude Monet, 1906 |
See it before you commit.Every filter dialog previews live on the canvas, through your selection. Blurs (Gaussian, Box, Motion, Radial, Surface, Smart, Lens, Shape, and the Blur Gallery: Tilt-Shift, Iris, Field, Spin, Path), sharpening, Reduce Noise, distortions (Twirl, Wave, Ripple, Displace, Shear, Zig Zag…), Pixelate, Stylize (Oil Paint, Wind, Extrude…), Render (Clouds, Fibers, Lens Flare, Lighting Effects) and more.Run filters on a smart object and they stay editable: change, hide, reorder or mask them at any time. Large-radius blurs use running-sum box passes across all cores: a radius-180 Gaussian on 3.6 MP takes under a second. The Starry Night, Vincent van Gogh, 1889 | ![]() |
![]() |
Shape it any way you like.Free Transform with scale, rotate, skew, distort and perspective; exact 90° and 180° rotations and flips; Transform Again. Layers, type, shapes, masks and selections all transform together.Full history, Toggle Last State and the History Brush mean every step can be undone, even one brush stroke at a time. The Tetons and the Snake River, Ansel Adams, 1942 |
Ship it anywhere.Export As with format, quality, transparency and scale, plus a preview and an instant file-size estimate. Quick Export to PNG in one click.Choose a dark Pro theme, the airy Studio themes, or a Classic look. The Kiss, Gustav Klimt, 1907–1908 | ![]() |
🧰 34 toolsMove · Rectangular and Elliptical Marquee · Lasso · Polygonal Lasso · Magic Wand · Quick Selection · Object Selection · Crop · Eyedropper · Brush · Pencil · Mixer Brush · Color Replacement · Eraser · Clone Stamp · Healing Brush · Spot Healing · History Brush · Gradient · Paint Bucket · Blur · Sharpen · Smudge · Dodge · Burn · Sponge · Pen · Path Selection · Type · five Shape tools · Hand · Zoom |
🖌️ A real brush engineShape Dynamics, Scattering, Texture, Dual Brush, Color Dynamics, Transfer, Brush Pose, Wet Edges, Build-up and Smoothing (including Pulled String), driven by pen pressure, tilt, rotation and direction. Brush presets, Define Brush from Selection, and deterministic, replayable strokes. |
🗃️ Layers, done properlyGroups, clipping masks, pixel and vector masks, fill layers (solid, gradient and pattern), adjustment layers, live smart objects with smart filters and lossless transforms and warps, multi-layer selection with align, distribute and link, alpha channels and Quick Mask, 27 blend modes, opacity and fill, locks, colour labels, layer filters, merge, flatten, rasterize, Layer via Copy/Cut, Paste Into. |
🎨 Any colour, any depthRGB, Grayscale, CMYK and Lab documents at 8, 16 and 32 bits per channel. Bit depth and colour model are runtime data, so every tool works at every depth.Real ICC colour management in pure Rust: embedded profiles, Assign and Convert to Profile with all four rendering intents and black point compensation, soft proofing (⌘Y) and Gamut Warning (⇧⌘Y) on the GPU. |
🗂️ FormatsPSD and PSB, plus PNG, JPEG, TIFF, WebP, GIF, BMP, TGA, ICO, QOI, PNM, OpenEXR, Radiance HDR and AVIF, with symmetric read and write at 8, 16 and 32 bits, and the native.pcraft format.
|
🪄 The everyday essentialsAuto Tone, Contrast and Color · Equalize · Image and Canvas Size · Crop and Trim · Reveal All · Edit › Fill and Stroke · Copy Merged · Paste in Place · guides, rulers, grid and snapping · Actions record and replay · a command palette (⌘K). |
Photocraft's PSD support is a standalone crate written from Adobe's public specification and tested against a corpus of real-world files.
Every menu item, tool and dialog runs a command from one registry of 500+ commands. The UI, the CLI, the JSON control channel and the MCP server all call the same commands, so anything you can click, a script or an AI agent can do too.
# 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 (headless, or bridged to the running app)
photocraft-cli mcp
The desktop app also listens on a local control channel (photocraft --control) for inspecting UI state, driving tools with pointer events, and taking offscreen screenshots. Every image in this README was rendered that way. See docs/control-protocol.md.
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
New contributors and AI agents: start with AGENTS.md, then docs/.
Installers for macOS, Windows, Linux and the web are attached to each GitHub release. Maintainers: docs/releasing.md explains how releases are built, signed and published.
Status: Photocraft is in early alpha. The core editing workflow is here, and we're working toward full Photoshop parity milestone by milestone (see
docs/roadmap.md). Progress is measured, not guessed:cargo xtask paritychecks every item in Photoshop's menu tree against the live command registry and writesdocs/parity.md. Expect rough edges, and please file issues.
Open-source, clean-room, pure-Rust creative apps that share the same conventions: native on macOS, Windows and Linux, in the browser via WebAssembly, and fully drivable by agents.
📷 PhotoCraftLayered image editing and compositing: the Photoshop workflow. |
✏️ DrawCraftVector illustration: the Illustrator workflow. |
🎬 FilmCraftNon-linear video editing: the Premiere Pro workflow. |
🌄 LightCraftPhoto library and non-destructive raw developer: the Lightroom workflow. |
📄 PrintCraftPDF viewing and editing: the Acrobat Pro workflow. |
Built by the artcraft team. Licensed under MIT or Apache-2.0.
Every artwork shown is in the public domain (Wikimedia Commons, NASA, U.S. National Archives); sources are listed in docs/images/SOURCES.md.
Photoshop is a trademark of Adobe Inc. Photocraft is an independent project, not affiliated with or endorsed by Adobe.
Rust
98.7%
The image editor you already know how to use.
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.
Features · Everything in the box · PSD · Agents · Get started · Crafting Apps
The Great Wave off Kanagawa, Katsushika Hokusai, c. 1831
🎛️ Familiar by designThe 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 fastA GPU compositor on wgpu (Metal, Vulkan, DX12, WebGPU), copy-on-write tiles and multithreaded filters. No Electron, no web view, no waiting. |
🗂️ Real PSD filesOpen, edit and save layered Photoshop documents. 134 of 135 real-world PSDs round-trip byte for byte. |
🤖 Agent-readyEvery action is a command, so you can drive the same engine from the UI, the CLI, a JSON control channel or an MCP server. |
![]() |
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. Impression, Sunrise, Claude Monet, 1872 |
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 to match Photoshop. Earthrise, William Anders / NASA, 1968 | ![]() |
![]() |
Selections that understand your image.Marquees, lassos and the Magic Wand for precision; Quick Selection, Object Selection and Select Subject when you want the computer to do the tracing; Select and Mask to refine hair-fine edges.Feather, expand, contract, smooth, grow, reselect. Turn any selection into a layer mask, a vector path or a shape. Smart selection runs on your machine, with no cloud and no account. Girl with a Pearl Earring, Johannes Vermeer, c. 1665 |
Type that sets beautifully.Point and paragraph text, edited right on the canvas, with full Character and Paragraph controls: font, weight, size, leading, tracking, alignment and colour.Type layers stay editable, take layer styles, and round-trip through PSD. Among the Sierra Nevada, California, Albert Bierstadt, 1868 | ![]() |
![]() |
Pixel-perfect vectors.Rectangle, Ellipse, Triangle, Polygon, Line and the Pen tool, with resolution-independent shape layers, gradient fills, and dashed, aligned strokes.Combine shapes (unite, subtract, intersect, exclude), keep paths in the Paths panel, use them as vector masks, or stroke and fill them. 116 of 116 shape layers in our PSD corpus match Photoshop's pixels. Water Lilies, Claude Monet, 1906 |
See it before you commit.Every filter dialog previews live on the canvas, through your selection. Blurs (Gaussian, Box, Motion, Radial, Surface, Smart, Lens, Shape, and the Blur Gallery: Tilt-Shift, Iris, Field, Spin, Path), sharpening, Reduce Noise, distortions (Twirl, Wave, Ripple, Displace, Shear, Zig Zag…), Pixelate, Stylize (Oil Paint, Wind, Extrude…), Render (Clouds, Fibers, Lens Flare, Lighting Effects) and more.Run filters on a smart object and they stay editable: change, hide, reorder or mask them at any time. Large-radius blurs use running-sum box passes across all cores: a radius-180 Gaussian on 3.6 MP takes under a second. The Starry Night, Vincent van Gogh, 1889 | ![]() |
![]() |
Shape it any way you like.Free Transform with scale, rotate, skew, distort and perspective; exact 90° and 180° rotations and flips; Transform Again. Layers, type, shapes, masks and selections all transform together.Full history, Toggle Last State and the History Brush mean every step can be undone, even one brush stroke at a time. The Tetons and the Snake River, Ansel Adams, 1942 |
Ship it anywhere.Export As with format, quality, transparency and scale, plus a preview and an instant file-size estimate. Quick Export to PNG in one click.Choose a dark Pro theme, the airy Studio themes, or a Classic look. The Kiss, Gustav Klimt, 1907–1908 | ![]() |
🧰 34 toolsMove · Rectangular and Elliptical Marquee · Lasso · Polygonal Lasso · Magic Wand · Quick Selection · Object Selection · Crop · Eyedropper · Brush · Pencil · Mixer Brush · Color Replacement · Eraser · Clone Stamp · Healing Brush · Spot Healing · History Brush · Gradient · Paint Bucket · Blur · Sharpen · Smudge · Dodge · Burn · Sponge · Pen · Path Selection · Type · five Shape tools · Hand · Zoom |
🖌️ A real brush engineShape Dynamics, Scattering, Texture, Dual Brush, Color Dynamics, Transfer, Brush Pose, Wet Edges, Build-up and Smoothing (including Pulled String), driven by pen pressure, tilt, rotation and direction. Brush presets, Define Brush from Selection, and deterministic, replayable strokes. |
🗃️ Layers, done properlyGroups, clipping masks, pixel and vector masks, fill layers (solid, gradient and pattern), adjustment layers, live smart objects with smart filters and lossless transforms and warps, multi-layer selection with align, distribute and link, alpha channels and Quick Mask, 27 blend modes, opacity and fill, locks, colour labels, layer filters, merge, flatten, rasterize, Layer via Copy/Cut, Paste Into. |
🎨 Any colour, any depthRGB, Grayscale, CMYK and Lab documents at 8, 16 and 32 bits per channel. Bit depth and colour model are runtime data, so every tool works at every depth.Real ICC colour management in pure Rust: embedded profiles, Assign and Convert to Profile with all four rendering intents and black point compensation, soft proofing (⌘Y) and Gamut Warning (⇧⌘Y) on the GPU. |
🗂️ FormatsPSD and PSB, plus PNG, JPEG, TIFF, WebP, GIF, BMP, TGA, ICO, QOI, PNM, OpenEXR, Radiance HDR and AVIF, with symmetric read and write at 8, 16 and 32 bits, and the native.pcraft format.
|
🪄 The everyday essentialsAuto Tone, Contrast and Color · Equalize · Image and Canvas Size · Crop and Trim · Reveal All · Edit › Fill and Stroke · Copy Merged · Paste in Place · guides, rulers, grid and snapping · Actions record and replay · a command palette (⌘K). |
Photocraft's PSD support is a standalone crate written from Adobe's public specification and tested against a corpus of real-world files.
Every menu item, tool and dialog runs a command from one registry of 500+ commands. The UI, the CLI, the JSON control channel and the MCP server all call the same commands, so anything you can click, a script or an AI agent can do too.
# 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 (headless, or bridged to the running app)
photocraft-cli mcp
The desktop app also listens on a local control channel (photocraft --control) for inspecting UI state, driving tools with pointer events, and taking offscreen screenshots. Every image in this README was rendered that way. See docs/control-protocol.md.
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
New contributors and AI agents: start with AGENTS.md, then docs/.
Installers for macOS, Windows, Linux and the web are attached to each GitHub release. Maintainers: docs/releasing.md explains how releases are built, signed and published.
Status: Photocraft is in early alpha. The core editing workflow is here, and we're working toward full Photoshop parity milestone by milestone (see
docs/roadmap.md). Progress is measured, not guessed:cargo xtask paritychecks every item in Photoshop's menu tree against the live command registry and writesdocs/parity.md. Expect rough edges, and please file issues.
Open-source, clean-room, pure-Rust creative apps that share the same conventions: native on macOS, Windows and Linux, in the browser via WebAssembly, and fully drivable by agents.
📷 PhotoCraftLayered image editing and compositing: the Photoshop workflow. |
✏️ DrawCraftVector illustration: the Illustrator workflow. |
🎬 FilmCraftNon-linear video editing: the Premiere Pro workflow. |
🌄 LightCraftPhoto library and non-destructive raw developer: the Lightroom workflow. |
📄 PrintCraftPDF viewing and editing: the Acrobat Pro workflow. |
Built by the artcraft team. Licensed under MIT or Apache-2.0.
Every artwork shown is in the public domain (Wikimedia Commons, NASA, U.S. National Archives); sources are listed in docs/images/SOURCES.md.
Photoshop is a trademark of Adobe Inc. Photocraft is an independent project, not affiliated with or endorsed by Adobe.
Rust
98.7%