Skip to main content

PhotoCraft v0.23.0: shared translations, a movable toolbar, Pen Make Mask and Cylinder warp

PhotoCraft v0.23.0: interface translations now come from the shared craft-i18n catalogs, the toolbar can sit on either side, the Pen gets Make Mask and Rubber Band, Warp gets Cylinder, Fujifilm compressed RAF files develop in full, PDF spot channels export as plates, and hundreds of fixes make tools behave as in Photoshop.

v0.23.0Released Nov 11, 2026Official release notes on GitHub

PhotoCraft v0.23.0 came out on 11 November 2026, about 58 hours after v0.22.0. Its release notes list 265 merged pull requests from 70 contributors (plus Dependabot), 17 of them first-time contributors. As in v0.22.0, nothing here shipped in an earlier release: every listed pull request was merged after v0.22.0's code was taken on 9 November and before the tag. The tag's code is main as of 11 November, 18:57 UTC (the merge of #13278), plus the version number. Some entries change little for users: #12790, #12854, #12712, #13023, #13004, #9311 and #8732 change tests; #13074, #13079, #13128 and #13199 repair main after other merges; and #13050, #11231, #10238, #13255 and #13206 change CI, tooling and contributor docs.

The largest change is under the hood: the interface translations now come from craft-i18n, the catalogs all the Craft apps share. The languages and their order stay the same. Users will notice the toolbar, which can now move to either side of the window, and the Pen, which gets Photoshop's Make: Selection…, Mask and Shape buttons and Rubber Band. Warp gets Cylinder, the Eyedropper a right-click menu, and the unsaved-changes prompt Apply to All. Fujifilm's compressed RAF files develop in full, PDF export writes spot channels as their own plates, and Linux packages carry the automation guides for offline use. Most of the other pull requests make single tools match Photoshop: their alerts, defaults after Reset Tool, history names and options bars. The web build still doesn't start as packaged, and this site's online editor skipped this release; see Web build below. PhotoCraft is still early alpha, so expect rough edges.

v0.23.1 followed about seven hours later; see How to update.

Highlights

  • Translations from craft-i18n. PhotoCraft no longer carries its own translation files. Its interface text comes from storytold/craft-i18n, shared by the Craft apps, built in from the commit pinned in craft-i18n.rev (#12374). The 35 languages are the same, in the same order, and language detection is unchanged. Serbian now has the code sr-latn, its only catalog; a saved sr setting moves to it when preferences load. Translation fixes and credits now belong in craft-i18n. Georgian text draws with Noto Sans Georgian from the Craft apps' fonts, or an installed Georgian font, in the web build too (#8812). See /guides/language.
  • The toolbar can sit on either side. A button in the toolbar's header, Move Toolbar to the Left or Move Toolbar to the Right, moves it to the other side of the window, and tool flyouts open toward the canvas. In a right-to-left interface the toolbar starts on the right (#11193).
  • Pen tools as in Photoshop. In Path mode the Pen options bar shows "Make:" and three buttons, Selection…, Mask and Shape; Mask is new and adds a vector mask from the path (#12993). The Pen's gear menu has Rubber Band, off by default (#13035). Alt-dragging a straight segment adds an anchor and pulls out its handles (#13037), Enter deselects the Work Path it finished (#12984), and the Mode list shows Shape, Path and a greyed Pixels (#13264). Add Anchor Point, Delete Anchor Point and Convert Point edit only the targeted path and respect Lock Position, an anchor added with Add Anchor Point can be dragged at once, and deleting an anchor of a live shape asks first (#12815, #13108, #13048, #10405, #13150, #13073).
  • Cylinder warp. Warp edits Photoshop's Cylinder warp with handles and fields (#9798). The Default grid shows its handles without hovering, a Split button places one split, and Bend, H and V take one decimal (#12894, #12883, #13044, #13107). A fold shows what's under its transparent parts (#11170).
  • Unsaved changes: when several documents have unsaved changes, the prompt offers Apply to All (#9021), and on macOS ⌘D is Don't Save (#11297).

New tools and features

  • Type: Ctrl+. (⌘.) cancels a type editing session (#12335). The Type options bar has a list of font size presets (#12718). The placement of text on a path can be edited (#11629), colour emoji and other COLR fonts draw in their own colours (#8247), dragging a paragraph box's handle no longer holds up the interface (#12316), and a Type Mask click on a text layer's glyphs edits that layer (#13113).
  • Sampling and selections:
    • a right-click with the Eyedropper opens a menu with the Sample Sizes, Copy Color as HTML and Copy Color's Hex Code (#12182); the Color Sampler shares its Sample Size, and every sampler reads the N×N average (#12175); Shift+Alt+click with a painting tool adds a colour sampler (#12245);
    • a New-mode Magic Wand click inside the selection deselects, and a drag moves the outline (#12161); Caps Lock gives the Magnetic Lasso its width cursor (#12151); Object Selection finds objects on a transparent layer (#12869);
    • selected pixels can be dragged onto another document's tab or into a tiled canvas (#10059), and a pixel layer thumbnail's right-click menu has Select Pixels (#12450).
  • Painting:
    • the Pencil's options bar gets pressure toggles, and Shift+digit sets its opacity (#12477, #12371); Alt+digit sets a brush's Smoothing, Alt+3 for 30% and Alt+0 for 100% (#12034);
    • the [ and ] keys step through Photoshop's brush sizes, so ] from 30 px gives 35, 40, 45, 50, 60 (#12969);
    • the Airbrush lays about ten dabs a second while held (#12169); the Eraser gets Erase to History (#10692); Smudge gets a Mode list, Sponge a Flow field and the Pattern Stamp Behind mode (#13031, #13022, #13028); the Magic Eraser measures Tolerance by colour spread (#12406);
    • Catch-up on Stroke End starts unchecked (#11895), and Reset Tool gives Burn and Dodge a 65 px soft tip, Sponge the same and the Clone Stamp a 21 px one (#12691, #12793, #13109, #12862);
    • big imported brushes paint about twice as fast, and a slow brush no longer freezes the cursor and panels (#10010, #10013); the brush HUD shows Diameter, Hardness and Opacity (#12056).
    • Many tools now refuse documents and layers Photoshop's tools refuse, such as Indexed Color or Bitmap documents, with Photoshop's alert, instead of doing nothing or something else. More on brushes: /guides/brushes.
  • Crop and transform: Perspective Crop constrains new and corner drags with Shift and Alt, its quad follows the pointer while you click its corners, a free crop takes the quad's perspective size, and its first drag deselects an active selection as its own step (#12236, #12232, #12421, #12226). The Crop tool's Straighten button gets its label and a spirit-level icon (#11490). A proportional Free Transform corner drag follows the pointer along the diagonal (#11160), and Move tool Auto-Select handles locked layers (#11711). See /guides/crop.
  • Adjustments and filters: Image › Adjustments › Color Lookup lists the LUTs in your LUT folder (#9827). Match Color can take its source from a layer (#10901). Gradient Map keeps Photoshop's stops, midpoints and smoothness (#9319). Average works on smart objects and imported PSD smart filters, with correct colour weighting (#9077, #9076). Liquify's Forward Warp follows the pointer, and its preview shows the effect only inside the selection (#10690, #10044). Stroke Emboss bevels the stroke (#9337), and the Gradient tool samples Angle and Radial gradients where Photoshop does (#12287). Bitmap documents grey out all filters and adjustments but Invert, as in Photoshop (#10545).
  • CMYK and spot colours: Color Settings › Spot sets dot gain for spot channel and Multichannel ink previews (#6787), and CMYK channel views and thumbnails show the document's inks (#9940).
  • Canvas and interface:
    • one mouse-wheel notch pans 16 screen pixels (#12202); with the Hand tool held by Space, a right-click opens the view menu (#11292); floating document windows zoom from the Navigator and status bar (#11294);
    • a command shortcut closes an open menu or list and runs (#9314), sliders are easier to hit (#9326), number fields take a decimal comma (#10738), Opacity comes right after Mode in every options bar (#9980), and dialog labels no longer run over in longer translations (#10395);
    • Keyboard Shortcuts records keys the app or the Mac menu bar uses (#10451); the Histogram panel follows the selection (#4887); Shift snaps a moved guide to ruler ticks (#8836); the Note tool's Clear All asks first (#12217).

More on the tools: /guides/tools and /guides/shortcuts.

RAW Develop

  • Fujifilm compressed RAF files, lossless and lossy, are decoded instead of showing only their embedded preview (#7377). Canon CR3 files still open only as their embedded preview.
  • GPU preview: Shadows and Highlights, and Dehaze, Clarity and Texture, are developed on the GPU in the preview (#6951, #7020).
  • Coming back to PhotoCraft brings the RAW Develop window to the front (#7119).

See /guides/raw-develop.

File formats

  • JPEG: File › Save on a flat JPEG asks for JPEG Options, then saves in place; a JPEG that now has transparency is offered as PNG instead (#7878).
  • Save As lists PSB as its own type and sorts file types by name (#10822).
  • TIFF: a 1-bit TIFF opens in Bitmap mode, as in Photoshop (#10539).
  • PDF: spot channels are written as overprinting Separation plates (#10384). See /guides/pdf.
  • HEIC/HEIF decoding now comes from craft-heif, part of the Craft apps' shared libraries (#13076).
  • GIMP XCF: the first of six pull requests that turn XCF imports into native PhotoCraft documents keeps the import's conversion data (#11009). See /guides/gimp-xcf.
  • .pcraft files get a decode budget that follows the machine's memory (#9323), a truncated GIF or WebP says which frames are missing (#11175), and Image Size gets a Columns unit (#6215).

What opens and saves where: /guides/file-formats.

Actions and automation

  • Actions: Set Measurement Scale › Custom, Displace, and Layer › New › Artboard and Artboard from Layers steps play (#12438, #11836, #12469). In the Actions panel, a row dragged onto the trash is deleted and onto Create new action duplicated (#12402). An action step with a list of layers exports one Set per layer (#8579). See /guides/actions.
  • Image Processor (File › Scripts › Image Processor) works on the current document or all open documents, unsaved edits included, as well as a folder; scripts pass source (#12858).
  • Automation: read roots are taken in order (#3023), writes below a Windows UNC root finish (#10323), and bridge mode never sends its control token to a listener that isn't the app (#9778). Setup and examples: /guides/mcp-cli.

Platforms and packaging

  • Linux packages carry the automation guides mcp.md and control-protocol.md: /usr/share/doc/photocraft/ for the .deb and .rpm, share/doc/photocraft/ in the tarball, /app/share/doc/photocraft/ in the Flatpak and squashfs-root/usr/share/doc/photocraft/ in an extracted AppImage. The Flatpak built from source now installs photocraft-cli too, as the release bundle already did (#7239). See /download/linux.
  • Windows: a pen moves and resizes the window through the title bar (#12992); saving to a folder that can't flush its directory works (#9861); the canvas draws correctly on software DirectX 12, and the compositor builds with the FXC shader compiler (#10507, #8734).
  • macOS: the Text Color Picker's eyedropper uses the system's own pipette, so the cursor no longer lags (#12523).
  • FreeBSD: windows get Adwaita-style decorations (#11106).
  • Updater: craft-update moves to a newer craft-libs commit (#13281). The Flatpak still lacks the permission to update itself; v0.23.1 adds it (#13322).

Performance

Changes to adjustments, the layer order and clipping redraw only the area they affect, and a command's redraw covers all of it (#10052, #10053, #10104). Adjustment previews on unstyled clipped layers are faster (#12356), and so are 16-bit decoding and box blur (#8246, #10425, #10426).

Web build

The v0.23.0 web zip still doesn't start as packaged. We read its file list: app/photocraft-web.js still imports ./snippets/eframe-d31a8450ea12dfc1/inline0.js, and snippets/ is still only at the top of the zip, so on a plain static server the page stays at "Loading PhotoCraft…". #10017 is still open, and the fix, #10248, isn't merged. Georgian text now draws in the web build (#8812); Chinese, Japanese and Korean text is still tracked in #1615.

This site's online editor skipped v0.23.0. It went from v0.21.0 straight to v0.23.1 on 12 November 2026; see the v0.23.1 notes and /download/web.

The zip is 16,041,654 bytes (15.3 MiB), up from v0.22.0's 14,909,301. The app is one gzipped part, app/photocraft-web-d4d5a3fa5fa0b150.part-aa, of 15,933,810 bytes (15.2 MiB).

Fixes and stability

  • Hostile files: icon themes, font tables, TIFF structure and strips, deep OpenEXR files, PNG colour profiles (at most 16.7 MB inflated), SVG drawings that would need too much memory, and Affinity text are checked or budgeted, so a crafted file can't use huge amounts of time or memory (#11227, #11194, #10983, #9781, #9786, #10300, #10953, #11149).
  • Bounds: one stroke can emit only so many steps, file reads grow in bounded steps, Liquify replays absurd brush values without overflowing, and cross-artboard moves that would overflow are refused (#11195, #11577, #11013, #11062).
  • Files on disk: preferences refuse paths with empty segments, and recovery replaces a symlinked sidecar and doesn't follow symlinked folders (#11228, #11230).

More known problems and fixes: /guides/troubleshooting.

Breaking changes or things to know

  • Translations moved. Fixes to a translation now go to storytold/craft-i18n, not to PhotoCraft. Serbian's code is sr-latn; a saved sr moves to it on its own (#12374).
  • Changed behaviour: a wheel notch pans 16 screen pixels, [ and ] step through Photoshop's brush sizes, Catch-up on Stroke End starts unchecked, and Ctrl+S on a flat JPEG asks for JPEG Options and saves over it (#12202, #12969, #11895, #7878).
  • Flatpak updates: Update and Restart can't update the Flatpak bundle yet; v0.23.1 fixes that. Update the bundle by hand, as on /download/linux.
  • No Windows 32-bit build, as since v0.22.0; see the v0.22.0 notes.
  • The web zip doesn't start as packaged; see Web build above.
  • Update and Restart on Windows MSI installs. The report that it restarts without installing (#10477) is still open on 12 November 2026. If it happens, download the MSI from /download/windows and run it once.
  • Windows 7 and 8: PhotoCraft still needs Windows 10 or later.

How to update

v0.23.1 followed on 12 November, so install that one instead; see the v0.23.1 notes and /download: Windows, macOS, Linux or the web build. The v0.23.0 release has the same 52 files as v0.22.0, with SHA256SUMS.txt to check them against; the Linux files and SHA256SUMS.txt are signed with the same release-signing-key.asc, and /guides/verify-download shows how to check them. Builds come only from the official GitHub release; avoid third-party mirrors. If you are coming from v0.21.0 or earlier, also read the v0.22.0 notes.

Full release notes, with every merged pull request: PhotoCraft v0.23.0 on GitHub.