Skip to content

Keybindings

Grafli is modal. Most commands are a single key in Select mode (the default). The full cheat sheet is also available in-app via F1, with live filtering.

Modes

Key Mode
v Select
n Create node — Shift+click stays in mode
t Create note — Shift+click stays in mode
c Connect arrow (one-shot)
s Style sub-mode (colors, sizes)
d Dimension sub-mode (resize)
Escape Cancel / back to Select

In n / t mode a semi-transparent ghost preview follows the cursor showing where the new element will land. Clicking creates the element and exits to Select; holding Shift while clicking keeps you in the create mode for rapid placement. New elements come prefilled with placeholder text (A Node / Some text …) so the auto-opened editor lands on the placeholder ready to type-replace.

File

Key Action
+N New file
+O Open file
+S Save file
+Q Quit
Key Action
Arrow keys Pan viewport
Middle-drag / Right-drag Pan from anywhere
+ / - Zoom in / out
z Zoom-in step cycle: 25 → 50 → 100 → 150 % (wraps)
Shift+Z Zoom to fit (whole graph)
gz Focus: zoom the selection to fill the viewport; press again to fly back. Re-press after changing the selection to re-focus
gp Select parent (zoom if needed)
gc Select first child
Tab / Shift+Tab Cycle siblings (or search matches when search is open)
f / Ctrl+J Jump to any item (global)
Ctrl+O / Ctrl+I Nav history back / forward
Alt (hold) Graph nav: follow connectors
/ Search dim-filter — see Search below

Edit

Key Action
e / Double-click Edit selected element (inline)
E Open the full-window zen editor — edits a note's own text; for a box/image, opens (or creates) its attached markdown file
W Set URL on selected item
Return Open URL in browser
Enter Accept edit
y / p Yank / paste
u / +Z Undo
Ctrl+R / +Shift+Z Redo
x / Delete Delete selection
Ctrl+G Insert glyph (while editing a label)

Editing a note (vim)

Editing a note (e / double-click) opens a small vim-capable editor in place — the same keybindings as the full-window zen editor, without leaving the canvas. It opens in INSERT mode so you can type right away; Markdown (md:) notes are syntax-highlighted.

Key Action
Esc (in INSERT) Drop to NORMAL mode (vim motions/edits)
Esc (in NORMAL) Commit and close
Shift+Esc (in NORMAL) Discard and close
Click elsewhere Commit and close

Create

Key Action
o / O Create box below / above selection
Ctrl+G Encapsulate selection in a new parent box
Ctrl+arrow Create connected box in that direction
Alt+drag Connect nodes — boxes, notes, images (from Select)
Alt+click Paste at position

Style

With a selection, press s to enter style mode, then:

Key Action
c Open the color grid — hjkl to pick (live preview), Enter to confirm, Esc to cancel
i Open the icon grid (visual vocabulary) — same keys; Tab toggles placement (fill ↔ lead). Fill: big glyph + caption. Lead: small glyph beside the label
t Open the text grid — rows = sizes, columns = Regular / Bold / Italic / Bold+Italic; hjkl to move (live preview), Tab toggles a note's font (handwritten ↔ monospace), Enter to confirm, Esc to cancel
j / k Cycle text size (quick nudge)
d then r Snap selected box(es) to the slide aspect ratio — a reusable export frame (re-apply after edits; works on a multi-selection)
Shift+G Snap to grid
= Auto-layout selection (or all)

Focus & analysis

Key Action
, Dim arrows
Shift+N Dim notes (and their connectors)
A Complexity heatmap
B Subgraph focus (cycle direction: all → forward → backward)
Shift+B Toggle focus depth (full / 1-hop)

The same three view-toggles also have buttons in the side panel's View section.

View

Key Action
# Toggle grid
M Toggle minimap
\ Toggle tools panel

Export

Key Action
Y Yank diagram as PNG to clipboard
Ctrl+E Export SVG to file

Arrows

Key Action
e Edit arrow label
s Arrow style mode
h / l Toggle arrowheads
j / k Arrow label size
Shift+J / Shift+K Cycle arrow style
s then a Toggle connector kind: graph edgeannotation (a graph edge to a note or image makes it a node)

Buffers

Key Action
Ctrl+K Open / switch buffer
Ctrl+6 Toggle last buffer
Q Close buffer (no selection)

Bookmarks & flows

Save labeled viewpoints and string them into guided tours — see Bookmarks & flows.

Key Action
gb Bookmark what's shown (selection, else everything visible)
gB Bookmark the exact viewport (pixel-faithful framing)
gf Start / stop flow recording (each capture is appended)
gF Auto-flow: generate a flow by walking forward arrows from the selected node
F5 Present the current flow fullscreen (chrome hidden, paused)

During playback (in-app or presenting):

Key Action
Space / Next stop
Previous stop
t Toggle smooth camera ↔ instant cuts
p Cycle paused → playing → playing (loop)
Esc Exit playback

Mouse

Action Effect
Click @path:line in a code-mode note Open the file at that line in the configured editor
Shift+click Toggle selection (on empty space or a node's body)
Drag a corner handle Scale the selection — size and font, around its bounding box; keeps the aspect ratio. A preview frame shows where it lands and it commits on release. Hold Shift for a free (non-uniform) scale
Drag an edge handle Stretch that single axis (modifier-agnostic)
Alt+drag Connect nodes (boxes, notes, images)
Alt+click Paste at position

Press / to open the search dim-filter. Typing dims everything that doesn't match to ~8% opacity so hits stand out across the canvas at once; the minimap reflects the same dimming so off-screen hits stay visible.

Key Action
/ Open search input (works on non-US layouts where / needs Shift+7)
Type Live filter — matches box label + box id + note text (case-insensitive substring)
Tab / Shift+Tab Cycle to next / previous match (animated, lands at 100 % zoom)
Enter Dismiss the input badge but keep the dim filter active
Esc Clear the input and the filter
Backspace Edit the query

Search is mutually exclusive with focus / complexity / arrow-dim — opening one closes the others.

Help

Key Action
F1 In-app cheat sheet (with filter) and text-annotation reference
` Toggle debug overlay