A free, open-source image editor for Windows, macOS, Linux, and the browser. Built with a focus on accurate PSD compatibility, keeping text, vectors, masks, layer styles, and Smart Objects editable when working with layered Photoshop files. Work in limited palettes without flattening your layers, import editable Affinity and PDF artwork, and extend the editor with classic plug-ins and JavaScript.
Download · Try in your browser · Features · Full gallery
For bug reports and feature requests, please open an issue or post in Discussions. These are the best places to post because search engines can index them, helping others find the questions and answers. Want to chat? Join Seth's Discord.
Designed to feel familiar if you're used to Photoshop's workflows and keyboard shortcuts.
Latest release: 1.13 · October 17, 2026 · Release notes · All releases
Windows releases are code signed by Seth A. Robinson; the macOS app is signed and notarized (Robinson Technologies Corporation); the Linux Flatpak repository is GPG signed. Every release is published on the GitHub Releases page with SHA-256 checksums.
| Platform | Package | Download |
|---|---|---|
| Windows 10/11 (64-bit) | Installer | PatchyWindowsInstaller.exe (100 MB) |
| Windows 10/11 (64-bit) | ZIP file (no installer) | PatchyWindowsNoInstaller.zip (100 MB) |
| macOS 12+ (Apple Silicon) | DMG - drag to Applications | PatchyMacOS.dmg (111 MB) |
| Linux (x86_64) | Flatpak, from our repository | The command below, or com.rtsoft.patchy.flatpakref |
| Linux (x86_64) | Flatpak bundle (single file) | PatchyLinux.flatpak (68 MB) |
| Linux (x86_64) | AppImage (Ubuntu 22.04+) | PatchyLinux.AppImage (119 MB, details) |
| Any modern browser | Nothing to install | patchyimageeditor.com or rtsoft.com/patchy |
Paste this into a terminal. It installs Patchy for your user from the Patchy Flatpak repository and pulls the shared KDE runtime from Flathub. No root needed.
flatpak install --user -y https://rtsoft.com/flatpak/com.rtsoft.patchy.flatpakrefPatchy then updates with flatpak update or through your software center, and starts
from your application menu or with flatpak run com.rtsoft.patchy.
This needs the flatpak tool. If needed, install it first with
sudo apt install flatpak.
The .flatpakref link in the table downloads a small file that a Flatpak-aware
software center (GNOME Software, KDE Discover) can open to install Patchy. Ubuntu has
none by default, and on Ubuntu 24.04 GNOME Software's Open button fails to start
Flatpak apps, so use the terminal command above instead.
The single-file bundle is the same build, for when you would rather download a file
first. Install it with flatpak install --user -y PatchyLinux.flatpak. It still fetches
the KDE runtime from Flathub, and it updates from the same repository afterwards.
My flatpak knowledge is limited, so I hope all this makes sense. I hope to submit Patchy to Flathub eventually, but for now we have our own repository.
PatchyLinux.AppImage is one file that runs without installing anything, on Ubuntu
22.04 or newer (or another distro from 2022 on: Debian 12, Fedora 36, Mint 21 and so on).
It updates itself, so keep it somewhere you can write to, such as ~/Applications:
mkdir -p ~/Applications && cd ~/Applications
wget -O PatchyLinux.AppImage https://github.com/SethRobinson/Patchy/releases/latest/download/PatchyLinux.AppImage
chmod +x PatchyLinux.AppImage
./PatchyLinux.AppImage(curl -LO works instead of wget -O PatchyLinux.AppImage.) You can also make it
executable from your file manager (Properties > Permissions, "Allow executing file as
program") and double-click it.
The AppImage does not need libfuse2, but it does need FUSE 3, which most desktops
already have. If it says it cannot mount itself, install it:
| Distro | Command |
|---|---|
| Ubuntu, Mint, Debian, Pop!_OS | sudo apt install fuse3 |
| Fedora | sudo dnf install fuse3 |
| openSUSE | sudo zypper install fuse3 |
| Arch, Manjaro | sudo pacman -S fuse3 |
Without FUSE (some containers and minimal systems), run it with
./PatchyLinux.AppImage --appimage-extract-and-run.
To add Patchy to your application menu, open the AppImage with Gear Lever.
When a new version is out, Patchy's update prompt can download it, replace the AppImage
file and start again (if the file sits in a folder you can write to; otherwise it offers
the download). AppImage tools such as Gear Lever or AppImageUpdate can also update it.
For AI control, the connector command is the AppImage file with the argument
patchy-mcp (Help > Set up AI Control shows the exact line). The AppImage opens HEIC
images through your distribution's libheif (Ubuntu and Debian: the libheif1 package,
plus libheif-plugin-libde265 on Ubuntu 24.04 and later); the Flatpak brings its own.
See it in action. Click an image for the full-size capture.
See the full gallery for painting, palette mode, seamless textures, Camera Raw, long shadows, scripting, and more.
| Workflow | What you get |
|---|---|
| Layered Photoshop files | PSD and PSB, editable text, groups, masks, clipping, blend modes, and layer styles. |
| Pixel art and game assets | Paint in a fixed palette while keeping layers, text, and effects editable. Use retro or custom palettes, named colors, and indexed PNG/BMP export, alongside seamless tiling, sprite sheets, image sequences, DDS textures, and animated GIF/WebP. |
| Affinity documents | Import .af, .afphoto, .afdesign, and .afpub files with editable text, vectors, masks, supported adjustments, and layer effects, then continue editing or save as PSD. Support and limitations. |
| PDF documents | Import pages as editable text, vectors, and images on desktop; export single or multi-page PDFs with editable or flattened content. |
| Non-destructive editing | Adjustment layers, embedded and linked Smart Objects, editable Smart Filters, and shared filter masks. |
| Paint and retouch | Pressure-aware brushes, Mixer Brush, stroke smoothing, healing, cloning, Patch, Remove Object, Liquify, and selections, including Object Selection that picks out an object from a dragged box. |
| Text and vectors | Rich and vertical text, paragraph controls, Warp Text, Pen paths, shape layers, vector masks, SVG, and image tracing. |
| Photos and print | 16-bit and 32-bit (HDR) editing, Camera Raw development, HEIC/HEIF, AVIF and JPEG XL, CMYK proofing and CMYK JPEG, TIFF, and PDF export for print, and common image formats. |
| Extend your workflow | The G'MIC filter library (nearly 400 filters with live preview, desktop), Last Filter to repeat any filter, classic 32-bit and 64-bit Photoshop filter plug-ins on Windows, a built-in JavaScript editor, batch processing, command-line tools, and local MCP control. |
Patchy's C++ foundation makes these integrations more straightforward: we can build on established C and C++ libraries such as G'MIC and implement classic Photoshop plug-in interfaces directly.
Full feature list and format support · Scripting guide · AI control setup
Local by design. No telemetry, tracking, or uploads of your images. The browser build runs the same editor locally through WebAssembly. Desktop builds have more memory available and add printing, scanner/camera import, and command-line automation. Optional update checks contact GitHub, as do the one-click updates (Windows and the Linux AppImage) and Object Selection's High Quality model, each downloaded only if you ask for it. Twelve interface languages, dark and light schemes, and importable themes are included.
In the October 12, 2026 Testy v2 run,
Patchy opened all 309 files of the psd-tools test collection, and Photoshop
reopened every Patchy save with all 43 text objects, 183 adjustment layers,
172 Smart Objects, and 181 live effects kept. Patchy's perceptual render match
was 97.2%, the highest of the eight programs tested against Photoshop's
reference, using Patchy 1.10 (commit d00225bb).
Testy v2 scores each program on what it draws itself: the baked pixels Photoshop stores for text, shapes, fills, and Smart Objects are removed first. That is stricter than the August run, so the two sets of numbers are not comparable.
These are dated, corpus-specific results. The linked report has every file's renders and difference maps for all nine columns. Read the full comparison and methodology for the tables, per-folder results, scoring rules, and limitations.
Know the limits: editing is RGB at 8, 16, or 32 bits per channel (the browser build stops at 16). CMYK work is proofing and export: CMYK Proof mode shows the print colors and saves CMYK JPEG, TIFF, and PDF, but pixels stay RGB. Lab and the other color modes convert to RGB on open, and there is no GPU acceleration. Unsupported Smart Filters can remain preview-locked, and Affinity import has format-specific limitations. See current compatibility.
- File formats: AVIF opens and saves on every platform with no system codec, animated AVIF and animated PNG open with each frame as a layer (issue 120, issue 119); JPEG 2000, Radiance HDR and OpenEXR open and save, and JPEG-compressed TIFFs open (issue 117, issue 118); when a file cannot be opened the message now says why and names the file (issue 112)
- Memory: a paint stroke keeps only the pixels it changed in the undo history instead of a copy of the whole layer, tens of kilobytes instead of megabytes per stroke (issue 109)
- Image > Rotate 180, Flip Horizontal and Flip Vertical, and Layer > Arrange > Rotate Layer Right, Left and 180 (issue 139)
- Selection: marquee drags and handles stop at the image edge (issue 143), the size readout is a pill beside the pointer (issue 142), and copying a whole layer puts its pixels on the clipboard (issue 116)
- Color picker: a 48-color Basic palette (issue 141), Add Custom Color (issue 140), Sat and Val as percentages (issue 149), and the Eyedropper's Alt+click sets the background color (issue 150)
- Tool palette: the overflow arrow points where the extra column opens and never covers a tool, the expansion reserves only the columns it uses, and nothing shifts when it opens (issue 122, issue 126, issue 124, issue 121); a new Magnetic Lasso icon (issue 130) and icon accents that read on the Light scheme (issue 129)
- Shape and pen tools: the stroke preview matches the committed stroke (issue 125), and anchors and handles read at any zoom (issue 105)
- Interface: Ctrl+K opens Preferences (issue 144), options-bar labels lose their colons (issue 127), layer row badges sit centered (issue 134), the recent-files filter matches names and extensions (issue 158), plus the swap-colors glyph, Preferences dropdowns and the dock tab line (issue 115, issue 146, issue 123)
- Linux: the window uses Patchy's own frameless chrome like Windows, with a "system title bar" preference (issue 145); HEIC opens through the distribution's libheif, AppImage included (issue 117); on Wayland a maximized window restores correctly (issue 132) and Pick Screen Color works through the desktop portal (issue 128); the AppImage keeps the chosen color scheme (issue 133)
- Tool palette: a compact Photoshop-style color well that sits with Quick Mask in a footer pinned to the bottom of the palette. The footer stays put when a short screen expands the palette to a second column, and the overflow chevron is no longer clipped
- Shape and text tools: a drag can now start outside the canvas, on the pasteboard, as marquee drags already could
- Options bar: the bar keeps one row until the current tool's controls really need two, instead of reserving the tallest row of every tool (issue 91)
- Pen tool: moving several anchors with the Direct Selection tool no longer leaves a trail of old handles, a layer mask stays targeted through undo, and the selection right-click menu is offered beside the marching ants (issue 105)
- SVG import: a stroke more opaque than its fill becomes its own shape layer instead of vanishing (issue 111)
- Open dialog: reopens on the format row picked last time (issue 114), lists HEIF only where a decoder exists, such as not in the AppImage (issue 113), and the open-failed message names the file (issue 112)
- Interface: the Scripting Guide has the dialog chrome and a Close button and the About box has an X (issue 107), the Feather label has the same gap to its field as every other options-bar label (issue 106), and File Info never wraps the Created, Modified, Application and Format values (issue 103)
- Linux: short screens keep the bottom panels on-screen, since the right column's panel floors now fit the screen height (issue 108, issue 110), and on Wayland menus and combo lists open in place at a non-100% interface scale (issue 100)
- Browser version: the Filter menu shows the G'MIC Filter Library row and explains that its nearly 400 filters need the desktop version
Choose Plugins > Open Plug-ins Folder, copy your .8bf files and their supporting
files into it, then choose Plugins > Rescan Plug-in Folders. Both 32-bit and 64-bit
filters appear under Plugins > Legacy Photoshop Plug-ins.
Filters run on the active pixel layer, respect the selection, and apply as one undoable step. A separate helper isolates plug-in crashes. Plug-ins still run with your user permissions, so install only ones you trust. KPT and other formerly full-screen filters get a bounded, movable window. Plug-in details.
See build instructions for the core, Qt desktop app, macOS, Linux, and Windows packaging. Contributors and automation tools should read AGENTS.md first.
Patchy is released under the MIT License. Third-party runtime notices are tracked in NOTICE-THIRD-PARTY.md.
Adobe, Illustrator, 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, its file formats (PSD, Smart Objects, Smart Filters) and its plug-in format (8BF) are only there to describe compatibility.
Affinity is a trademark of Canva and its subsidiary Serif (Europe) Ltd. Patchy is not affiliated with, authorized, endorsed, or sponsored by Canva or Serif; Affinity is named only to describe which files Patchy can import.
All other product and company names, including Aseprite, Kai's Power Tools, Windows, macOS, and Linux, are trademarks of their respective owners. They are used only to identify file formats, plug-ins, and platforms Patchy works with, and no endorsement is implied.
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 agent to add the missing feature you want.
Just give it the link to this repo and tell it "read AGENTS.md and add feature X to this project". It will read the code, read the tests, and add the feature.
I mean, that's kind the power of open source, amplified.
Whatever AI you use (the smarter the better), tell it (or more likely, it's 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 2800+ regression and benchmarking tests. AGENTS.md links agents to the testing guide that explains how to select and run them. Due to the size of some of the test files I use they aren't all included, it will skip tests that require missing files.
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!
If you have a bug fix or feature you think fits this project's scope please open an issue or tweet/etc at me. If you want to submit a pull request, please look at the actual code and fully TEST IT YOURSELF before submitting, and if possible include screenshots of the actual changes so it's clear what you're doing. If you're using AI, use a good one (Fable/Astra+ class), we don't want barely working slop.
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.
Patchy is an independently developed image editor. Our goal is to build something powerful, fast, free of unnecessary bloat, and ultimately a tool that fits what I'm doing, especially for game-dev use cases. Recreating Photoshop feature for feature is not the goal.
Our PSD compatibility work uses publicly available format documentation and observations of files and rendered output produced by a licensed copy of Photoshop. We have not decompiled or disassembled Photoshop. Patchy also implements the legacy 8BF plug-in interface for interoperability, using its own declarations without copying Adobe SDK code. This compatibility work helps people keep their documents editable and use existing plug-ins across applications.
We also take patents seriously. Some features are deliberately limited or omitted because of patent concerns. For example, Quick Select calculates the selection when you finish a stroke instead of updating it continuously as you paint. Our development constraints document these boundaries, which we revisit as relevant patents expire or our research changes.
Created by Seth A. Robinson - Homepage | Blog | Twitter | Bluesky | Mastodon
Incredible people who donated suggestions, bug reports, and code: mcapogna, csbun, ifloppy, lucastucious, c-sanchez, egofree71, PorkingMane, alexanderadam, danielmigueltejedor, ProShi, Kevdoy, popkc3, WinterTreat, jackpini, fivetenth, revae, RDR77, Oppa-YA, YuFu-Onship, malnaanah, CHJ85, DavidLee1115, philipzae, and Uthopik
Photo "akiko_cycling_okinawa" (seen in the screenshots) by Seth A. Robinson







