Open source free image editing.
Think classic Adobe Photoshop CS-style layer editing, modernized: PSD layers, masks, text, blend modes, layer styles, legacy plugins, and current formats like WebP, without subscriptions or telemetry.
Click a thumbnail for the full-size image.
The announcement video (recorded around the 0.9 release in June 2026, so it predates a lot of the features above). More videos land on Seth's YouTube channel.
Windows releases are code signed by Seth A. Robinson; the macOS app is signed and notarized (Robinson Technologies Corporation).
| Platform | Package | Download |
|---|---|---|
| Windows 10/11 (64-bit) | Installer | PatchyWindowsInstaller.exe (28 MB) |
| Windows 10/11 (64-bit) | Portable ZIP (no installer) | PatchyWindowsNoInstaller.zip (28 MB) |
| macOS 12+ (Apple Silicon) | DMG - drag to Applications | PatchyMacOS.dmg (41 MB) |
| Linux | Flatpak bundle | PatchyLinux.flatpak (14 MB) |
Linux one-line install (paste into a terminal; fetches the bundle and installs it, pulling the shared KDE runtime from Flathub automatically):
curl -L -o /tmp/PatchyLinux.flatpak https://rtsoft.com/files/PatchyLinux.flatpak && flatpak install -y /tmp/PatchyLinux.flatpakOptional: opening iPhone HEIC photos on Linux uses the shared Freedesktop codec extension, which bundle installs do not fetch on their own. Patchy will show this command if it is needed:
flatpak install -y flathub org.freedesktop.Platform.ffmpeg-full//24.08- Open and save layered PSD and PSB files with groups, masks, clipping masks, saved alpha and spot channels, text objects, Fill Opacity, the full Photoshop blend mode set, layer styles and more
- Common raster editing tools, including Brush with Flow and timed Airbrush buildup, Healing Brush, Clone Stamp, Dodge, Burn, Sponge, Blur, Sharpen, Smudge, Eraser, selections, transforms, gradients, and shapes
- Vector tools: Pen paths, editable shape layers (Rectangle, Ellipse, Line, Polygon, Custom Shape) with solid, gradient, or pattern fills and strokes, vector masks, path selection and anchor editing, and a Paths panel with fill, stroke, and make-selection commands, all round-tripping through PSD files that open correctly in Photoshop
- Non-destructive adjustment layers (Levels, Curves, Hue/Saturation, Color Balance, Brightness/Contrast, Invert, Posterize, Threshold) with live preview, editable settings, and native Photoshop PSD data
- Smart Objects: place or convert layers to embedded or linked smart objects, edit or replace their contents, transform them non-destructively, and build editable native Smart Filter stacks (13 filter types) with paintable shared masks and per-filter blending
- Filter Gallery with 32 effects, live full-resolution preview, ordered effect stacks, favorites, and reusable Saved Looks, plus a manual Liquify workspace with warp, twirl, pucker, bloat, and freeze brushes
- Photoshop-compatible layer style, pattern, and gradient preset libraries, including .asl, .pat, and .grd import/export, 39 built-in styles, and 20 bundled CC0 photo textures
- Warp Transform tool and Warp Text with all 15 Photoshop warp styles and live preview
- Multiple document interface: tabbed documents that can float in their own windows, with Photoshop-style Tile and Cascade arrangement
- Rich text with per-run color, font, size, and style, plus a searchable font picker and Character controls for leading, tracking, and horizontal or vertical glyph scaling
- Palettized (indexed color) editing mode for pixel art: paint constrained to a palette, quantize with optional dithering, built-in retro palettes (NES, C64, Game Boy, PICO-8, and more), palette files (.pal/.gpl/.hex/.act/.aco/.ase), and exact indexed PNG-8 and 2/4/8-bit BMP export. Layers, layer styles, and effects all keep working (Photoshop's indexed mode flattens and disables them)
- Pixel-art and game-dev extras: seamless texture authoring (live tile preview window, in-canvas tiling mode, seam shifting), sprite sheet export/import, image sequence export/import (numbered files become layers and back), and nearest-neighbor scaled export (2x-8x)
- Reads and writes a wide range of formats: PSD/PSB, PNG, JPEG, TIFF, WebP, BMP, TGA, GIF, PCX, Amiga IFF/LBM, Windows icons and cursors (ICO/CUR), Aseprite files, and SVG (opens as editable shape layers, exports with vectors preserved)
- Imports Affinity Photo and Designer .af documents as layered files: rasters, groups, masks, clipping, blend modes, editable text layers, vector shapes, adjustment layers, layer effects, and placed images (which become embedded Smart Objects)
- Opens camera raw files (CR2/CR3/NEF/ARW/RAF/DNG and more) through a 16-bit develop dialog, and HEIC/HEIF photos through platform codecs
- Photoshop-compatible document resolution, physical measurement units, rulers, image sizing, and printing
- Pen/stylus pressure and size dynamics, GUI scaling, scanner import (Windows and macOS), camera import (Windows), legacy .8bf plugins, and command line options
- JavaScript scripting: a built-in Script Manager (File > Scripts) with a folder tree over the bundled and user scripts, a code editor with live run status, a documented API covering documents, layers, text, selections, pixels, filters, form dialogs, file pickers, and batch processing, bundled examples ranging from CSV data merge, contact sheets, icon export, and versioned saves to glitch/duotone effects and playable Breakout and Pong (scripts can call other scripts), safe editing of bundled scripts (your saved copy overrides the original and can be reverted), and a --run-script command line flag with script arguments so external tools and AI agents can drive Patchy. See the scripting guide (also under Help inside the app)
- Cross-platform: Windows is the lead platform, with native macOS (Apple Silicon) and Linux (Flatpak) builds
- Built with C++ and Qt for a native desktop experience. No GPU used, should run on a potato
- Privacy: YES! Absolutely no telemetry, no tracking, no data collection (if update checks are enabled, it contacts GitHub only to check for a newer version). Settings live in a plain local file, and the installer doesn't screw with your file extension preferences
- Localized in English and Japanese (change language in File->Preferences)
- Layer styles blend the way Photoshop does now. A layer's blend mode applies to its own pixels alone unless Blend Interior Effects as Group is on, and exterior effects contribute against the backdrop instead of under the layer, so glows and shadows keep their weight along anti-aliased text. Color, Gradient, and Pattern Overlay fold into the layer color rather than painting over the composite, so an opaque overlay hides the fill beneath it and layer opacity is no longer applied twice
- Damaged PSD files open instead of being refused: corrupt scanlines are recovered row by row, with an import notice saying how many came back, and legacy files that carry Photoshop's separate real user mask channel read correctly instead of arriving truncated
- Patchy has a Light color scheme now. File > Preferences picks Dark, Light, or the system light/dark setting, and the switch happens live: panels, dialogs, tabs, scroll bars, and the color picker all get real light colors instead of an inverted dark theme
- The canvas gained Photoshop-style scroll bars, whose range agrees with what hand-tool panning allows, and on Windows the main window and the dialogs Patchy frames itself now have rounded corners and a drop shadow
- The tool palette's extension arrow is a sticky toggle: it opens, stays open while you work, and closes on a second click or after you pick something. When the window is too short, the palette hides the color swatches last instead of clipping tools
- Layer thumbnails show where a layer sits in the document, like Photoshop's: the tile is the document rectangle, the layer sits at its own position with checkerboard around it, and mask, vector mask, and Smart Filter previews fit their source instead of stretching into a square slot
- Hue/Saturation is calibrated against Photoshop. The master controls match byte for byte, and the per-hue-range bands (Reds, Yellows, Greens, and the rest) render with a new Edit range control instead of being ignored
- Photoshop no longer warns about unreadable data when it opens a PSD that Patchy saved
- More layer style work: Bevel & Emboss Gloss Contour matches Photoshop's light remap, bevel pattern texture is calibrated and reads multichannel patterns, drop shadows saved by Photoshop 5.x import instead of vanishing, and a clipping run now clips to its base layer's transparency rather than to the base layer's effects
Build the dependency-light core and tests without the Qt app:
cmake --preset dev -DPATCHY_BUILD_APP=OFF
cmake --build --preset dev
ctest --preset devBuild the Qt desktop app:
cmake --preset qt-local
cmake --build --preset qt-localThe local Qt app preset writes patchy.exe under build/app.
Run the standard local test script:
powershell -ExecutionPolicy Bypass -File scripts/run-tests.ps1Install Qt 6.8.3 into .deps/Qt (for example pip install aqtinstall && aqt install-qt mac desktop 6.8.3 -m qtimageformats -O .deps/Qt, or linux desktop 6.8.3 linux_gcc_64
on Linux), then build the matching preset:
cmake --preset mac-release # or linux-release
cmake --build --preset mac-releasemacOS produces build/mac-release/Patchy.app; Linux produces
build/linux-release/patchy. packaging/macos/make-dmg.sh and
packaging/linux/make-flatpak.sh create the distributable artifacts. Both test suites
run offscreen on all three platforms (QT_QPA_PLATFORM=offscreen).
Create local Windows release artifacts:
build-release.batThe script configures and builds the release preset, signs build\release\patchy.exe, the installer helper executables, and the installer when the local signing environment is available, deploys the minimum Qt runtime needed by the current app, copies third-party notices, and creates:
build\package\PatchyWindowsNoInstaller.zip
build\package\PatchyWindowsInstaller.exe
The zip contains a top-level Patchy folder so it can be dragged anywhere and does not include installer-only helpers. The installer is a local per-user installer that installs to %LOCALAPPDATA%\Programs\Patchy, creates a Start Menu shortcut, offers a desktop shortcut, and registers an uninstall entry. latest_version.json is the update metadata file.
Patchy is not Photoshop-compatible across the full PSD surface yet, but a round-trip from/to Photoshop mostly works with RGB/RGBA 8-bit documents that use basic pixel layers, text objects, groups, masks, blend modes, layer styles, and the currently supported adjustment layers.
Important Photoshop features that are not supported yet, or are only partially supported:
- Editable Smart Filters cover 13 filter types with paintable shared masks and per-filter opacity and blend modes; unsupported imported filter types (including the Blur Gallery and Liquify smart filters) remain preview-locked and byte-preserved
- Full Photoshop adjustment-layer compatibility beyond Patchy's current adjustment support
- CMYK/Lab editing and export, editable spot separations and RGB component channels, multi-channel overlays, 16/32-bit editing, HDR/EXR, and full color-management parity (Patchy converts CMYK/Lab to RGB on open, but does not edit or save in those color modes)
- Layer comps, timeline/video/animation workflows, content-aware tools, and generative tools
- Photoshop's own automation surfaces: Actions (.atn), UXP/JSX panels, and scripts written for Photoshop (Patchy has its own JavaScript scripting and batch processing instead, see above)
- High-fidelity PSD/PSB edge cases, including layered PSB writing and byte-perfect preservation of every Photoshop-only metadata block
- Not tested much yet; expect bugs
- Patchy is slower than Photoshop, especially on large documents and it doesn't support GPU acceleration at all. However, being CPU only helps with porting and stability so kind of a trade-off that makes sense, for now. That said, certain operations have been optimized for multicore - canvas compositing and image flattening are multithreaded, splitting large images (4 Mpx+) into strips rendered on all CPU cores.
Patchy is released under the MIT License. Third-party runtime notices are tracked in NOTICE-THIRD-PARTY.md.
Adobe and Photoshop are either registered trademarks or trademarks of Adobe in the United States and/or other countries. Patchy is an independent project and is not authorized, endorsed, or sponsored by Adobe. References to Photoshop and its file formats (PSD, Smart Objects, Smart Filters) are only there to describe compatibility.
This project was developed with significant assistance from AI tools. I mean, you can still blame me (Seth) for bugs, but I just wanted to mention it.
Note: All included textures/materials are real images taken by humans, not AI generated
AI has reached the point where you can use your favorite AI to add the missing feature you want.
Just give it the link to this repo and say "Add .tiff support" and in about 10 minutes it will be done and working on your computer. Amazing, right?
I mean, that's kind of the power of open source.
Whatever AI you use, tell it (or more likely, it is reading this right now) to read AGENTS.md before doing anything else. It contains the build and repository-wide rules, then routes feature work to the relevant document under docs/.
There are 1000+ regression and benchmarking tests. AGENTS.md links agents to the testing guide that explains how to select and run them.
If you have a bug fix or feature you think should be in this repo, please look at the actual code and fully TEST IT YOURSELF before submitting the PR. If you're using AI, use a good one (Fable+ class), we don't want barely working slop.
I probably don't want any major features coming from outside, as there are wrong and right ways to do things, some of it a bit subjective. Remember, you can always go crazy in your own fork, have some fun!
Don't trust AI to create and submit PRs with no oversight, I'll delete ones that have too much AI smell. Smell human. This is starting to sound weird but you know what I mean.
Also, note that certain features are crippled or not included due to Adobe patents. For example, our "quick select" tool doesn't update in realtime, you have to finish the stroke. We can revisit this around 2030 when the patents expire...
Created by Seth A. Robinson - Homepage | Blog | Twitter | Bluesky | Mastodon
Code contributions from Michael Capogna
Photo "akiko_cycling_okinawa" (seen in the screenshots) by Seth A. Robinson





















