Skip to main content

quikgif record

Record a window or screen region as a GIF.

quikgif record [options]

Target Selection

Specify what to record. If no target is given, an interactive window picker is shown.

FlagTypeDescription
--windowUInt32Window ID to capture (use list-windows to find IDs)
--appStringFilter/auto-select by app name. Auto-selects if only one window matches
--regionStringScreen region: x,y,w,h (origin+size) or x1,y1:x2,y2 (corners) in points
--cropStringWindow sub-region: x,y,w,h or x1,y1:x2,y2 relative to content area. Requires --window or --app
info

--region and --crop are mutually exclusive. --region captures a screen area directly and cannot be combined with --window or --app. Use --crop to capture a sub-region of a specific window.

Recording Parameters

FlagTypeDefaultDescription
--durationDouble--Auto-stop after N seconds. Without this, stop with Ctrl+C
--fpsInt30Frame rate
--show-cursor / --no-show-cursorBooltrueShow cursor in capture
--include-title-bar / --no-include-title-barBoolfalseInclude window title bar

Output

FlagTypeDefaultDescription
-o, --outputStringrecording.gifOutput file path
--max-widthInt800Max output width in pixels
--full-resolutionBoolfalseUse native resolution (ignores --max-width)
--loop-countInt0GIF loop count (0 = infinite)
--palette-strategyStringautoColor palette strategy: auto, global, or per-frame

Visual Effects

These features require Accessibility permission for event capture. Without it, the flags are accepted but have no effect.

FlagTypeDefaultDescription
--cursor-smoothing / --no-cursor-smoothingBoolfalseSmooth cursor movement between frames
--click-indicators / --no-click-indicatorsBoolfalseShow visual indicators on mouse clicks
--type-smoothing / --no-type-smoothingBoolfalseNormalize typing speed for consistent appearance
--keystroke-badges / --no-keystroke-badgesBoolfalseShow floating badges for keyboard shortcuts
--zoom-cursor / --no-zoom-cursorBoolfalseZoom to cursor region for detail focus
--zoom-sizeInt600Zoom crop width in pixels (height derived from aspect ratio)
--zoom-paddingInt80Zoom dead-zone padding in pixels

Timing

FlagTypeDefaultDescription
--idle-strategyString--Idle cushioning strategy: cut, ramp, or fade. Disabled by default
--idle-thresholdDouble2.0Seconds of inactivity before cushioning kicks in

Other

FlagDescription
-q, --quietSuppress progress output

Examples

Record Terminal for 10 seconds with click indicators:

quikgif record --app Terminal --duration 10 --click-indicators -o terminal.gif

Record a screen region at 60fps:

quikgif record --region 0,0,1920,1080 --fps 60 --full-resolution -o fullscreen.gif

Record a window sub-region with cursor zoom:

quikgif record --app "VS Code" --crop 0,0,800,400 --zoom-cursor -o editor.gif

Record with polished post-processing:

quikgif record --app Terminal --duration 8 \
--cursor-smoothing --click-indicators --type-smoothing \
--keystroke-badges --idle-strategy fade -o polished.gif