Keyboard shortcuts
All keyboard shortcuts in VizChat — workspace, canvas, Storyboard, chat, file tree.
This page covers all built-in shortcuts in the current release. Use Cmd on macOS and Ctrl on Windows/Linux. When an input element (input / textarea / contenteditable) has focus, most global shortcuts are automatically disabled to avoid conflicting with typing.
Workspace global
Available anywhere in the workspace UI (sidebar, chat, workbench).
| Shortcut | Action |
|---|---|
Cmd / Ctrl + K | Quick open (files / my widgets / my templates) |
Cmd / Ctrl + B | Toggle the sidebar |
Cmd / Ctrl + S | Save now (see below) |
? | Open the keyboard shortcut help panel |
Cmd / Ctrl + Z | Undo the last change to the current file |
Cmd / Ctrl + Shift + Z | Redo the change you just undid |
About undo: undo applies only to the file you currently have open — pressing it while looking at A will never roll back B. Everything the assistant changed in one reply counts as a single step, so one undo reverts that whole turn; the conversation stays in place and is marked as undone. Each assistant message also carries an "Undo this turn" button, which lists the files involved before acting, each with what will happen to it: files already overwritten by later edits are marked as not reverted — undo those from inside the file with Cmd / Ctrl + Z; files that were not open when the assistant changed them are marked as outside undo scope — nothing overwrote them, they were simply never tracked, and Cmd / Ctrl + Z cannot reach them either. Undo history lives in this browser tab and is cleared on refresh or close (your saved changes are unaffected). If the file was changed elsewhere — another tab, another device — this tab's undo history is discarded, so that it can never overwrite someone else's work.
The workbench tab bar also has undo / redo buttons and a change history button (clock icon). History is one continuous line: below the Current marker is the past you can undo to, above it is the future you already undid and can still redo — click any node to jump to that moment in a single step. Future nodes only disappear once you make a genuinely new edit. AI nodes also link to the message that caused them.
About Cmd + S: documents save automatically (on blur, or shortly after you stop typing). This shortcut flushes any pending save immediately and suppresses the browser's own "Save page" dialog. You get a "Saved" confirmation only when something was actually written — if there is nothing pending, it stays silent.
These work inside the canvas too. The canvas runs in an isolated security sandbox (a cross-origin iframe) and browsers do not hand its keystrokes to the surrounding page, so the canvas relays these shortcuts to the workspace for you. The one exception is when focus sits inside a widget's expanded editing view — that is a further nested sandbox; click outside it first.
Inside the canvas
Available when focus is in the canvas.
| Shortcut | Action |
|---|---|
Cmd / Ctrl + C | Copy the selected widgets |
Cmd / Ctrl + V | Paste widgets |
Backspace / Delete | Delete the selected widgets |
Cmd / Ctrl + click | Add / remove widgets from selection |
| Drag on empty space | Rubber-band select |
Space + drag | Pan the canvas |
| Scroll / pinch | Zoom the canvas |
Esc | Clear the selection |
Copy, paste and delete are unavailable in read-only contexts, such as previewing someone else's template from the marketplace.
Storyboard playback
The following only fire in Storyboard mode (and only when no input is focused).
| Shortcut | Action |
|---|---|
↑ | Previous slide |
↓ | Next slide |
← | Previous sentence (crosses slide boundaries) |
→ | Next sentence |
Space | Start / pause autoplay (press again at end to replay) |
F | Toggle fullscreen present mode |
Chat and input
| Shortcut | Action |
|---|---|
Enter | Send message |
Shift + Enter | Newline |
Esc | Close @mention dropdown / cancel edit |
@ | Trigger mention search (files; @widget: for widgets) |
/ | Open the slash command menu |
IME compatibility: pressing Enter while a Chinese / Japanese / Korean IME is composing does not send — it lets the IME commit the candidate. Implemented via isComposing + onCompositionStart/End; no user action required.
File tree and workspace
| Shortcut | Action |
|---|---|
Enter (row focus) | Open file / confirm rename |
Esc | Cancel rename |
| Right-click / long-press | Open context menu |
Not yet covered
Full-text search across files and custom keybindings are both unavailable today. Cmd / Ctrl + K finds files, widgets and templates by name, but does not search their contents. If either matters to you, describe your use case on the issue tracker.
Next step
Publish a widget from the command line
Log in with the VizChat CLI, preview your widget locally with narrated demos, and publish it to the Marketplace — all from your terminal.
Supported file formats
Which formats VizChat's document parser accepts, which parse route they take, and which formats you can export to.