Skip to main content
Steps are the building blocks of a Tuireel recording. Each step is an object with a type field and type-specific properties. Steps are executed sequentially in the order they appear in the steps array.

launch

Starts a terminal program. Typically the first step in any recording.
"launch"
required
Must be "launch".
string
required
The shell command to execute. Must be non-empty.

type

Types text into the terminal, simulating keyboard input.
"type"
required
Must be "type".
string
required
The text to type.
number
Typing speed multiplier. Must be a positive number. Higher values mean faster typing.

press

Sends a single key press to the terminal.
"press"
required
Must be "press".
string
required
The key to press. Must be non-empty. Common values: Enter, Tab, Escape, Backspace, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Ctrl+C, Ctrl+D.

wait

Waits for specific text to appear in the terminal output before continuing.
"wait"
required
Must be "wait".
string | { regex: string, flags?: string }
required
The text pattern to wait for. Pass a plain string for exact matching, or an object with regex and optional flags for regular expression matching.
number
Maximum time to wait in milliseconds. Must be non-negative. If not specified, falls back to the config-level defaultWaitTimeout, or waits indefinitely.

pause

Pauses execution for a fixed duration.
"pause"
required
Must be "pause".
number
required
Duration to pause in milliseconds. Must be non-negative.

scroll

Scrolls the terminal view.
"scroll"
required
Must be "scroll".
"up" | "down"
required
Scroll direction.
integer
default:3
Number of lines to scroll. Must be a positive integer.

click

Clicks on text matching a pattern in the terminal.
"click"
required
Must be "click".
string
required
Text pattern to click on. Must be non-empty.

screenshot

Takes a screenshot at the current point in the recording.
"screenshot"
required
Must be "screenshot".
string
required
Output file path for the screenshot. Must be non-empty.

resize

Resizes the terminal dimensions mid-recording.
"resize"
required
Must be "resize".
integer
required
New number of columns. Must be a positive integer.
integer
required
New number of rows. Must be a positive integer.

set-env

Sets an environment variable in the terminal session.
"set-env"
required
Must be "set-env".
string
required
Environment variable name. Must start with a letter or underscore and contain only letters, numbers, or underscores.
string
required
Value to assign to the environment variable.

Include Steps

You can include steps from external files using the $include directive:
The $include value is a path to another JSONC file containing step definitions.

Complete Example

A realistic multi-step recording script: