Settings
Configure script behavior with the set command:
set fps 30
set output "demo.gif"
set max-width 800
All Settings
| Setting | Type | Default | Description |
|---|---|---|---|
fps | int | 30 | Frame rate (12, 24, 30, 60) |
output | string | output.gif | Output file path |
max-width | int | 800 | Maximum GIF width in pixels |
loop-count | int | 0 | Loop count (0=infinite, 1=once, 3=three) |
transition | float | 0.3 | Crossfade duration between segments (seconds) |
show-cursor | bool | true | Show system cursor in recording |
cursor-smoothing | bool | false | Smooth cursor movement paths |
click-indicators | bool | false | Show click overlay effects |
type-smoothing | bool | false | Normalize keystroke timing |
keystroke-badges | bool | false | Show floating key combo badges |
include-title-bar | bool | false | Keep window title bar in recording |
idle-strategy | string | disabled | Idle handling strategy: fade, cut, ramp |
idle-threshold | float | 2.0 | Seconds of inactivity before idle handling |
palette-strategy | string | auto | Color palette strategy: auto, global, perFrame |
pace | string | none | Timing preset: tutorial, demo, cinematic |
typing-delay | float | 0.05 | Per-character typing delay (seconds) |
auto-pace | bool | false | Auto-insert pauses after commands during recording |
auto-pace-delay | float | 0.8 | Base auto-pause duration (seconds) |
cleanup | bool | true | Close script-opened windows after render |
strict | bool | true | Fail on non-zero shell command exit codes |
run-timeout | float | 30 | Shell command timeout (seconds) |
intro-bg | string | #1a1a2e | Intro/outro card background color |
intro-fg | string | #ffffff | Intro/outro card title text color |
intro-subtitle-fg | string | #aaaaaa | Intro card subtitle text color |
intro-font-size | int | 48 | Intro 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
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 noisecut-- Removes idle frames entirely, jumping ahead in timeramp-- 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
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.
| Setting | Value |
|---|---|
fps | 24 |
typing-delay | 0.08 |
auto-pace | true |
auto-pace-delay | 1.0 |
idle-threshold | 3.0 |
transition | 0.5 |
demo
Moderate pacing for product demos.
| Setting | Value |
|---|---|
fps | 30 |
typing-delay | 0.04 |
auto-pace | true |
auto-pace-delay | 0.6 |
idle-threshold | 1.5 |
transition | 0.3 |
cinematic
Polished pacing for showcase-quality GIFs.
| Setting | Value |
|---|---|
fps | 30 |
typing-delay | 0.06 |
auto-pace | true |
auto-pace-delay | 0.8 |
idle-threshold | 2.0 |
transition | 0.8 |
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