PhotoCraft v0.9.0: Photoshop Actions, layered Krita files and system printing
PhotoCraft v0.9.0: load and play Photoshop .atn actions, layered Krita import, DDS and DPX files, spring-loaded tool keys, system printing and Serbian.
PhotoCraft v0.9.0 came out on 14 October 2026, two days after v0.8.2. Its release notes list 393 merged pull requests from 103 contributors, 42 of them first-time contributors. The README still counts 67 tools: this release adds no new tool, but it can now load and play Photoshop's own action files, opens Krita documents with their layers, and prints through the system's printers on every desktop platform. Much of the rest makes existing commands behave the way Photoshop does, fixes stylus and platform problems, and speeds up work on large documents. PhotoCraft is still early alpha, so expect rough edges.
Highlights
- Photoshop Actions (
.atn) load and save. The Actions panel menu has Load Actions… and Save Actions… (#4434). Steps are translated to PhotoCraft commands and back; the project's gap list counts 112 Photoshop events mapped both ways (#4465, #4470, #4698). A step PhotoCraft can't play yet is kept, so Save Actions writes it back unchanged, and playback stops on it with its Photoshop name instead of skipping it. More on what plays: /guides/actions. - A fuller Actions panel: loaded sets show as folders, each step has Photoshop's dialog toggle, and Insert Stop… adds a message step (#4456). Conditional steps from Photoshop's Insert Conditional import and play (#4470).
- Krita files open with their layers: paint layers, groups, blend modes and transparency masks, from
.kraand.krz. v0.8.2 read only the flattened image Krita stores in the file (#4388). - More formats: DDS textures open (#4255), DPX film frames open and save (#4104), XPM icons open, including XPM2 (#4263, #4264), and Canon CR3 files open as the camera's JPEG preview (#4595).
- Spring-loaded tool keys. Hold a tool's key for a temporary tool and let go to get the previous one back (#4238). Toolbar tools can now get their own keys in Edit › Keyboard Shortcuts (#4194), and Photoshop's type formatting keys work while editing text (#4239).
- System printing. File › Print sends jobs through the system's print service on macOS, Linux and Windows (#3872, #3013, #4599). The Printer field lists the installed printers (#4748), and paper can be a custom size (#3893).
- Serbian interface (Latin script), for 21 languages in all (#4436).
- Soft Dark and Soft Light themes (#4378), and on Linux the window's caption buttons follow the desktop's layout, style and icon theme (#4439).
New tools and features
- Actions in detail: a dialog-toggled step opens its command's dialog with the recorded values and pauses; OK carries on with the next step and Cancel stops the action. A set folder's right-click menu has Save Set…, and dragging an action among another set's rows moves it into that set (#4456). The
.atnwork was tested against four commercial TrueGrit Texture Supply sets: 3 of their 533 steps stay unmapped, and all four play end to end (#4698). File › Save a Copy is now recorded and plays back as a copy (#4390). - Keys: a tool key held for 300 ms or more, or used on the canvas while it is down, springs back to the previous tool when released; a quick tap still switches for good. Hold Z to zoom, and add Alt to zoom out (#4238). While editing type, Shift+Ctrl/⌘ with K, U, B, I or / toggles All Caps, Underline, Faux Bold, Faux Italic or Strikethrough, and Alt plus the arrow keys changes leading, baseline shift and tracking (#4239). Shift+Ctrl/⌘+Alt+N adds a layer without the dialog (#4807), and pressing Ctrl/⌘+Alt+G again releases a clipping mask (#4927). See /guides/shortcuts.
- Printing: on Windows, Print couldn't reach a printer before. Now Print Settings… opens the driver's own dialog and the paper comes from the driver; crop and registration marks print too (#3013, #4599). On macOS and Linux jobs go to CUPS. Printing runs in the background and reports whether the queue accepted the job; to cancel a job, use the system's print queue (#3872). New Document's Print presets gain ISO B3 and B4 (#4784).
- Retouching: the Content-Aware Move tool previews its result on the canvas once the pointer rests, for selections up to 256 × 256 px (#4393). Content-Aware Fill no longer leaves a tinted blotch in smooth gradients such as a clear sky (#4708) and samples every visible layer by default (#4133).
- Selection: Object Selection shows the object it would pick while you hover, like Photoshop's Object Finder (#4095); Select › Color Range gains Skin Tones (#4473); Replace Color gains Localized Color Clusters (#4477) and a canvas eyedropper (#4247).
- Paths and transforms: the Pen tool gets Auto Add/Delete (#4540), a new path joins the selected path instead of replacing the Work Path (#4730), and the arrow keys nudge anchors with Direct Selection (#4500). Free Transform has H and V skew fields (#4699), applies a large layer's warp in the background with progress and Esc to cancel (#4218), and resamples with Photoshop's Bicubic (#4635).
- Layers and channels: smart filters can be dragged to reorder them or onto another smart object (#4897, #4371); Duplicate Layer can send the copy to a new document (#4805); Channel Options turns an alpha channel into a spot colour (#3784); layers highlight on the canvas when hovered in the Layers panel, and the other way round (#4719).
- Filters and stacks: Load Files into Stack and Image Statistics get Photoshop's dialogs (#4705, #4778); Field Blur pins sit on the image (#3801); Apply Image has source layer, Scale and Offset (#4574); in a filter dialog, Ctrl/⌘+Z steps back the dialog's settings instead of the document (#4715).
- Export: Save for Web (Legacy) can be resized, its previews pan and zoom, and a click on a GIF or PNG-8 colour-table swatch edits that colour (#4129). Animated documents play in its preview (#4703). Save for Web and Export As remember their settings between launches (#4184). Export As offers ICO (#4744), and Save As lists ICO, GIF and BMP (#4405).
- Interface: Preferences › Interface follows Photoshop's Appearance, Presentation and Options layout (#2589); the ruler's zero point can be dragged from the corner and reset with a double-click (#3505); New Document takes a custom background colour (#4801); the last brush is remembered between launches (#3472).
- Speed: Quick Selection is about 37% faster on 24 MP strokes (#4062); on large documents the CPU canvas redraws in the background, visible part first (#5001); Blend If composites on the GPU (#4541); PSD layers decode on all cores (#2754); large-radius Unsharp Mask is faster (#2987). Many smaller changes keep shared image tiles shared when moving, copying, filling or converting layers.
File formats
- Krita
.kraand.krz: 8- and 16-bit RGBA and gray paint layers, nested and pass-through groups, names, visibility, opacity, locks, blend modes, transparency masks, the ICC profile and resolution. Vector, filter, fill, file and clone layers are left out with a warning, and CMYK, Lab and float documents still open as Krita's merged image. Krita files are import only: Save suggests OpenRaster, which Krita opens with layers (#4388). - DDS opens, read only: uncompressed textures and BC1 to BC3 (DXT1, DXT3, DXT5), with the DX10 header. Only the top mip level is read; cubemaps, texture arrays and BC4 to BC7 are refused (#4255).
- DPX opens and saves at 8, 10, 12 and 16 bits. Code values are imported as stored, without a colour transform, and the import notes say which transfer curve the file declares (#4104).
- XPM icons open, read only, as XPM3 or XPM2, with the full X11 list of colour names (#4263, #4264).
- Canon CR3 opens the camera's embedded JPEG, marked as an 8-bit preview. The raw sensor data is not decoded (#4595). Panasonic RW2 files in RawFormat 3 and 4 now decode the sensor data instead of falling back to the preview (#3286).
- The Camera Raw Filter can save and load Adobe Camera Raw
.xmpsettings, so presets move between Photoshop and PhotoCraft; controls PhotoCraft lacks are skipped and counted (#4279). - Preferences › File Handling › Maximize PSD and PSB File Compatibility now works. Never skips the merged image, for smaller and faster saves (#3955).
- Palette PNGs open in Indexed Color mode with their colour table (#4817), and layered CMYK documents export as CMYK TIFF and JPEG with their profile instead of sRGB (#4199).
- TIFF saves uncompressed by default, as in Photoshop, so tools with simple TIFF readers open the files (#4491). TIFFs also keep EXIF and GPS data in their own directories (#4876), and a PNG saved at 300 ppi reads back as 300 (#4857).
- PSD: the Background layer survives a round trip (#3560), 16- and 32-bit files read their own layer blocks (#4950), and more index checks reject damaged files.
What opens and saves where: /guides/file-formats.
Languages
The official builds now include 21 interface languages: Serbian, in Latin script, is new (#4436). German gets 344 labels that were still in English (#4008), Italian had a native-speaker review (#4290), and Japanese, Russian, Brazilian Portuguese and Hungarian were updated. On macOS, the system's own dialogs, such as the question before overwriting a file, are no longer always in English (#4261). See /guides/language.
Automation (CLI & MCP)
.atnfiles work outside the app too:photocraft-cli batch --actions set.atnplays an action from a Photoshop set, andactions.loadandactions.saveload and write sets.actions.insert,actions.dialogandactions.assignSetedit actions (#4434, #4456).- Crop and Straighten Photos can run through automation (#3917).
photocraft-cli serverejects a documentindexthat isn't a non-negative integer. Before, a value like"0"fell back to the active document, sodoc.closecould close the wrong one (#4161).- Type on a path arrives as commands only:
type.attachToPathandtype.detachFromPathset type along a work path or shape. The Type tool can't start path text yet (#4377). edit.autoBlendLayersin stack mode can add a hidden depth-map layer for Lens Blur withdepthMap: true, for now through automation only (#2073).- New:
file.printerslists the system's printers (#4748),history.selectStatejumps to a state in one step (#3533), and the control channel can list and answer the unsaved-changes prompt (#4924). Batch skips recorded Quick Export steps (#4747).
Setup and examples: /guides/mcp-cli.
Web build
The online editor on this site runs the v0.9.0 web build. The release zip is 10.9 MiB, and the wasm file inside is 25,033,027 bytes (23.9 MiB), up from v0.8.2's 24,164,396 bytes but still under the project's 24 MiB limit.
- Chinese, Japanese and Korean text still shows as empty boxes in the web build, in type layers and in the interface. The web build has no CJK font yet (#1615, still open). Use the desktop app for CJK text.
- Krita files open with their layers in the browser too. The Content-Aware Move preview is desktop only, since the web build has no threads, and the Printer list is empty in the browser.
- The brush preset storage banner shows only while a change is unsaved (#4918).
Self-hosting notes are on /download/web.
Fixes and stability
- macOS: big brushes keep the system brush outline up to 2048 points instead of 255, so they no longer trail the pointer, and large cursor outlines draw about 7 times faster (#4401).
- Windows: the screen colour picker no longer crashes on DX12 and can always be closed (#4704). A light pen tap paints at low pressure instead of full (#4072), and a pen held still no longer opens a context menu (#4106). Picking another type in Save As changes the extension when Explorer shows extensions (#4407). Full screen and maximized are kept apart (#4396), and the Zoom tool shows a magnifier cursor (#3783).
- Linux: GNOME's default light appearance is no longer read as dark (#4289); precision trackpads pinch to zoom (#4786); JPEG, BMP and other non-PNG images paste on Wayland (#4752); X11 menus stay clear of a panel that covers a maximized window (#4380).
- Type: Space types a space while editing text (#4224), and document text falls back to installed Indic fonts (#4386).
- Export As no longer freezes on large layered PSDs (#5104), the window reopens where you left it (#4850), and autosave keeps recovery bundles whose sidecar file was never written (#5076).
- Security: the compositor no longer overflows or over-allocates on hostile coordinates (#4431), and the new DDS, DPX and XPM readers treat every header field as untrusted.
More known problems and fixes: /guides/troubleshooting.
Breaking changes or things to know
- Holding a tool key is now temporary. Hold it for 300 ms or more and the previous tool comes back when you let go. Tap the key to switch for good (#4238).
- Not every action plays. Steps outside the mapped events, such as scripts, Generative Fill, path operations and offsets recorded in points, stop playback with the step's name. Photoshop 5-era
.atnfiles are not supported (#4470). Check a set on a copy of your file first. - TIFFs are bigger. TIFF saves are now uncompressed, and there is no compression setting in the app yet (#4491).
- Some defaults changed to match Photoshop. The Move tool's Auto-Select target is Group unless you already chose one (#4093); switching the appearance to light uses Pro (Light), keeping the Pro layout, instead of Studio Light (#5029); small images open at 100% whatever the display scale (#5089); Content-Aware Fill samples all visible layers (#4133).
- Image › Mode › Grayscale comes out darker. The default working gray is now a Dot Gain 20%-compatible curve, as in Photoshop, instead of sGray (#4610). Replaying an older action can give a different image.
- CR3 is a preview. Canon CR3 files open the camera's 8-bit JPEG, not the raw data (#4595).
- Windows 7 and 8: PhotoCraft still needs Windows 10 or later (#2310), and the v0.9.0 MSI still has no installer check for older versions.
How to update
Download the v0.9.0 build for your system from /download: Windows, macOS, Linux or the web build. The release has the same 26 files as v0.8.2, including SHA256SUMS.txt. Builds come only from the official GitHub release; avoid third-party mirrors. If you are coming from v0.7.0 or earlier, also read the v0.8.2 notes.
Full release notes, with every merged pull request: PhotoCraft v0.9.0 on GitHub.