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.
Global hotkeys
Section titled “Global hotkeys”Handled by the shell (web/r3/shell.tsx):
| Key | Action | Command id |
|---|---|---|
Ctrl K / Cmd K | Open or close the Commands palette (works while typing) | none (palette toggle) |
1 | Explore scene | scene.explore |
2 | Analyze scene | scene.analyze |
3 | Compare scene | scene.compare |
4 | Publish scene | scene.publish |
5 | Present scene | scene.present |
D | Draw ROI on the Moon (opens Moon) | roi.draw |
S | Save run as a local capsule | run.save |
The single-key hotkeys are ignored when:
Ctrl,CmdorAltis held;- the focus is in an
input,textarea,selector contenteditable element; - the event originates inside an
iframe(for example, the embedded Lab).
Keys 6 to 9 have no binding.
Moon drawing keys
Section titled “Moon drawing keys”These apply while the Moon is in drawing mode (moon-instrument.tsx):
| Key or gesture | Action |
|---|---|
| Click | Add a vertex |
Double-click, or Enter | Close the ring and evaluate it |
Escape | Cancel the draft |
Backspace | Remove the last vertex |
A ring with fewer than three vertices is not closed.
Palette navigation
Section titled “Palette navigation”| Key | Action |
|---|---|
ArrowDown / ArrowUp | Move the highlighted result |
Enter | Run the highlighted command, unless it is blocked |
The palette filters on the command title, group and keywords, case-insensitively.
Command table
Section titled “Command table”Fixed commands in the palette:
| Id | Title | Group | Shortcut | Keywords | Blocked when |
|---|---|---|---|---|---|
roi.draw | Draw ROI on the Moon | ROI | D | polygon region select | never |
roi.clear | Clear ROI | ROI | none | none | no ROI: “Draw or select an ROI first” |
roi.reevaluate | Re-evaluate ROI in Python | ROI | none | none | no ROI: “Draw or select an ROI first” |
open.moon | Open Moon | Open | none | globe terrain map roi | never |
open.rows | Open ROI rows | Open | none | table results tau inclusion | never |
open.observations | Open Cells (Perspective) | Open | none | observations samples pivot perspective | never |
open.lab | Open Lab (marimo) | Open | none | notebook python edit marimo | never |
open.python | Open Show Python | Open | none | code preset reproduce | never |
open.figure | Open Figure | Open | none | export svg png pdf plot chart | never |
open.evidence | Open Evidence | Open | none | provenance standing claims | never |
open.method | Open Method | Open | none | slope quality spec definition | never |
open.source | Open Source | Open | none | manifest sha256 inputs cas | never |
open.runs | Open Saved runs | Open | none | capsule history | never |
scene.explore … scene.present | Explore scene … Present scene | Scene | 1 … 5 | layout workspace | never |
run.save | Save run (local capsule) | Run | S | export json capsule | no evaluated ROI: “Needs an evaluated ROI” |
Parameterised commands, run from the Moon and Cells interactions rather than the palette list:
| Id | Title | Group | Blocked when |
|---|---|---|---|
cell.resolve | Resolve Moon cell in Python | ROI | no ROI: “Draw or select an ROI first”; while drawing: “Finish drawing before picking a cell” |
cell.link | Link sampled cell | ROI | no evaluated ROI: “Needs an evaluated ROI” |
Opening an instrument that is already open focuses its tab instead of adding a second panel.
Scene shortcuts and panels
Section titled “Scene shortcuts and panels”The scene commands are described with their panels in Scenes and instruments.