Skip to content

Keyboard and commands

Every user action is a ResearchCommand (web/r3/commands.ts). The Commands palette (Ctrl K, or Cmd K on macOS), toolbars, context menus and hotkeys all run the same commands. A blocked command is shown but does not run; the palette displays the reason.

Handled by the shell (web/r3/shell.tsx):

KeyActionCommand id
Ctrl K / Cmd KOpen or close the Commands palette (works while typing)none (palette toggle)
1Explore scenescene.explore
2Analyze scenescene.analyze
3Compare scenescene.compare
4Publish scenescene.publish
5Present scenescene.present
DDraw ROI on the Moon (opens Moon)roi.draw
SSave run as a local capsulerun.save

The single-key hotkeys are ignored when:

  • Ctrl, Cmd or Alt is held;
  • the focus is in an input, textarea, select or contenteditable element;
  • the event originates inside an iframe (for example, the embedded Lab).

Keys 6 to 9 have no binding.

These apply while the Moon is in drawing mode (moon-instrument.tsx):

Key or gestureAction
ClickAdd a vertex
Double-click, or EnterClose the ring and evaluate it
EscapeCancel the draft
BackspaceRemove the last vertex

A ring with fewer than three vertices is not closed.

KeyAction
ArrowDown / ArrowUpMove the highlighted result
EnterRun the highlighted command, unless it is blocked

The palette filters on the command title, group and keywords, case-insensitively.

Fixed commands in the palette:

IdTitleGroupShortcutKeywordsBlocked when
roi.drawDraw ROI on the MoonROIDpolygon region selectnever
roi.clearClear ROIROInonenoneno ROI: “Draw or select an ROI first”
roi.reevaluateRe-evaluate ROI in PythonROInonenoneno ROI: “Draw or select an ROI first”
open.moonOpen MoonOpennoneglobe terrain map roinever
open.rowsOpen ROI rowsOpennonetable results tau inclusionnever
open.observationsOpen Cells (Perspective)Opennoneobservations samples pivot perspectivenever
open.labOpen Lab (marimo)Opennonenotebook python edit marimonever
open.pythonOpen Show PythonOpennonecode preset reproducenever
open.figureOpen FigureOpennoneexport svg png pdf plot chartnever
open.evidenceOpen EvidenceOpennoneprovenance standing claimsnever
open.methodOpen MethodOpennoneslope quality spec definitionnever
open.sourceOpen SourceOpennonemanifest sha256 inputs casnever
open.runsOpen Saved runsOpennonecapsule historynever
scene.explore … scene.presentExplore scene … Present sceneScene1 … 5layout workspacenever
run.saveSave run (local capsule)RunSexport json capsuleno evaluated ROI: “Needs an evaluated ROI”

Parameterised commands, run from the Moon and Cells interactions rather than the palette list:

IdTitleGroupBlocked when
cell.resolveResolve Moon cell in PythonROIno ROI: “Draw or select an ROI first”; while drawing: “Finish drawing before picking a cell”
cell.linkLink sampled cellROIno evaluated ROI: “Needs an evaluated ROI”

Opening an instrument that is already open focuses its tab instead of adding a second panel.

The scene commands are described with their panels in Scenes and instruments.