Keyboard shortcuts

This page lists the keyboard shortcuts of the RTCode.io playground by task, as of October 2026. The macOS form follows the slash, as in Ctrl+S / ⌘+S. In the playground ⌘ works as Ctrl and ⌥ as Alt, and Apple platforms, including iPhone and iPad, use the macOS keys automatically. Key hints are hidden on touch-only devices. Commands lists every command with its menu path, modifiers and script form.

Most keys work wherever the focus is, but a few depend on it. Where the keys work says how keys travel, and Keys that depend on focus or state and Keys that are taken list the exceptions.

KeysDoes
F1Open the command palette. It focuses the input first.
Alt+F / ⌥+FToggle the File menu, the logo button.
Alt+J / ⌥+JToggle the Playground menu.
Alt+K / ⌥+KToggle the Open menu.
Alt+U / ⌃+⌥+UToggle the User menu. On macOS use ⌃+⌥+U in the editor and ⌥+U or ⌃+⌥+U elsewhere.
Alt+N / ⌥+NFocus the notifications. Esc hides the focused toast.
Alt+Shift+/ / ⌥+⇧+/Show the About dialog, written Alt+? on the menu.
EscClose a menu, dialog or drawer. In the toolbar, outside a menu, it returns the focus to the input.
↓ on a toolbar buttonOpen its menu. Inside a menu, ↑ and ↓ move and wrap, Home and PageUp go to the first item, End and PageDown to the last, a letter jumps to the next item that starts with it, and Enter activates.

Sync and reload

KeysDoes
F4Sync once, input → output.
F5Load: reload the output, not the playground.
F6Sync once, output → input.
F7Toggle Shadow Source Materialization.
F8Toggle Locate.
Alt+I / ⌃+⌥+IToggle live input → output. On macOS use ⌥+I outside the editor.
Alt+O / ⌥+OToggle live output → input.
Ctrl+Alt+O / ⌃+⌥+OPull the output into the input once, when the output does not have focus. On macOS ⌘+⌥+O works too.

Code, deploy and routes

KeysDoes
Ctrl+S / ⌘+SDeploy to every route.
Ctrl+Alt+S / ⌘+⌥+SDeploy with a message.
Ctrl+E / ⌘+EOpen the first route in a new tab.
Ctrl+Shift+E / ⌘+⇧+EOpen every route.
Shift+Delete / ⇧+⌦Delete the deployment, after a confirmation. Ctrl+Shift+Delete skips the confirmation.
Alt+T / ⌥+TSet the title.
Alt+R / ⌥+RSet the routes. On macOS it works in the editor only.
Alt+. / ⌥+.Show your recent deployments.
Alt+V / ⌥+VOpen the versions of the first route. Alt+Shift+V / ⌥+⇧+V opens every route.
Alt+Shift+S / ⌥+⇧+SMeasure the code size.
Ctrl+Alt+N / ⌘+⌥+NCreate new code. On macOS the editor uses ⌃+⌘+⌥+N.
Ctrl+Alt+V / ⌘+⌥+VImport a URL.
Ctrl+I R / ⌘+I RRevert to the deployed source. Ctrl+I W / ⌘+I W does it in a new window.
Ctrl+R / ⌘+RReload the playground and keep the session.

Layout, split, focus and console

KeysDoes
Alt+/ / ⌥+/Toggle between side by side and stacked.
Alt+P / ⌥+PSwap input and output.
Alt+1 to Alt+9Set the split to 10% to 90%. The digit of the current position mirrors it, so Alt+3 at 30% gives 70%.
Alt+0Set the split to 100%, or to 0% when it is above 90%.
Alt+[ and Alt+]Move the split by 1%, with Shift by 10%.
Alt+'Mirror the split, 100 − position.
Ctrl+' / ⌘+'Focus the split divider. Press it again to return to the input.
Ctrl+Alt+' / ⌘+⌥+'Lock or unlock the split.
Ctrl+I / ⌘+IFocus the input, outside the editor. Inside it, Ctrl+I starts a chord.
Ctrl+O / ⌘+OFocus the output and restore its focused element.
Ctrl+; / ⌘+;Focus the console divider, while the console is open.
Ctrl+F10, Ctrl+F11, Ctrl+F12Toggle fullscreen for the input, the playground and the output. On macOS use ⌘ in the editor and ⌃ elsewhere.
F12 or Alt+; / ⌥+;Toggle the console. Outside the editor F12 works only while nothing is fullscreen.
F9Toggle the network panel.

Note: On macOS the editor has actions for ⌥+0 to ⌥+9, ⌥+[, ⌥+], ⌥+. and ⌥+;, which step the split by 1% only, because Option and a key types a character there. ⌃+O focuses the output. ⌥+; toggles the console. See macOS actions.

Output

KeysDoes
Ctrl+Alt+= / ⌘+⌥+=Ask for the output zoom, in the editor. Elsewhere it opens the delta-expression prompt.
Ctrl+Alt+- and Ctrl+Alt++Zoom the output out and in by 0.1. On macOS use ⌃+⌥. Alt+-, Alt+Numpad − and Alt+Numpad + work too.
Ctrl+Alt+C / ⌘+⌥+CCycle the output color scheme. Outside the editor Alt+C and Alt+Shift+C do it too, and on macOS ⌥+C and ⌃+⌥+C.
Ctrl+Alt+Home, Ctrl+Alt+End, Ctrl+Alt+PageUp, Ctrl+Alt+PageDown, Ctrl+Alt+←, Ctrl+Alt+→, Ctrl+Alt+[, Ctrl+Alt+]Scroll every output from the editor. On macOS use ⌃+⌥. Pressed in the output, the same keys move the cursor of the input.
Alt+Shift+B / ⌥+⇧+BOpen the output in a popup.
Ctrl+Alt+B / ⌘+⌥+BOpen the output in a tab.
Alt+Q / ⌥+Q ExperimentalStart a Remote Output. Alt+Y / ⌥+Y lists the sessions.
Ctrl+Alt+F / ⌘+⌥+F and Ctrl+Alt+D / ⌘+⌥+D ExperimentalFreeze all playground windows, or this one.
Ctrl+Alt+Shift+C / ⌘+⌥+⇧+CCapture the output.

Agent folder and pins

These keys exist in Chrome and Edge on a computer, in a top-level playground. See Agent 📂 Share™.

KeysDoes
Alt+A / ⌥+AShare the playground, while not sharing.
Ctrl+Alt+A / ⌘+⌥+AShare and start output capture, while not sharing.
Ctrl+P / ⌘+PStart pinning, or stop it.
Ctrl+Alt+P / ⌘+⌥+PPin with output capture, while no capture is active.
Ctrl+Alt+Shift+P / ⌘+⌥+⇧+PPause or resume picking while the pins interface is open.
Alt+B / ⌥+BSave 📄.html, in the editor, while sharing.
Alt+L / ⌥+LLoad 📄.html, in the editor, while sharing.
Alt+Shift+I / ⌥+⇧+ISave 📸.png, in the editor, while sharing and capturing.

Editing the input

See Editing superpowers.

KeysDoes
↑ and ↓With a number selected, add or subtract 1. With Shift 10, with Ctrl / ⌘ 100, with Alt / ⌥ 0.1 and with Alt+Shift / ⌥+⇧ 0.01. With a boolean selected, flip it.
Alt+= / ⌥+=Edit the delta expression, with a selection.
Alt+S R, Alt+S U, Alt+S V, Alt+S I, Alt+S L, Alt+S F, Alt+S X, Alt+S H, Alt+S P, Alt+S D, Alt+S N, Alt+S CSelection chords, with a selection. On macOS use ⌥. See the selection commands.
Alt+M →, Alt+M ←, Alt+M ↑, Alt+M ↓, Alt+M S, Alt+M N, Alt+M RRotate, shuffle, sort and reverse the selected texts.
Alt+H L, Alt+H S, Alt+H HExtend to whole lines, show element statistics, get the HTML of a selection.
Ctrl+M / ⌘+MTurn Selection Move on or off. With it on, Alt+↑, Alt+↓, Alt+← and Alt+→ move the selections.
Alt+E `, Alt+E S, Alt+E EEvaluate expressions on the selections. On macOS the keys are ⌘+E `, ⌘+E S and ⌃+⌘+E E, and the first two open the first route instead, because ⌘+E opens it.
Alt+Shift+U E and Alt+Shift+U D; the same with B, H, J, L and PEncode or decode the selections: URI component, Base64, Hex or HTML entities, JSON, URL and Punycode. On macOS use ⌥+⇧.
Ctrl+Shift+I, Ctrl+Shift+O, Ctrl+Shift+USelect the enclosing element's inner HTML, its outer HTML, or its tags. On macOS use ⌘+⇧.
Alt+S, Alt+X, Alt+M, Alt+GInsert a style, a script, a module script or a simple worker.
Ctrl+L / ⌘+L, Ctrl+U / ⌘+U, Ctrl+F2 / ⌘+F2Expand the line selection, undo the last cursor move, select all highlights.
Ctrl+K C / ⌘+K C, Ctrl+I O / ⌘+I O, Ctrl+I M / ⌘+I MCompare the input, or the selection, with the clipboard.
Ctrl+I F / ⌘+I F and Ctrl+I E / ⌘+I EFetch the content of i: elements, or empty them.
Ctrl+Z / ⌘+Z, Ctrl+Y / ⌘+YUndo and redo. Smart Undo continues into the deployment history. Ctrl+Shift+Z redoes too.
Ctrl+F / ⌘+F and Ctrl+HFind and replace.
Alt+Z / ⌥+ZToggle word wrap.
Ctrl+Shift+C / ⌘+⇧+C and Ctrl+Shift+W / ⌘+⇧+WClear the worker import cache, and clear the service worker.
Ctrl / ⌘ and clickSelect the inner HTML of the clicked element in the input.

On the focused split divider

While the divider has focus, its keys need no modifier. Press Ctrl+' / ⌘+' to focus it.

KeysDoes
PSwap input and output.
I, O, 'Focus the input, focus the output, or hide the popover and return to the input.
/Toggle the layout. Shift+/ shows the About dialog.
-, =, Shift+=Zoom out, ask for the zoom, zoom in.
CCycle the output color scheme.
[ and ]Move the split by 1%, with Shift by 10%.
1 to 9, 0Set the split as Alt+1 to Alt+9 and Alt+0 do. Numpad digits are refused.

Dialogs, drawers and toasts

KeysDoes
Tab, Shift+Tab, EnterIn the Code dialog, move between fields; Enter focuses the Set or Deploy button. Esc restores the previous values.
b, /, rIn the Code: Size dialog, outside text fields: switch between bytes and human units, focus the filter, measure again.
EscClose the Recent Deployments drawer. Its other keys go to the playground, so the shortcuts keep working.
EscCancel a Remote Output.
EnterConfirm the capture chooser.

Gestures in the output

While Locate is on, hovering an element in the output previews its source in the input, a click selects it in the input, and Shift with the mouse wheel walks from the element to its parents. See Locating source. The keys and gestures of pins are in Pins.

Notes

Where the keys work

A key goes through the places it can be pressed in order, and the first one that handles it stops it.

Where you press itWhat happens
In the inputThe editor handles its own keys first. Keys it does not handle go on to the playground. The editor takes F5, F6, F7, F11, Esc and Ctrl+R / ⌘+R, Ctrl+O / ⌘+O, Ctrl+P / ⌘+P, Ctrl+N / ⌘+N and Ctrl+W / ⌘+W from the browser, so F5 never reloads the page there. A browser may still keep some of these.
Elsewhere in the playgroundThe toolbar, the menus, dialogs and text fields all reach the global shortcuts, so a key such as Ctrl+S / ⌘+S works from a text field of a dialog too.
In the output (frame, popup or tab)F4 to F8 and F12 are forwarded without modifiers. Any Ctrl, Alt or ⌘ combination is forwarded, except those with A, C, X, V, Z, Y, an arrow key or Tab. Ctrl+Alt with an arrow key is forwarded. F1, F9, F10, F11 and unmodified keys stay in the output. Because of this, characters typed with ⌥ on macOS or AltGr on Windows cannot be typed into form fields of the output, and Ctrl+F does not search the page there.
In the consoleThe console forwards F4, F6, F9, F12, any Ctrl combination except Ctrl+A, Ctrl+C and Ctrl+V, and any Alt combination. It drops Shift and ⌘, so Alt+Shift+/ toggles the layout there instead of opening About, and ⌘ shortcuts do not work on macOS. F5 does nothing in the console.
In a Remote Output window ExperimentalKeys are not forwarded.

Keys that depend on focus or state

These keys do different things depending on where the focus is, or on what is running.

KeysWhat they do
Ctrl+Alt+= / ⌘+⌥+=In the editor, asks for the output zoom. Elsewhere, with a selection, it focuses the input and opens the delta-expression prompt.
⌃+⌥+I on macOSIn the editor, toggles live input → output. Outside the editor use ⌥+I.
Alt+Shift+I / ⌥+⇧+IIn the editor, while sharing and capturing, saves 📸.png. Otherwise it toggles live input → output.
Ctrl+Alt+Shift+P / ⌘+⌥+⇧+PPauses or resumes pin picking while the pins interface is open. Without it, it swaps the panels.
Alt+B / ⌥+BIn the editor, while sharing, saves 📄.html. Elsewhere it does nothing. The Popup item of the Open menu shows Alt+B, but opening a popup output is Alt+Shift+B / ⌥+⇧+B.
Alt+A / ⌥+A, Ctrl+Alt+A / ⌘+⌥+AShare while not sharing. They do nothing while the output has focus, because keys with A are not forwarded from the output.
Ctrl+Alt+;Toggles the console, like Alt+;. It does not lock the console divider.
Alt+R / ⌥+RSets the routes. On macOS it works in the editor only, because ⌘+R reloads. On Windows and Linux the Route item of the Edge menu and the tooltip of the title show Alt+T, which sets the title.
Alt+S, Alt+MInsert a snippet when there is no selection, or too few selections, and start a chord otherwise.
↑ and ↓ with a number selectedNudge the number instead of moving the cursor, extending the selection, scrolling, or moving and copying lines. Collapse the selection first with Esc or a click. With a boolean selected only the plain arrows are taken.
Ctrl+L / ⌘+LExpands the line selection. The chord Ctrl+L C / ⌘+L C of Count Unique Lines may not be reachable; use the palette.
Shift+DeleteDeletes the deployment from any focused element, including text fields, and in the editor it replaces the cut of Shift+Delete. Ctrl+Shift+Delete skips the confirmation. It needs sign-in and routes.

Keys that are taken

When two commands share a key, the one registered last whose condition holds wins. The ones that lose are still in the palette and the context menu.

KeysTaken by
Alt+Shift+B with a selectionNew Output Window (popup) wins over the Base64 chords, so Encode and Decode Base64 have no key.
Alt+Shift+H E and Alt+Shift+H DEncode and Decode HTML Entities win over Hex, so Encode and Decode Hex have no key.
⌘+E ` and ⌘+E S on macOSEdge: Open… wins, so the two expression chords open the first route. ⌃+⌘+E E is not affected.
Ctrl+L C / ⌘+L CWhichever of the Ctrl+L bindings is registered last owns Ctrl+L, so one of the two may be unreachable.

Keys that replace the editor's defaults

In the input, these keys do what the playground says and not what the editor would otherwise do: F8 (next problem), F12 (go to definition), Ctrl+I / ⌘+I (trigger suggest, now the prefix of chords), Ctrl+M (toggle whether the Tab key moves focus), Shift+Delete (cut), Alt+R and Alt+P (find widget toggles), Alt+L while sharing (find in selection), Alt+↑ and Alt+↓ (move line, while a number is selected), Ctrl+Shift+I / ⌘+⇧+I (format document on Linux) and Ctrl+Shift+O / ⌘+⇧+O (go to symbol).

Keys the browser or the system may take first

The playground does not use the Keyboard Lock API, so the browser keeps some keys. Chromium reserves Ctrl+N, Ctrl+T, Ctrl+W, Ctrl+Shift+N, Ctrl+Shift+T, Ctrl+Shift+W and Ctrl+Tab in normal tabs, so Clear: Service Worker, Ctrl+Shift+W, can close the window: use the palette. Alt+F4 closes the window on Windows, and ⌘+M may minimize it on macOS instead of toggling Selection Move. Outside the editor, Ctrl+I and Ctrl+O may still trigger the browser's own action, and Ctrl+Shift+I may not stop the browser's developer tools.

Keyboard layouts, Option and AltGr

On a Mac, ⌥ with a key types a character in the editor, and a binding that uses it takes the key. Always taken are ⌥+F, ⌥+J, ⌥+K, ⌥+M, ⌥+O, ⌥+P, ⌥+Q, ⌥+R, ⌥+S, ⌥+T, ⌥+V, ⌥+X, ⌥+Y, ⌥+Z, ⌥+0 to ⌥+9, ⌥+., ⌥+[, ⌥+], ⌥+; and ⌥+/. Also taken are ⌥+G with a single cursor, ⌥+H as the start of chords, ⌥+A while not sharing, and ⌥+B and ⌥+L while sharing. On layouts where such a character is typed with ⌥, for example the braces and the bar of a German keyboard, this blocks them. ⌥+U, ⌥+I, ⌥+E and ⌥+C stay free.

On Windows, AltGr reports Ctrl+Alt, so on layouts where it types a character, that character also reaches the global handler while it is still typed. On a German layout, @ (AltGr+Q) starts a Remote Output, € (AltGr+E) opens the route, and the braces and brackets (AltGr+7, AltGr+8, AltGr+9 and AltGr+0) move the split.

Note: These notes come from reading the code and were not tested on every layout.

Where the hints show

Key hints in menus, tooltips and toasts use Alt, Ctrl, Shift and ⊞ joined with plus signs on Windows and Linux, and ⌥ ⌃ ⇧ ⌘ with no separator on macOS, iPhone and iPad. They are hidden when the primary pointer is not fine at load, and on touch-only devices. While you hold a modifier, every hint that contains it is highlighted.

See also