Reference

Use the Rayslides controls.

Use this page during editing or a live presentation.

Command-line options

rayslides [options] [deck.sld]
OptionAction
--studioOpen the deck in Studio.
--no-crowdDisable the Crowdplay server.
--crowd-host=HOSTBind Crowdplay to the given host.
--crowd-port=PORTChange the Crowdplay port. The default is 7331.
--presenter-host=HOSTAdvertise the given Presenter address.
--presenter-port=PORTChange the Presenter port. The default is 7332.
--showtime-report=JSONPreflight the exact deck, write stable JSON, and exit nonzero on blockers.
--portable-show=DIRCreate an ordinary deck-and-assets folder, independently re-open it, preflight it, and write its report.
-h, --helpShow the complete option list.
-v, --versionShow the version.

A deck path can appear before or after the options. Use -- before a path that starts with a hyphen.

Presentation controls

ControlAction
Right, Page Down, Space, or clickShow the next step or slide.
Left, Page Up, or BackspaceHide the current step or show the previous slide.
1 or GShow the first slide.
0 or Shift + GShow the last slide.
FTurn fullscreen on or off.
DIdentify and explicitly choose the presentation display.
LTurn the laser pointer on or off.
Shift + LSelect the next pointer size.
CClear the pointer drawing.
MPlay or pause the videos on the current slide.
Shift + MStop the videos on the current slide and rewind them.
BTurn Beast Mode on or off. Beast Mode removes the 60 FPS limit.
EEnter or leave Studio.
Cmd/Ctrl-OBrowse for and open another .sld deck.
F3Show or hide the diagnostics display.
Q or EscQuit.

Save images and PDFs

ControlOutput
SSave the current slide as a PNG file.
Shift + SSave screenshots and export the deck as a PDF.

The PDF contains one page for each logical slide. Rayslides uses the final reveal and morph state.

Showtime preflight

Open Studio's Commands menu and choose Showtime preflight. Showtime walks every base scene, reveal endpoint, cumulative morph scene, reusable definition, and deterministic poster-frame export graph without navigating, seeking, playing media, editing source, or changing history and selection.

Blockers include malformed source, unavailable presentation pixels, missing glyphs, and unavailable required services. Warnings identify reviewable conditions such as text overflow, off-canvas staging, non-portable paths, display mismatch, or an unmeasured Presenter rehearsal. Findings link to a slide/object or editable Library definition when possible.

ControlAction
Up/Down or wheelReview findings.
EnterOpen the selected slide, object, definition, or source location.
RRerun against the current exact document and venue state.
PCreate a portable show folder.
EscClose Showtime.

Create portable show copies literal image, video, and custom-font dependencies beneath assets/, handles equal basenames deterministically, rewrites only the copied references in a readable .sld, then re-opens and preflights the copy. It refuses an existing destination and never edits the original. Presenter latency evidence contains only bounded counts, median/p95 values, and failures—never notes, private URLs, capabilities, sessions, or client identity.

Studio tools

ToolKeyAction
SelectVSelect, move, and resize an object.
TextTAdd a text box.
BulletsBAdd one bullet for each source line.
ImageIBrowse for and place an image.
VideoMBrowse for and place a video.
RectangleRAdd a colored shape.
LineLAdd a plain line; A adds one with an end arrow.
LibraryUPlace a reusable item.

Image and Video prompts include a Browse… file picker on every platform: the same Rayslides-drawn chooser used by Open deck… (Cmd/Ctrl-O), filtered to images or videos. Manual path entry remains available everywhere. Dropping a supported image or video over the Studio canvas creates that media item at the drop position. Saved decks use a relative path when possible.

SVG files use the Image path, including picker, replacement, fitting, reusable ownership, diagnostics, and export. The embedded vector subset does not render SVG <text>; convert type to paths first.

When an image or video is selected, Properties shows its effective IMAGE or VIDEO kind, its filename/path, and a separate ... replacement button. Click ..., or press Enter while Properties is visible, to choose a new source through the same picker and path policy without changing the object's geometry, ID, ordering, or other properties. On reusable instances, an amber R beside a local source override restores the inherited image or video.

Both media kinds share Stretch, Fit, and Fill controls. Fit preserves the complete picture inside the box; Fill preserves aspect ratio while cropping to cover it. FX and FY choose the normalized focal position from 0 to 1, and the panel shows natural pixels beside the authored box size.

Video Properties also has a Playback page for Auto, Loop, Mute, poster time and scrubbing, volume, and opacity. Poster changes select the still shown before playback; playback itself still begins at the start. Authored volume and mute are restored on slide entry, while presenter adjustments remain temporary for that visit. Amber R markers reset local source, Fit, focus, poster, volume, and playback-toggle overrides independently.

A live camera is a normal transformed video object: @box cam=0 video_size=1920x1080 poster_image=assets/camera-off.png x=520 y=180 w=880 h=560 fit=cover rotation=-12. It supports Fit/Fill, focal position, opacity, rotation, and morph geometry. The poster is used while stopped and in passive/export views. On macOS, run the bundled Rayslides.app so the system can request camera permission; after allowing the first prompt, press Play again if that initial start timed out. On Linux, identify the built-in or USB V4L2 device with v4l2-ctl --list-devices and prefer its stable /dev/v4l/by-id/... path; add cam_format=mjpeg to reach a mode the camera offers in MJPEG alone, commonly every mode above 640×480. See the live camera guide and tested rotated-feed screenshot.

If media cannot load, Studio keeps a selectable fallback box while the filename and ... replacement action remain available. It distinguishes missing or unreadable files, unsupported image data, missing ffmpeg/ffprobe, probe or codec failures, and poster decode failures. Out-of-range or recoverable poster choices receive amber warnings without losing their pixels, and silent videos are identified without being treated as broken. These diagnostics are Studio chrome and do not enter presentation or export pixels.

Properties also exposes text alignment, rectangle radius, line stroke/direction/arrow heads, and exact clockwise rotation=. Drag the connected handle above a selected text, shape, image, video, or line object to rotate it; hold Shift for 15° steps. Painted hit testing, bounds, smart-guide targets, reusable/local ownership, morphing, Showtime, screenshots, and PDF export use the same rotation.

Studio editing controls

ControlAction
Cmd/Ctrl + KOpen the command palette.
Cmd/Ctrl + FFind a slide, library item, or object.
Cmd/Ctrl + OOpen an existing deck through the built-in file chooser; also available as Open existing deck… on the starter chooser.
Cmd/Ctrl + SName an untitled deck or save the named deck.
Shift + Cmd/Ctrl + SSave a unique *.edited.sld copy.
Cmd/Ctrl + ZUndo the last source edit. After choosing a starter, return to the chooser.
Shift + Cmd/Ctrl + ZRedo the last source edit.
Cmd/Ctrl + C / VCopy or paste supported objects.
Cmd/Ctrl + DDuplicate the selection or the current slide.
BackspaceDelete the selected objects.
Cmd/Ctrl + LLock or unlock the selected objects.
Cmd/Ctrl + ASelect every editable object in the scene.
Shift + clickAdd or remove an object from the selection.
Drag empty canvasSelect each object that overlaps the marquee.
Arrow keysMove the selection by one logical pixel. Hold Shift for ten.
Cmd/Ctrl + [ / ]Move the selection one layer down or up.
Shift + Cmd/Ctrl + [ / ]Move the selection to the back or front.
EnterEdit text or use the selected library item.
PPromote the selected object for reuse.
F2Rename the selected library definition and its uses.
Cmd/Ctrl + NAdd a slide after the current slide.
Page Up / Page DownSelect the previous or next slide.
[ / ]Select the previous or next morph scene.
TabTurn Focus Canvas on or off.
GTurn the grid and grid snapping on or off.

Move around the canvas

ControlAction
Cmd/Ctrl + mouse wheelZoom around the pointer.
Cmd/Ctrl + + / -Zoom around the canvas center.
Cmd/Ctrl + 0Fit and center the complete slide.
Mouse wheel or trackpadPan the canvas.
Space + drag or middle-button dragPan the canvas directly.
Hold Cmd/Ctrl while draggingBypass the guides and grid snapping.
Hold Shift while resizingPreserve the displayed aspect ratio.
Drag the handle above an objectRotate clockwise around its effective center; hold Shift for 15° steps.
Hold Alt while editing a template itemEdit the shared definition.

Phone and audience controls

ControlAction
PShow or hide the private Presenter pairing panel.
Shift + PUnpair the phone and stop the Presenter server.
N while pairingSelect another active network address and rotate the private capability.
L while pairingCopy the complete private link for an intentional laptop companion.
DList, identify, and choose the projector display without guessing.
OOpen or lock the active Crowdplay poll.
VShow or hide the poll results.
RReset the active poll votes.

Limits and defaults

AreaValue
Slide coordinate system1920 × 1080
Default revealfade, by=item, 0.3 seconds
Default morphsmooth, 0.6 seconds
Default transition0.4 seconds
Morph easinglinear, smooth, or spring
Reveal and transition effectsappear, fade, and four slide directions
Poll choicesUp to 8 choices
Polls in one deckUp to 32 polls
Active participantsUp to 512 participants
Poll ID48 bytes; use letters, digits, -, or _
Poll promptUp to 192 bytes
Poll choice labelUp to 64 bytes
Crowdplay panelx=100 y=80 w=1720 h=920 by default

Use one Crowdplay item on each slide. Give every poll a unique ID.

Diagnostics

Press F3 or use --diagnostics. The display shows frame, rebuild, cache, deck, and window data.

The CLI also provides deterministic capture options. Run rayslides --help for the current list.