Skip to main content

Settings

Configure script behavior with the set command:

set fps 30
set output "demo.gif"
set max-width 800

All Settings

SettingTypeDefaultDescription
fpsint30Frame rate (12, 24, 30, 60)
outputstringoutput.gifOutput file path
max-widthint800Maximum GIF width in pixels
loop-countint0Loop count (0=infinite, 1=once, 3=three)
transitionfloat0.3Crossfade duration between segments (seconds)
show-cursorbooltrueShow system cursor in recording
cursor-smoothingboolfalseSmooth cursor movement paths
click-indicatorsboolfalseShow click overlay effects
type-smoothingboolfalseNormalize keystroke timing
keystroke-badgesboolfalseShow floating key combo badges
include-title-barboolfalseKeep window title bar in recording
idle-strategystringdisabledIdle handling strategy: fade, cut, ramp
idle-thresholdfloat2.0Seconds of inactivity before idle handling
palette-strategystringautoColor palette strategy: auto, global, perFrame
pacestringnoneTiming preset: tutorial, demo, cinematic
typing-delayfloat0.05Per-character typing delay (seconds)
auto-paceboolfalseAuto-insert pauses after commands during recording
auto-pace-delayfloat0.8Base auto-pause duration (seconds)
cleanupbooltrueClose script-opened windows after render
strictbooltrueFail on non-zero shell command exit codes
run-timeoutfloat30Shell command timeout (seconds)
intro-bgstring#1a1a2eIntro/outro card background color
intro-fgstring#ffffffIntro/outro card title text color
intro-subtitle-fgstring#aaaaaaIntro card subtitle text color
intro-font-sizeint48Intro card title font size

Setting Details

Frame Rate (fps)

Controls how many frames per second are captured and encoded. Higher values produce smoother GIFs but larger file sizes.

set fps 24    # Smooth enough for most demos
set fps 60 # Very smooth, large files
info

The fps value must be one of: 12, 24, 30, or 60.

Idle Handling (idle-strategy)

Controls what happens during periods of inactivity in the recording:

  • fade -- Gradually fades inactive frames to reduce visual noise
  • cut -- Removes idle frames entirely, jumping ahead in time
  • ramp -- Speeds up playback during idle periods, then returns to normal speed
set idle-strategy cut
set idle-threshold 1.5 # Trigger after 1.5s of inactivity
tip

Idle detection is opt-in. Leave idle-strategy unset to keep all frames at their original timing.

Palette Strategy (palette-strategy)

Controls how the GIF color palette is optimized:

  • auto -- Detects scene changes and optimizes per-segment. Uses per-frame palettes for multi-scene GIFs, global palette for single-scene.
  • global -- Single palette for the entire GIF. Smallest file size, may lose color accuracy in multi-scene recordings.
  • perFrame -- Each frame gets its own palette. Best color accuracy, largest file size.
set palette-strategy auto

Transitions (transition)

Controls the crossfade duration between recording segments in multi-segment scripts:

set transition 0.5    # Half-second crossfade
set transition 0 # No crossfade, hard cut

Pace Presets

The set pace command applies a bundle of timing-related settings optimized for common use cases:

set pace demo

tutorial

Slow, deliberate pacing for educational content.

SettingValue
fps24
typing-delay0.08
auto-pacetrue
auto-pace-delay1.0
idle-threshold3.0
transition0.5

demo

Moderate pacing for product demos.

SettingValue
fps30
typing-delay0.04
auto-pacetrue
auto-pace-delay0.6
idle-threshold1.5
transition0.3

cinematic

Polished pacing for showcase-quality GIFs.

SettingValue
fps30
typing-delay0.06
auto-pacetrue
auto-pace-delay0.8
idle-threshold2.0
transition0.8
info

set pace is handled specially -- it applies all settings from the preset at once. Individual settings can still be overridden after the pace preset:

set pace demo
set fps 24 # Override just fps from the demo preset
set keystroke-badges true # Add a setting not included in the preset

Auto-Pacing

When auto-pace is enabled, the engine automatically inserts pauses after run, type, key, and click commands during active recording. This gives viewers time to read each action.

set auto-pace true
set auto-pace-delay 0.8 # 0.8s pause after each command

Auto-pacing only fires when a recorder is actively capturing. Commands executed before record or after stop are not auto-paced.


Title Card Styling

Customize the appearance of intro and outro title cards:

set intro-bg "#0d1117"          # Dark background
set intro-fg "#58a6ff" # Blue title text
set intro-subtitle-fg "#8b949e" # Gray subtitle
set intro-font-size 56 # Larger title