PhotoCraft actions and Photoshop .atn files
Use Photoshop actions without Photoshop: load .atn files in PhotoCraft's free Actions panel, see which steps play, save sets back and batch whole folders.
Yes, you can use Photoshop actions without Photoshop. Since v0.9.0 (14 October 2026), PhotoCraft loads and saves Photoshop Actions files (.atn). Open Window › Actions, choose Load Actions… from the panel menu and pick the file. The set appears as a folder, and each step either plays as a PhotoCraft command or stays in the action as a marked Photoshop step, which stops playback and tells you its name. The common filters, adjustments, layer, selection, image-size, fill and transform steps are mapped. Scripts, third-party plug-in filters, paths, Generative Fill and most Filter Gallery effects are not. You can record your own actions in the same panel, save any set back to .atn, and run an action on a whole folder with File › Automate › Batch or photocraft-cli batch --actions set.atn. PhotoCraft is free and open source, and none of this needs Photoshop installed.
At a glance
| Task | v0.9.0 |
|---|---|
| Record and play your own actions | Yes, desktop and online editor |
Load a Photoshop .atn set | Yes, version 16 files (Photoshop 6 and later) |
| Play the loaded actions | Mapped steps play. Other steps stop playback with their Photoshop name |
Save actions as .atn | Yes. Steps with no Photoshop equivalent are left out |
| Run an action on a folder | File › Automate › Batch, droplets and photocraft-cli (desktop only) |
| Button Mode, Insert Menu Item, an Insert Conditional menu item | Not in v0.9.0 |
The Actions panel
Open it with Window › Actions (Alt+F9, or ⌥F9 on a Mac; see shortcuts). It is a tab in the same panel group as History and Layer Comps. The buttons along the bottom are:
| Button | What it does |
|---|---|
| Square, Stop playing/recording | Stops recording |
| Circle, Begin recording | Records new steps onto the end of the selected action. It turns red while recording |
| Triangle, Play selection | Plays the selected action, or the first one when nothing is selected |
| Plus, Create new action | Starts recording a new action, named "Action 1", "Action 2" and so on |
| Trash, Delete | Deletes the selected step, or the selected action |
The panel menu, the menu button at the right end of the panel group's tab strip, has three Actions entries in v0.9.0: Load Actions…, Save Actions… and Insert Stop….
Record an action
- Open a document and click Create new action. Recording starts straight away.
- Do the edits you want to repeat. Each step appears in the action as you go.
- Click Stop playing/recording.
To add steps to an existing action, select it and click Begin recording. Since v0.7.0, File › Save and Save As are recorded, and since v0.9.0 so is Save a Copy, which plays back as a copy (#4390). Zoom and fit commands from the View menu are recorded too. If you play another action while recording, or press its function key, the recorder adds one Play Action:
Play an action
Select the action and click Play selection. Double-clicking an action row also plays it, unless you double-click the name itself, which renames it. Playback stops at the first step that fails, and the status bar says which one, for example Step 4 (filter.blur.gaussianBlur) failed: …. Each step that ran leaves one History state, so you can step back through the result.
Switch steps on and off
Expand an action with its triangle to see its steps. Each step has two toggles:
- The check box (Include in playback, since v0.8.2, #2866). Unchecked steps are skipped by playback, Batch and droplets. An action with steps switched off shows a count such as "2/3 steps".
- The dialog toggle (Show dialog during playback, new in v0.9.0, #4456). When it is on, playback opens that step's dialog with the recorded values and waits. OK runs the step with the dialog's values and carries on with the next step. Cancel stops the action. This works for steps whose command has a filter or adjustment dialog. Other steps, Batch, droplets and AI agents always use the recorded values.
One limit in v0.9.0: when an action called by a Play Action step pauses for a dialog, only the called action resumes after OK. The action that called it does not continue.
Insert Stop
Select an action (or one of its steps) and choose Insert Stop… from the panel menu. Type a message and choose whether to tick Allow Continue. The stop is inserted after the selected step, or at the end of the action.
When playback reaches the stop, it halts and the status bar shows stopped by the action: <your message>. With Allow Continue ticked, playback goes straight on past it. PhotoCraft v0.9.0 doesn't show Photoshop's Stop dialog with Continue and Stop buttons, so the message is only seen when the step halts the action.
Conditional steps
PhotoCraft can play Photoshop's Insert Conditional steps, but v0.9.0 has no menu item to add one. They come in with a loaded .atn file, or an automation client can add one with the actions.insert command. The panel shows them as Conditional: hasLayers → A / B. When the step plays, it tests the document or the active layer and plays the action named for that result. If that action fails, the calling action stops too.
The 33 conditions are: always, never, a document is open, landscape, square, portrait, the colour mode (RGB, CMYK, Grayscale, Lab, Bitmap, Indexed, Duotone, Multichannel), 8, 16 or 32 bits, unsaved changes, has a selection, has layers, has alpha channels, and, for the active layer, background, pixel layer, adjustment layer, shape layer, type layer, Smart Object, group, locked, visible, has a pixel mask, has a vector mask and has effects.
Sets, names, shortcuts and order
- Set folders (new in v0.9.0). Actions that don't belong to a set come first, then each set as a folder with its action count. Click a folder row to collapse or expand it, and right-click it for Save Set…. Drag an action among another set's actions to move it into that set. v0.9.0 has no New Set button: sets come from loaded
.atnfiles. - Rename. Double-click an action's name and type. Enter or Tab keeps the new name, Esc cancels. Names must be unique and can't be blank.
- Function keys. Right-click an action and pick Keyboard Shortcuts › None or F1 to F12. The key is shown on the action's row, and each key belongs to only one action.
- Order. Drag steps up or down within their action, and drag actions to reorder the list.
- Delete. Select a step or an action and click the trash button. While recording, you can delete steps but not whole actions.
Button Mode, where each action is a coloured button, is not in v0.9.0. Upstream has added it on the development branch since the release.
Load a Photoshop .atn file
- Open Window › Actions.
- Click the panel menu button and choose Load Actions….
- Pick the
.atnfile.
The status bar reports what arrived, for example "Loaded 8 actions from Grit.atn (1 step has no PhotoCraft equivalent yet)". The set appears as a folder with its first action selected and expanded. In v0.9.0 the panel menu is the only way in from the app: File › Open and drag-and-drop don't import .atn files.
What carries over:
- Every action and step, in order, with each step's on/off state and dialog toggle.
- Function keys. Actions assigned a plain F-key in Photoshop get the same key in PhotoCraft. Keys with Shift or Cmd/Ctrl are not carried over.
- Layer names. A step that selects or changes a layer by name (for example "Select layer Shadow") targets the topmost layer with that name in whatever document the action plays on. Steps that point at a layer by its index or ID don't map, because those numbers mean nothing in another document.
Other rules:
- Only version 16 files load, which is everything Photoshop 6 and later writes. Photoshop 5-era version 12 files are refused with
actions file version 12 (only version 16, Photoshop 6 and later, is supported). - Loading a set with the same name as one already in the panel replaces that set's actions. If a loaded action has the same name as another action, it becomes "Name 2", and Play Action steps in the set follow the new name.
- You can't load while recording or playing.
Steps PhotoCraft can't play yet
A step whose Photoshop event isn't in the mapping table stays in the action, labelled with its Photoshop name followed by "(Photoshop)". PhotoCraft keeps the step's original data, so Save Actions writes it back unchanged. When playback reaches it, the action stops with:
Photoshop step "<name>" (<event>) has no PhotoCraft equivalent yet; switch it off in the Actions panel to skip it
Nothing is skipped silently. Steps that only pick a tool, or otherwise don't change the document, are imported already switched off. For any other kept step, decide whether the action still makes sense without it. If it does, untick the step. If not, record a PhotoCraft replacement into the action and drag it into place.
photocraft-cli batch lists the played action's kept steps as warnings before it starts. Automation clients get the full list in the unsupported field of the actions.load result.
Which Photoshop steps are mapped
The table below covers the v0.9.0 mapping table, which has 102 entries (upstream's docs count 112 mapped events). An entry such as Make, Set or Select covers many different steps, and some steps map only in certain forms, as the notes say. Every mapped step is also written back to the same Photoshop event by Save Actions.
| Group | Photoshop steps that play | Notes |
|---|---|---|
| Blur and sharpen | Gaussian Blur, Motion Blur, Box Blur, Surface Blur, Smart Blur, Radial Blur, Blur, Blur More, Unsharp Mask, Sharpen, Sharpen More, Sharpen Edges | |
| Other filters | Add Noise, Median, Dust & Scratches, Despeckle, High Pass, Minimum, Maximum, Offset, Ripple, Crystallize, Filter Gallery | Filter Gallery: Spatter only, and only one effect per step |
| Adjustments | Levels (plus Auto Tone and Auto Contrast), Curves, Hue/Saturation, Brightness/Contrast, Threshold, Posterize, Invert, Color Balance, Vibrance, Exposure, Photo Filter, Black & White, Channel Mixer, Gradient Map, Selective Color, Desaturate, Equalize, Auto Color | The 15 adjustments with settings also map as new adjustment layers and as edits to an adjustment layer |
| Image | Image Size, Canvas Size, Rotate, Flip, Crop, Trim, Reveal All, Mode, Duplicate, Apply Image | Image Size and Canvas Size in pixels, or Image Size as one percentage for both sides. Mode: RGB, Grayscale, CMYK, Lab, Multichannel, 8/16/32 bits, and Bitmap by 50% threshold, pattern or diffusion dither. Arbitrary rotation of the canvas only |
| New layers (Make) | New layer, group, group from layers, layer via copy or cut, Solid Color and Pattern fill layers, adjustment layers, new document, new document from the clipboard | Patterns are matched by name |
| Layer changes | Set (name, opacity, fill, blend mode, visibility, label colour, Layer From Background, pattern of a Pattern Fill layer, adjustment settings), Select (by name, add or remove from the selection, next or previous layer, top or bottom, layer mask or composite channel), Delete (layer, layer mask), Hide, Show, Move, Flatten Image, Merge Visible (or stamp), Merge Layers, Layer Via Copy, Layer Via Cut, Rasterize, Select All Layers, Deselect Layers, Defringe, Align, Convert to Smart Object, Edit Contents, Update Smart Objects | Move: nudges in pixels or points, and Bring to Front, Send to Back, Bring Forward, Send Backward |
| Transform | Free Transform of a layer (move, scale, rotate), Transform Selection | Offsets must be in pixels. Skew and warp don't map |
| Selection | Select All, Deselect, Reselect, rectangle, ellipse, polygon, load transparency or a channel, Quick Mask on and off, Inverse, Feather, Expand, Contract, Smooth, Border, Grow, Similar, Select and Mask | Select and Mask uses PhotoCraft's own edge matting, so edges differ in detail |
| Edit | Fill, Paint Bucket clicks, Stroke, Copy, Copy Merged, Cut, Paste, Paste in Place, Purge, Step Backward and Forward, default colours, swap colours, Assign Profile, Convert to Profile | Fill: foreground, background, white, black, gray, a colour, history or Content-Aware. Paint Bucket only when the click was recorded in pixels. Profiles: sRGB, Display P3, Adobe RGB (1998) and ProPhoto RGB |
| File and actions | Open, Place (embedded or linked), Save, Revert, Close (a "Yes" to saving becomes Save, then Close), Save for Web, Play, Stop, Conditional | Recorded file paths must exist on your computer. Save for Web maps only when the step recorded a destination |
What doesn't map, per the source and upstream's gap list: scripts (AdobeScriptAutomation), path and vector operations, Generative Fill (left out by project decision), Filter Gallery effects other than Spatter, Bitmap halftone screens and custom patterns, Duplicate Layers into a new document, Image Size with two different percentages or physical units, Canvas Size in units other than pixels, and any event the table doesn't list. That includes steps from third-party plug-in filters, which PhotoCraft can't run anyway. Upstream's gap list also still names Photoshop's document-independent recording as missing.
How well does this work on real sets? Upstream's own tests in #4698 took four commercial TrueGrit Texture Supply sets from 223 unmapped steps to 3 out of 533, and all four played to the end. A free frequency-separation set loads with no unsupported step after #4470. Your own sets may do better or worse, depending on which steps they use. Filters and blends are PhotoCraft's own implementations, so a played action can look slightly different from the same action in Photoshop.
Save actions as .atn
There are two ways to save:
- Panel menu › Save Actions… saves the set the selected action belongs to. If that action isn't in a set, every action in the panel is saved as one set named "PhotoCraft Actions".
- Right-click a set folder › Save Set… saves that set.
The suggested file name is the set name plus .atn. Steps with no Photoshop equivalent are left out, and the status bar says how many ("2 steps with no Photoshop equivalent left out"). Kept Photoshop steps from a loaded file are written back exactly as they came in. Step on/off states, dialog toggles and function keys F1 to F15 are saved too. Action button colours are not: PhotoCraft reads them from a loaded file but doesn't keep them, so a saved set comes back with no colours.
The source describes the result as a file Photoshop loads, and upstream tests that an unchanged Photoshop file survives PhotoCraft's reader and writer byte for byte. Mapped steps, though, are rebuilt from PhotoCraft's own settings, so they can differ from the original in detail. We found no record of upstream testing the saved files in Photoshop itself, so check an important set in Photoshop before you rely on it there.
Apply an action to many files
File › Automate › Batch
Select an action in the panel, then choose File › Automate › Batch…. Steps you switched off are left out, and an action loaded from .atn works like one you recorded. The dialog takes:
- Input and Output folders. The output defaults to a
batchfolder next to the current document. Only images directly inside the input folder are processed. v0.9.0 has no Include All Subfolders option, which upstream has added on the development branch since the release. - Format:
same,png,jpg,psd,tifforwebp, with an optional quality. - File Naming and Starting serial (new in v0.9.0, #4466). Leave File Naming blank to keep the source names, or use
{name},{serial}(padded to three digits) and{date}(the UTC date,YYYY-MM-DD). For example{name}_{serial}givesphoto_001.png.
Batch skips recorded Save, Save As, Save a Copy, zoom and fit steps, because the output folder decides where files go. Since v0.9.0 it also skips recorded Quick Export steps (#4747). Every file gets a copy of your whole Actions list, so Play Action and Conditional steps can call other actions. A step that fails, including a kept Photoshop step or a Stop without Allow Continue, fails that file. The other files still run.
File › Automate › Create Droplet
File › Automate › Create Droplet… saves the selected action as a .pcdroplet file, together with any actions its Play Action steps call. Run it with photocraft-cli droplet. On macOS, Linux and FreeBSD it also writes a .command script you can drop files on. Since v0.9.0, when the document has never been saved, the dialog on macOS suggests your Documents folder instead of the app's working folder, which isn't writable (#4746).
From the command line
Since v0.9.0, photocraft-cli batch reads .atn files directly:
photocraft-cli batch --actions Grit.atn --action "Rough Edges" --in ./art --out ./done
--action <name>picks the action from the set. It's required when the set holds more than one action.- The whole set is loaded for each file, so Play Action and Conditional steps can call other actions in it.
- Before it starts, the CLI prints a
warning:line for each step of the chosen action that has no PhotoCraft equivalent, in the formwarning: `<action>` step <n>: Photoshop's "<name>" (<event>) has no PhotoCraft equivalent yet. Those files fail at that step unless the step is switched off in the file. - The rest works as for any
batchrun:--format,--quality,--in-placeand the other flags, no subfolders, and exit code1when any file fails.
--actions also takes the panel's actions.json or a single action's steps, as before. photocraft-cli droplet takes only .pcdroplet files, so to use a .atn action as a droplet, load it in the app and use Create Droplet. Full details of both subcommands are in Automate PhotoCraft with the CLI and MCP.
Where actions are stored
The desktop app saves the Actions list as actions.json in the Presets folder inside PhotoCraft's settings folder. It's written whenever the list changes, so there's no separate save step.
| OS | File |
|---|---|
| Windows | %APPDATA%\Photocraft\Presets\actions.json |
| macOS | ~/Library/Application Support/Photocraft/Presets/actions.json |
| Linux | ~/.config/photocraft/Presets/actions.json (or under $XDG_CONFIG_HOME/photocraft) |
| Windows portable zip | PhotoCraftData\Presets\actions.json, next to photocraft.exe |
The PHOTOCRAFT_CONFIG_DIR environment variable replaces the settings folder. photocraft-cli sessions don't read or write this file. To use your panel's actions from the CLI, pass the file to --actions.
Backing up and moving actions. Quit PhotoCraft and copy actions.json. To move every action to another computer, quit PhotoCraft there and put the file in the same place. This replaces the actions already on that computer. To add a few actions without replacing anything, save them as .atn with Save Actions… or Save Set… and load that file on the other machine. Keep in mind that the .atn route leaves out steps with no Photoshop equivalent. Function keys are stored in the preferences, not in actions.json, so they only travel inside a .atn file.
In the online editor
The online editor at photocraft.im runs v0.9.0 and has the same Actions panel. Recording, playback, the step toggles, Insert Stop and set folders all work there. Load Actions… opens your browser's file picker, and Save Actions… downloads the .atn file. Your actions are kept in the browser's storage for that site, not in a file you can copy. Batch, Create Droplet and running droplets need a file system, so they are desktop only ("not available on the web (no file system)"), and loaded steps that open or place files by path won't find them. For folders of files, use the desktop app.
Troubleshooting
"Photoshop step … has no PhotoCraft equivalent yet". The step uses an event PhotoCraft doesn't map. Untick it if the action works without it, or record a PhotoCraft replacement. See Steps PhotoCraft can't play yet.
"actions file version 12 …". The set was saved by Photoshop 5 or earlier. Load it in a newer Photoshop and save it again, if you have access to one.
A step fails with no layer named "…", or acts on the wrong layer. Loaded steps find layers by name. The document you play on needs a layer with the name the action expects, and if several layers share it, the topmost one is used.
Batch reports every file as failed. Check the action for a kept Photoshop step, a Stop without Allow Continue, or an Open or Place step whose recorded path doesn't exist on this computer. Untick the step and run the batch again.
"the set … holds N actions: pick one with --action --action with one of the names the message lists. The match is exact, including capitals and spaces.
"stop recording or playing before loading actions". Click Stop playing/recording, then load the file again.
The panel is empty after an update, or after going back to an older version. If actions.json can't be read, PhotoCraft starts with an empty list and leaves the file on disk untouched. Changes you make in that session aren't saved, and PhotoCraft warns Couldn't save actions: actions.json could not be read, so it was left unchanged. Quit, restore a good copy of the file (or move the broken one aside), and start PhotoCraft again. More help is in Troubleshooting.
For other file types PhotoCraft opens, see file formats. Download PhotoCraft from the download page.