Skip to content
SethRobinsonPublic

About

Open-source image editor focused on PSD compatibility and workflows familiar to Adobe Photoshop users.

Topics

Resources

Stars

642 stars

Watchers

5 watching

Forks

Repository files navigation

Patchy logo

Patchy Image Editor

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, bring in Affinity, Krita, GIMP, OpenRaster, Paint.NET, 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.

Cyclist photo with color-wheel and Levels controls, an editable Levels adjustment layer, a Smart Filter stack and shared mask, grouped text, and a clipping mask

Designed to feel familiar if you're used to Photoshop's workflows and keyboard shortcuts.

Download

Latest release: 1.23 · October 30, 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 (112 MB)
Windows 10/11 (64-bit) ZIP file (no installer) PatchyWindowsNoInstaller.zip (112 MB)
Windows 11 (ARM64) Installer PatchyWindowsArm64Installer.exe (105 MB)
Windows 11 (ARM64) ZIP file (no installer) PatchyWindowsArm64NoInstaller.zip (105 MB)
macOS 12+ (Apple Silicon) DMG - drag to Applications PatchyMacOS.dmg (117 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 (49 MB)
Linux (x86_64) AppImage (Ubuntu 22.04+) PatchyLinux.AppImage (95 MB, details)
Any modern browser Nothing to install patchyimageeditor.com or rtsoft.com/patchy

Linux

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 https://rtsoft.com/flatpak/com.rtsoft.patchy.flatpakref

Patchy 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. Fedora and openSUSE desktops usually have it already. If needed, install it first with sudo apt install flatpak (Ubuntu, Debian), sudo dnf install flatpak (Fedora) or sudo zypper install flatpak (openSUSE).

If you already use flatpak system-wide, you can use --system in place of --user. Patchy then reuses the runtime extensions you already have (graphics drivers, codecs) instead of downloading them again. Installing that way may ask for an admin password.

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 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.

AppImage

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 needs the FUSE 3 tools and libraries (not libfuse2), 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, use an AppImage integration tool: Gear Lever (a Flatpak app: open the AppImage with it), AppImageLauncher (offers to integrate an AppImage the first time you open it), AM (command line: am --launcher ./PatchyLinux.AppImage), or AppImage Manager.

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.

Screenshots

See it in action. Click an image for the full-size capture.

Layer Style and gradient color controls over layered artwork.
Build up layer effects
Layer styles with multiple effects, blending controls, and Photoshop-compatible presets.
Kai's Power Tools 5 running in its own window over Patchy. Classic 32-bit and 64-bit 8BF filters work on Windows.
Bring your old plug-ins
Kai's Power Tools 5 running in its own window over Patchy. Classic 32-bit and 64-bit 8BF filters work on Windows.
Object Selection tool with a vintage car selected in a busy Havana street from one loose box drag, the rest of the photo muted.
Select the object, not the box
Drag a loose box around anything and Object Selection picks out just the object. Runs on your CPU.
Editable paths, gradient and pattern paint, dashed strokes, rounded corners, and a Paths panel.
Edit the paths
Editable paths, gradient and pattern paint, dashed strokes, rounded corners, and a Paths panel.
Editable warped text with the Warp Text dialog and the Character and Paragraph panels open, a paragraph with bold, italic, color, underline, strikethrough, superscript, subscript, small caps and mixed fonts, tracked lettering, and vertical Japanese columns.
Give type its own voice
Warped text, mixed fonts and styles in one paragraph (underline, strikethrough, super and subscript, small caps), letter spacing, and vertical Japanese.
Tilt-Shift Blur with on-image controls and live preview in the Filter Gallery.
Shape the focus
Comes with many filters and a filter gallery, like Tilt-Shift Blur with live previews.
Patchy's Light theme with four artboards for a car-weekend campaign: a white story, a black banner, a cream post selected with the Artboard tool, and a transparent icon, with the Properties panel showing the post's position, size and background.
Every size in one document
Artboards keep a story, banner, post and icon side by side, each with its own size and background. Export them to separate files or PDF pages. This screenshot uses the Light theme.
The G'MIC Filter Library with Rodilius selected among the Artistic filters, its settings beside the list, and a live preview on the right half of a Havana street photo, with the original on the left.
Nearly 400 G'MIC filters
Browse the G'MIC library, adjust the settings, and watch the result render live on your canvas. Here Rodilius runs inside a selection, with the original photo on the left.
Why settle for only .psd? An introduction above eight labeled artboards in a 4 by 2 grid: Photoshop game artwork, Affinity game tips, a Krita character painting, a GIMP planet illustration, an OpenRaster city poster, a Paint.NET landscape, a layered TIFF print design, and Aseprite pixel art, with imported layers visible in the Layers panel.
Eight formats, one document
PSD/PSB, Affinity, Krita, GIMP, OpenRaster, Paint.NET, layered TIFF, and Aseprite artwork, each imported onto its own artboard with its layer stack intact. Editable SVG and PDF imports are available too. See the format support and limitations.

See the full gallery for painting, palette mode, seamless textures, Camera Raw, long shadows, scripting, and more.

Features

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/PNG.
Layered formats from other editors Import Affinity (.af, .afphoto, .afdesign, .afpub) with supported text, vectors, masks, adjustments, and effects; open Krita (.kra) and GIMP (.xcf) documents with their groups, masks, and blend modes; open Paint.NET (.pdn) with its pixel layers and blend modes; open and save OpenRaster (.ora), layered TIFF, and Aseprite files. Format 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, Red Eye, 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, JPEG XL, JPEG 2000, OpenEXR and Radiance HDR, plus CMYK proofing and CMYK JPEG, TIFF, and PDF export for print.
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.

Platform support

The desktop and browser builds share the editor, with these differences:

Capability Windows macOS Linux Browser
Available build x64, ARM64 Apple Silicon x86-64, Flatpak / AppImage WebAssembly
8-bit and 16-bit editing Yes Yes Yes Yes
32-bit HDR editing Yes Yes Yes Opens converted to 16-bit
PSD/PSB, Affinity, Krita, GIMP, OpenRaster, Paint.NET, layered TIFF, Aseprite Yes Yes Yes Yes
PDF import / export Both (ARM64: export only) Both Both Export only
G'MIC Filter Library Yes Yes Yes No
Photoshop filter plug-ins (.8bf) 32-bit and 64-bit No No No
AVIF import / export Both Both Both No
JPEG XR import / export Both No No No
HEIC/HEIF import With OS codecs With OS decoder With system decoder With browser HEVC support
Printing Yes Yes Yes No
Scanner / camera acquisition Both, via WIA Scanners No No
Built-in JavaScript editor Yes Yes Yes Yes
Command line and local MCP connector Yes Yes Yes No

Format support does not imply every source feature stays editable; see the format limits and current limitations. PDF import requires Qt PDF when building a custom desktop version. HEIC/HEIF availability depends on the installed decoder. The browser build also has tighter memory limits.

PSD compatibility, measured

In the October 29, 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 98.7%, with 299 files within 10% of Photoshop's pixels, and its Photoshop text score was 97.3%, both the highest of the six programs tested against Photoshop's reference, using a Patchy 1.21 development build (commit 25822a64).

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 seven 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.

What's New

1.23 - October 30, 2026

  • Adjustments: Image > Adjustments > Black & White (Ctrl+Shift+Alt+B) has hue chips, a reading of how much of the image each slider acts on, a tint with Hue and Saturation, and 21 presets with thumbnails in Neutral and Tinted sections; Vibrance, Exposure, Channel Mixer, Photo Filter, Gradient Map, Selective Color and Color Lookup now apply directly from Image > Adjustments (issue 528)
  • Shapes and paths: 878 custom shapes from game-icons.net ship built in, loaded on first use, with arrows and signs in Arrows and Symbols and cards and dice in Games; polygons stay live, path components get W, H, X and Y fields and live rows, Combine Shapes has menus, and a click picks a work path among shapes (issue 521)
  • Edit > Fill opens a Fill dialog with Contents, Mode, Opacity and Preserve Transparency, on Shift+Backspace and Shift+F5 (issue 530)
  • Shortcuts: Shift+[ and Shift+] step brush hardness, the digit keys set layer opacity, / locks transparent pixels and Shift+Alt+letter sets the blend mode, on Photoshop's keys (issue 522, issue 527, issue 529, issue 531)
  • Brushes: one center cross at every size, and Show Outline off shows that cross instead of the system crosshair (issue 533); Show Overlay matches the painted pixels down to 1 px, drag strokes center on the pointer and a Soft Square tip paints square; the tip chooser gives names the whole cell in smaller text on up to two lines, with the full name in the tooltip, and seeded tips and patterns are no longer added twice on a fresh profile (issue 506); Import Brushes opens in the folder it showed last (issue 520)
  • Move and layers: a Move drag inside a selection moves the selected pixels on their layer, with Auto-Select on or off (issue 532); Ctrl over a layer or channel thumbnail shows add, subtract and intersect badges, and Channels rows combine selections with Shift and Alt (issue 525, issue 480); Merge Visible works on a single visible layer that has a mask, style, text, shape or other content to apply (issue 519)
  • Interface: the Layer Style dialog drags smaller than its tallest page and scrolls, and remembers its size (issue 536); the Properties panel's divider drags it taller and its info rows wrap; combo boxes in Preferences and Customize Tool Palette are at least 90 px wide and Customize Tool Palette names its tab Layers Panel (issue 526, issue 537, issue 538); leaving full screen keeps a maximized window maximized on Linux (issue 491); the Filter Gallery list no longer scrolls sideways
  • Files: transparent flat images open as a plain transparent layer, and a Preferences option keeps the old layer mask (issue 534)

1.22 - October 30, 2026

  • Brushes: Brush Dynamics opens in a smaller popup with section tabs, a stroke preview, a per-section on/off switch, Reset Section and dots on changed sections; the tip chooser gains a Filter field, and both the tip chooser and Brush Dynamics and Effects can float as windows that stay open while you paint (issue 506); Show Overlay in the brush gear previews the dab under the pointer in the foreground color, with Show Outline and a scrubbable Overlay Opacity (issue 517); the Shift+click line preview runs between pixel centers (issue 505)
  • Clone and Healing: the Clone Source popup lines its fields up in two columns and fits its notes (issue 515); the clone overlay follows brush resizes, the brush circle stays visible with no source set, and Alt-click outside the canvas clears the source (issue 516)
  • Layers panel: a settings gear on the title row opens Customize Layer Buttons and the thumbnail size and display options (issue 511); every layer and mask thumbnail has a 1 px outline (issue 514)
  • Animation Preview: Image > Animation Preview opens it (issue 512); frame delays get - and + steps, an attached presets list and an editable default delay, and the window layout is tidier (issue 198)
  • GIMP files: drop shadows keep GIMP's color, mode and opacity, and Drop Shadow gains a Contour (issue 507); text keeps HSV, HSL and Lab colors, underline, strikethrough and per-span fonts and sizes through edits, and outlined text opens editable with a Stroke style (issue 508, issue 509)
  • Interface: Preferences has a Cancel button (issue 510) and puts Toolbar icon size on its own row; Window > Options is now Tool Options (issue 513); a modal dialog shows the arrow pointer over the canvas (issue 504); the status bar centers its document info and no longer says "Opened" after a clean open, while import notes show as a yellow notice (issue 502, issue 518); New Document's Name field lines up with the Recent cards (issue 497); Customize Tool Palette headings follow the color scheme (issue 499); after a click on the Start panel background, Ctrl+V opens a copied path
  • PSD and color: untagged Grayscale PSDs read as Dot Gain 20%, Grayscale Exposure matches Photoshop, grayscale noise gradients render gray, CMYK artboards blend on their own inks, and shapes with Strk stroke records or stored pixels off the canvas draw where Photoshop draws them; File Info shows +03 time zones as +03:00 and hides GIMP's GPS placeholder (issue 500)
  • Text: World-Ready paragraphs, blank lines with fixed leading, and centered box text from psd-tools line up with Photoshop

Older releases

Photoshop plug-ins (.8bf, Windows only)

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.

Building it yourself

See build instructions for the core, Qt desktop app, macOS, Linux, and Windows packaging. Contributors and automation tools should read AGENTS.md first.

License

Patchy is released under the MIT License. Third-party runtime notices are tracked in NOTICE-THIRD-PARTY.md.

Trademark Notice

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 and to label a Layers button arrangement.

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 and to label a Layers button arrangement.

All other product and company names, including Aseprite, GIMP, Kai's Power Tools, Krita, Windows, macOS, and Linux, are trademarks of their respective owners. They are used only to identify file formats, plug-ins, platforms and Layers button arrangements, and no endorsement is implied.

AI Disclosure

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

Missing features / contributions?

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 thousands of 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.

Independent development and compatibility

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.

Credits

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, Uthopik, and spgrhy-lab

Photo "akiko_cycling_okinawa" (seen in the screenshots) by Seth A. Robinson

About

Open-source image editor focused on PSD compatibility and workflows familiar to Adobe Photoshop users.

Topics

Resources

Stars

642 stars

Watchers

5 watching

Forks

Releases

Contributors

Languages