Concepts

Canvas Operations

The keys and gestures for arranging a flow, what undo takes back, and what happens when you switch a node off.

The canvas toolbar

The strip across the top of an open flow carries the controls you reach for while arranging it, plus the switch that arms it.

The canvas toolbar. Back to Home and the flow's name sit on the left; the Canvas ↔ Flow Builder switch and the controls pill — Run (Stop while a run is live), Delete selected, the Section tool, Markup, and zoom out / in / to fit — sit in the middle; the share menu and the **Enabled** switch that arms the flow sit on the right.
The canvas toolbar. Back to Home and the flow's name sit on the left; the Canvas ↔ Flow Builder switch and the controls pill — Run (Stop while a run is live), Delete selected, the Section tool, Markup, and zoom out / in / to fit — sit in the middle; the share menu and the Enabled switch that arms the flow sit on the right.

Keyboard and gestures

With nodes selected on the canvas:

KeyAction
DDisable or enable the selection. Any node still on, all go off; all off, all come on.
⌘DDuplicate, offset 40 points, named "… Copy".
⌘C / ⌘VCopy and paste. Paste lands at the centre of the view and offsets each repeat.
⌘ASelect every node and every wire.
DeleteDelete the selected nodes and wires.
ArrowsNudge 1 point. Hold ⌘ for 20.
FZoom to fit.
1Reset zoom.
⌘GWrap the selection in a Section. Also on the Edit menu and the canvas right-click menu.
⌘Z / ⇧⌘ZUndo and redo.
EscPut the Section tool away.

Drag a wired node far enough and the wire tensions — tauter and hotter under your cursor — then snaps, as an ordinary undo step. Only wires with one end in the selection strain; drag toward a neighbour and that wire goes slack instead.

Wires never break mid-run. While the flow is running a dragged wire draws fully taut and holds, so a tidy-up can't hand a downstream node an empty input.

Undo and redo

Every structural gesture is one step: deleting (however many nodes and wires — one ⌘Z brings them all back, settings and connections intact), adding, wiring, dragging, nudging, resizing, paste, duplicate, disabling, note colours. Discrete inspector changes are steps too, and the Edit menu names each one, so you know what Undo will take back. A whole Flow Builder turn is one step: Undo AI Build.

Typing is different on purpose: inside a text field ⌘Z undoes your typing the way it does anywhere on the Mac.

Undo history is per open canvas. It holds 100 steps and clears when you leave the flow or quit. Deleting a node keeps its Explain chats recoverable until you leave.

Disabling a node

A disabled node performs no work and passes its input through unchanged. No script runs, no file moves, no LLM is called — and the run never fails because a node is off. Disable from D, the right-click menu, or the Enabled checkbox in the inspector.

NodeDisabled behaviour
Actions, transformers, AI, utilitiesInput passes through on the normal outlet. Zero side effects, zero tokens.
ConditionContinues out Yes only; the No branch is skipped.
For Each, WhileZero iterations; input continues out Done.
Triggers and emittersNever armed, never fire.

It dims and shows a gray slash; its ports stay connectable and wires through it still carry the payload. In the timeline it shows a Disabled status with its output equal to its input — unlike a skipped node, which sat on an untaken branch and received nothing.

Testing AI for free. Disable an AI node and the rest of the flow still exercises end to end at no inference cost.

A flow with every trigger disabled cannot arm. Disabling takes effect immediately, even while armed, but only prevents new fires — a run already underway finishes.

Canvas background

Each flow can be painted behind the grid and the nodes. Choose Default, Color, Gradient (thirteen bundled washes) or Image in the inspector, with a fit of Cover, Fit, Stretch, Actual Size or Tile. Show grid is a separate switch beside them. Default follows Settings ▸ Themes, which keeps one for Light and one for Dark; a flow's own choice always wins.

Uploads are copied in, and travel. Your pictures live in one library shared by every flow, are copied rather than linked, and ride inside an exported .watchflow. Community Flows submissions leave them out.