| Double-click empty canvas | Add a new box at the cursor (auto-edits the label) |
| + Box button | Add a new box at a random position |
| Click a box | Select it (replaces the current selection) |
| Double-click a box | Edit its label inline |
| Enter while editing | Commit the new label |
| Escape while editing | Cancel the edit |
| Drag a box body | Move it (and any other selected boxes together) |
| ⌥-drag (Alt-drag) | Duplicate the selection and drag the copies |
| Delete / Backspace | Remove all selected boxes (and their submap subtrees) |
| Drag a blue dot to another box | Create a connection between the two boxes |
| Drag a blue dot onto an existing connected handle | Re-route the existing connection |
| Drag a blue dot into empty space | Spawn a new box at the cursor and connect to it |
| Click an edge | Select it (turns blue + thicker) |
| Delete / Backspace on edge | Remove the edge |
| (creating a new edge) | Replaces any prior edge between the same pair (undirected) |
| Drag on empty canvas | Rubber-band select all boxes intersecting the rectangle |
| Shift-drag on empty canvas | Add to the existing selection instead of replacing |
| Click on empty canvas | Clear the selection |
| ⌘-click a box (macOS) | Enter that box's submap |
| Middle-click a box | Enter that box's submap |
| ↑ Up button | Navigate one level up |
| Click a breadcrumb segment | Jump to that level |
| ⌘/Ctrl + Z | Undo (up to 100 steps; each save is one step) |
| ⌘/Ctrl + Shift + Z | Redo |
| Ctrl + Y | Redo (alternate) |
| Escape | Close this help · cancel link drag · clear selection · cancel a freshly spawned box |
| ? button (top right) | Open / close this help |
| (any change) | Auto-saves to the .flowgo file (200 ms debounce) |