Skip to main content
Open source · MIT / Apache-2.0

Photoshop
in pure Rust

PhotoCraft is a clean-room, open-source image editor: layers, masks, adjustment layers, type, vectors, brushes and real PSD files — a native app and a WebAssembly build, written from scratch in Rust.

9.4k+ GitHub stars
34 Tools
500+ Commands
9.4k+
GitHub Stars
34
Tools
16
Adjustment Layers
27
Blend Modes

Native on every platform, drivable by every agent

macOS
Windows
Linux
FreeBSD
Web (WASM)
MCP
wgpu
WebGPU
Get started

Clone, edit, ship a real PSD

Three commands from a fresh clone to a saved layered document.

1

Clone and build

git clone the repo and run cargo run --release -p photocraft. Rust builds the desktop app, or compile the whole engine to WebAssembly for the browser.

2

Edit with familiar tools

The menus, shortcuts, panels and tools are where your hands expect them. Layers, masks, adjustment layers, layer styles, type, vectors and a real brush engine.

3

Save and drive it anywhere

Open, edit and save layered PSD and PSB files, then drive the same engine from the UI, the CLI, a JSON control channel or an MCP server.

Features

A serious editor, not a demo

The engine, the tools and the file format — all implemented from public specs.

Familiar by design

Menus, shortcuts and panels sit where your hands expect them, from ⌘J to ⇧⌘D.

Native and fast

A GPU compositor on wgpu (Metal, Vulkan, DX12, WebGPU), copy-on-write tiles and multithreaded filters. No Electron, no web view.

Real PSD files

Open, edit and save layered Photoshop documents; re-saving keeps the render of 307 of 309 psd-tools test files.

Edit without regret

16 adjustment layers including Curves with per-channel editing and Levels with a live histogram, all maskable and reorderable.

Selections that understand

Marquees, lassos and the Magic Wand, plus Quick Selection, Object Selection and Select Subject — all on your machine, no cloud.

Type, vectors and brushes

Type edited on canvas, pen and shape layers with gradient fills, and a brush engine driven by pressure, tilt and rotation.

Under the hood

One engine, every surface

The document model and command engine sit under a thin UI — so the UI, the CLI and agents all run the same commands.

Groups & clipping

Nest layers, clip masks, link and align selections.

Pixel & vector masks

Mask with pixels or resolution-independent paths.

Smart objects

Live smart filters and lossless transforms and warps.

27 blend modes

Opacity, fill, locks and colour labels per layer.

Layers & masks

Groups, clipping masks, pixel and vector masks, fill layers, smart objects and 27 blend modes.

Explore layers
Compare

Where PhotoCraft stands

An honest look against a closed-source editor and a generic tool.

Feature
Photoshop Subscription
Generic editors Limited PSD
Most Popular PhotoCraft Open source
Open source (MIT / Apache-2.0) Partial
Offline, no account Partial
Real PSD round-trip Partial
Scriptable + MCP Partial
Runs in the browser Partial
Pure Rust, no Electron
Daily-driver feature parity Early alpha
Learn more Learn more View on GitHub
Integrations

Fits your platform and your pipeline

Desktop, browser, file formats and the agents that drive it.

macOS

Signed and notarized app and CLI.

Platforms

Windows

Native desktop build and installer.

Platforms

Linux

AppImage, deb, rpm, tarball or Flatpak.

Platforms

Web (WASM)

The whole engine and UI compile to WebAssembly.

Platforms

PSD & PSB

Layered documents open, edit and re-save faithfully.

Formats

PNG, JPEG, TIFF, WebP

Symmetric read and write at 8, 16 and 32 bits.

Formats

OpenEXR & HDR

High dynamic range and float pipelines.

Formats

.pcraft

PhotoCraft's own document format.

Formats

MCP server

Drive the engine from any MCP-capable agent.

Agents

photocraft-cli

Headless editing and batch processing.

Agents

ArtCraft

One of the Crafting Apps: VectorCraft, FilmCraft, LightCraft and more.

Ecosystem

craft-fonts

Optional build input for Japanese UI and type fonts.

Ecosystem
Open source

Clean-room, offline and yours

Implemented from public specs and observed behaviour only. No proprietary code, shaders or assets.

MIT / Apache-2.0

Dual-licensed, free to use, study and fork.

Clean-room

Built from public specifications and observed behaviour, not Adobe code.

Offline & local

No account, no cloud round-trip for the core tools.

1,700+ tests

PSD round trips, compositor oracles and multi-depth checks.

Pure Rust

24 crates with layering enforced at build time.

Runs in the browser

The engine and UI compile to WebAssembly.

Certified & Compliant with

MIT
Apache-2.0
100% Rust
WebAssembly
PSD
Get started

Free and open source

Download the app or build from source. Optional support tiers fund development.

Monthly Yearly Save 20%

Open source

For everyone

$ 0 /month
Download free
  • The full desktop app
  • The WebAssembly build
  • photocraft-cli and MCP
  • 1,700+ test suite
  • MIT / Apache-2.0

Team

For studios and pipelines

$ 99 /month
Contact us
  • Everything in Supporter
  • Custom CLI pipelines
  • MCP integration help
  • Onboarding workshop
  • Dedicated support
Use cases

What people make with it

Real workflows powered by a native, scriptable editor.

"Stack Levels, Curves and Vibrance on a scanned painting, mask them, and never touch the original pixels."
Retouch public-domain art

Retouch public-domain art

Adjustment layers

"Apply one action list to hundreds of images from the command line, no window required."
Batch-grade a folder

Batch-grade a folder

photocraft-cli

"Point an MCP-capable agent at a layered file and have it add type, styles and adjustment layers."
Let an agent edit PSDs

Let an agent edit PSDs

MCP

"Open the same engine and UI on the web, with no install and no account."
Design in the browser

Design in the browser

WebAssembly

Under the hood

Engine first, UI on top

A pure-data document model and a command engine, with a thin egui UI.

24 crates

24 crates

Layered by design

Layering is enforced at build time across the workspace.

Two compositors

Two compositors

CPU oracle + wgpu

A reference CPU compositor and a GPU compositor, tested against each other.

Copy-on-write tiles

Copy-on-write tiles

256² sparse tiles

Cheap undo and light huge canvases, with effect maps cached per layer state.

Your document next

Your document next

Open a PSD

Open a layered file, edit it, and re-save it faithfully.

Roadmap

Where it goes next

PhotoCraft is in early alpha and is honest about the gaps.

Now
Released

PSD, tools and agents

Layered PSD round-trips, 34 tools, layer styles and the MCP control channel are shipped.

PSDToolsMCP
Now
Released

Native + WebAssembly

One engine on macOS, Windows, Linux, FreeBSD and the browser.

RustWASM
Next
In Progress

Deeper typography & tools

About twenty missing tools, plus depth in typography and pro workflows.

TypeTools
Later
Planned

AI & generative features

The biggest current gap, alongside plug-in compatibility.

AIPlug-ins
Later
Planned

Daily-driver parity

Closing the distance to a full professional replacement.

ParityPro
FAQ

Frequently asked questions

Can't find what you're looking for? Open an issue on GitHub.

What is PhotoCraft?

An open-source, clean-room reimplementation of Adobe Photoshop, written from scratch in Rust, with layers, masks, adjustment layers, layer styles, type, vectors, brushes and real PSD files.

Is it a full Photoshop replacement?

Not yet. PhotoCraft is in early alpha: much of the feature surface exists, but the biggest gaps are AI/generative features, about twenty missing tools, typography depth and plug-in compatibility. See the roadmap for an honest assessment.

Which platforms does it run on?

macOS, Windows, Linux and FreeBSD as a native app, and anywhere as a WebAssembly build in the browser. Release installers include AppImage, deb, rpm, tarball and Flatpak on Linux.

Does it open real PSD files?

Yes. It opens, edits and saves layered Photoshop documents, and re-saving keeps the render of 307 of the 309 files in the psd-tools test set. Unmodeled data is carried over rather than dropped.

How can an agent drive it?

Every action is a command from one registry of 500+. You can call them from the UI, photocraft-cli, an authenticated JSON control channel, or an MCP server.

Community

Come make things with us

Questions, ideas or a broken build? Open an issue or join the Discord.

By submitting you agree to our Privacy Policy.