Skip to content

RenderOptions

RenderOptions = object

Defined in: types.ts:147

optional mouse?: object

Defined in: types.ts:206

optional image?: string

Path to a custom cursor image, relative to the config directory. When set, it replaces the built-in style cursor in both video and screenshot output. The image is uploaded alongside the recording like any other asset.

PNG is recommended (the video pipeline may lack an SVG decoder). The image’s top-left corner is the pointer hotspot, matching the built-in cursors, and it is scaled by size (aspect ratio preserved).

optional motionBlur?: number

Cursor motion blur, 0-1. Defaults to 0.5; 0 disables it. The value is the shutter open time as a fraction of one output frame interval, so a fast-moving cursor smears along its path. Slow or static frames cost nothing.

optional size?: number

0-1: 0=missing, 1=height of video

optional style?: "white" | "black"

Cursor colour. Defaults to 'white'. Ignored when image is set.


optional narration?: object

Defined in: types.ts:165

optional audio?: NarrationAudioCleanupOption

Cleanup for narration audio you recorded yourself (media-file cues): background noise reduction and loudness normalization. Off by default.

  • true enables the full chain with defaults
  • object form enables only the listed sub-features: { denoise: true | { strength: 0..1 }, normalize: true | { level: LUFS } }

Does not affect generated narration, background audio tracks, or captured screen audio.

optional corner?: "top-left" | "top-right" | "bottom-left" | "bottom-right"

optional dropShadow?: number

Narration shadow strength (0-1).

  • 0 disables shadow
  • 1 maps to maximum shadow

optional padding?: number

0-1 fraction of the output frame: 0=nothing, 1=length of shorter side of the frame.

optional roundness?: number

0-1 fraction: 0=square, 1=circle.

optional size?: number

0-1 fraction of the output frame: 1=mask size equals shorter side of output.

optional sizeZoomed?: number

Narration size when the recording is smaller than the full frame. When set, the narration bubble scales down and tightens into its corner with the recording size. Omit to keep a fixed size. 0-1: same units as size.

optional voice?: AnyTopLevelVoiceConfig

Global default narration voice, used as the config-level default in the voice cascade. The per-language and per-cue voice live in the localize spec (voice and per-cue { cue, voice }); this is only the fallback when neither is set.


optional output?: object

Defined in: types.ts:244

optional aspectRatio?: AspectRatio

Aspect ratio of the rendered video output.

Combined with quality, this determines the final pixel dimensions. See AspectRatio for the full dimension table. Screenshots use ScreenshotRenderOptions.aspectRatio instead (which also allows 'auto').

Defaults to '16:9' when not specified.

'16:9'

optional background?: { assetPath: string; fileHash?: string; } | { backgroundCss: string; }

optional quality?: Quality

Resolution quality of the rendered output video.

Combined with aspectRatio, this determines the final pixel dimensions. See Quality for available presets. Screenshots ignore this: their resolution comes from the captured clip (or the full output frame) scaled by the capture device pixel density.

Defaults to '1080p' when not specified.

'1080p'

optional recording?: object

Defined in: types.ts:148

optional clip?: ClipRegion

Crop of the recorded video, in CSS pixels of the recording viewport (top-left origin), following Playwright’s clip shape. The recording is always captured at the full configured resolution; the clip is applied at render time, so it can be changed and re-rendered without re-recording. Only the clipped region appears in the output, and the recording tile takes the clip’s aspect ratio.

optional dropShadow?: number

Shadow strength from 0 (none) to 1 (default shadow).

optional roundness?: number

0-1 fraction: 0=sharp corners, 1=shorter side is half circle.

optional size?: number

0-1 fraction of the output frame: 0 causes warning, 1=one side touches background edge.


optional screenshot?: ScreenshotRenderOptions

Defined in: types.ts:275

Screenshot-only render options (format, margin, aspectRatio).


optional zoom?: object

Defined in: types.ts:230

optional motionBlur?: number

Camera (pan/zoom) motion blur, 0-1. Defaults to 0.5; 0 disables it. Same shutter semantics as mouse.motionBlur, applied to the camera viewport so fast pans and zooms smear. Independent of the cursor blur.