﻿---
title: Commands
description: Every command a reel can hold.
url: https://docs-v3-preview.elastic.dev/reel/reference/commands
---

# Commands
## What it records


| Command                                                                                                                      |                                                                                                                                                                                                                             |
|------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Import <path>`                                                                                                              | A [preset](https://docs-v3-preview.elastic.dev/reel/outputs/presets) to read first. Only on the first lines, before `Launch`, `Open`, `Screen` or `Include`.                                                                |
| `Launch <bundle id or .app path>`                                                                                            | The app to record: a bundle id, or a path with a slash (`./Name.app`). reel waits for its first window.                                                                                                                     |
| `Open <url>`                                                                                                                 | A web page to record instead: `https://…`, `http://…`, `file://…` or an `.html` path, `#fragment` allowed. Later in the reel, goes to another page: a new fragment of the same page only scrolls, the same address reloads. |
| `Screen code`                                                                                                                | A [code screen](https://docs-v3-preview.elastic.dev/reel/demos/code) to record instead: an editor of reel's own.                                                                                                            |
| `Attach <bundle id or .app path> as <name>`                                                                                  | In a reel of tracks: an app something else opens, recorded from when its window shows. See [Reels together](https://docs-v3-preview.elastic.dev/reel/demos/together).                                                       |
| `Layout <arrangement>`, `Split <share>% …`, `Spotlight <track>`, `Fullscreen <track>`, `Pip <track> [over <track>] [corner]` | In a reel of tracks, the director's moves over them, each with `off` and `@<easing>,<duration>`. See [Directing the tracks](/reel/demos/together#directing-the-tracks).                                                     |
| `Screen terminal`                                                                                                            | A [terminal](https://docs-v3-preview.elastic.dev/reel/demos/terminal) to record instead: a real shell in a terminal of reel's own.                                                                                          |
| `Include <scene.reel>`, `Include@<transition> <scene.reel>`                                                                  | Other reels to join, as [scenes](https://docs-v3-preview.elastic.dev/reel/demos/scenes), in order; each after the first moves in from the one before.                                                                       |


## Setup

Before the first step.

| Command                                          |                                                                                                                                          |
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
| `Output <path>`                                  | A file to write: `.mp4`, `.mov` or `.gif`. At least one.                                                                                 |
| `Output@<shape> <path>`                          | Framed on a canvas: `@16:9`, `@1:1`, `@9:16`, or an exact size such as `@1080x1920`.                                                     |
| `Set <setting> <value>`                          | See [Settings](https://docs-v3-preview.elastic.dev/reel/reference/settings).                                                             |
| `Intro "<title>" ["<subtitle>"] [duration]`      | A title card before the demo.                                                                                                            |
| `Outro "<title>" ["<subtitle>"] [duration]`      | One after it.                                                                                                                            |
| `Intro [duration]`, `Outro [duration]`           | The background video alone.                                                                                                              |
| `Intro@<kind>,<easing>,<duration> …`             | How it moves into the demo (an outro: out of it). See [Intro and outro](https://docs-v3-preview.elastic.dev/reel/demos/intro-and-outro). |
| `Profile <name> [extends <profile>] ["purpose"]` | A [profile](https://docs-v3-preview.elastic.dev/reel/outputs/presets), with indented `Set` lines under it.                               |


## Steps


| Command                                                    |                                                                                                                                                                         |
|------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Sleep <duration>`                                         | Waits.                                                                                                                                                                  |
| `Wait <element>`                                           | Waits until the element shows, up to `WaitTimeout`.                                                                                                                     |
| `Wait [marker]`                                            | Waits until the narration reaches a `[marker]` in an earlier `Say@over`.                                                                                                |
| `Wait for <name>`, `Wait for <name> to end`                | Waits until a step named `<name>` in another reel running with this one starts, or ends. See [Reels together](https://docs-v3-preview.elastic.dev/reel/demos/together). |
| `… as <name>`                                              | At the end of any step: names it, for other reels to wait for.                                                                                                          |
| `Click <element or @x,y>`                                  | Glides the cursor there and clicks.                                                                                                                                     |
| `Type "<text>"`, `Type@<duration> "<text>"`                | Types a character at a time. `\n` is return, `\t` tab.                                                                                                                  |
| `Key <combo> [count]`                                      | `return`, `a`, `cmd+s`, `ctrl+shift+tab`, `f5`, `fn+left`; repeated `count` times (1 to 100).                                                                           |
| `Scroll <up\|down\|left\|right> [lines] [element or @x,y]` | Scrolls, over the element when one is named.                                                                                                                            |
| `Say "<text>"`                                             | Narrates the line and waits for it to end.                                                                                                                              |
| `Say@over "<text>"`                                        | Narrates and carries on.                                                                                                                                                |
| `Say@<voice> "<text>"`, `Say@<voice>,over "<text>"`        | Narrates in a voice named with `Set Voice <name> <voice>`.                                                                                                              |
| `Caption "<text>" [duration]`                              | A caption from here until the next one, or for `duration`.                                                                                                              |
| `Caption off`                                              | Ends the caption showing.                                                                                                                                               |
| `Zoom <element> [scale]`                                   | Onto the element, locked and following it. Fitted, at most 4×, without a scale.                                                                                         |
| `Zoom @x,y [scale]`, `Zoom cursor [scale]`                 | Onto a point, or following the cursor; 2× unless a scale is given. Scales are 1× to 8×.                                                                                 |
| `Zoom off`                                                 | Back to the whole window.                                                                                                                                               |
| `Zoom@<easing>,<duration> …`                               | A zoom with its own move.                                                                                                                                               |
| `Speed <rate>x` … `Speed off`                              | Plays the stretch faster, above 1× up to 16×. In a reel of tracks, the director's only.                                                                                 |
| `Hide` … `Show`                                            | Leaves the stretch out. A `Hide` with no `Show` runs to the end. In a reel of tracks, the director's only.                                                              |


## Code screens

After `Screen code`. See [Code](https://docs-v3-preview.elastic.dev/reel/demos/code).

| Command                                                                              |                                                                                                                                                                               |
|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Code <file> [lines <a>-<b>] [at line <n> \| at "<text>"]`                           | Shows a file, or lines of it numbered as in the file, the cursor at a line or the first match of the text.                                                                    |
| `Go line <n>`, `Go "<text>"`                                                         | Moves the cursor there, easing the view to it.                                                                                                                                |
| `Focus lines <a>-<b>`, `Focus off`                                                   | Dims every other line.                                                                                                                                                        |
| `Mark "<text>" [n]`, `Mark off`                                                      | A box around the text, numbered `n`; boxes add up until `Mark off`.                                                                                                           |
| `Callout "<text>" "<label>"`, `Callout off`                                          | A bubble saying the label beside the text's line.                                                                                                                             |
| `Code@<transition> <file> …`                                                         | The file before moves out as this one comes in: any intro transition.                                                                                                         |
| `Split <file> […]`, `Split off`                                                      | A second pane beside the first, which steps then act on.                                                                                                                      |
| `Pane left`, `Pane right`                                                            | Which pane steps act on.                                                                                                                                                      |
| `Peek "<text>" <file> […]`, `Peek off`                                               | Another file in a box under the line with the text.                                                                                                                           |
| `Link "<a>" -> "<b>" ["<label>"]`, `Link off`                                        | An arrow from one place to another, across the panes when split.                                                                                                              |
| `Diff[@<transition>] <before> <after> [at …]`, `Diff <file> since <revision> [at …]` | Two versions as one, what changed marked.                                                                                                                                     |
| `Go hunk <n>`, `… at hunk <n>`                                                       | A diff's nth run of changes.                                                                                                                                                  |
| `Follow`, `Follow off`                                                               | Marks the line of the reel the pane shows that is running right now, somewhere on the channel. See [Reels together](https://docs-v3-preview.elastic.dev/reel/demos/together). |
| `Morph[@<easing>,<duration>] <file> [lines <a>-<b>] [at …]`                          | The file shown turns into this one, its words moving to their new places.                                                                                                     |


## Terminals

After `Screen terminal`. See [Terminal](https://docs-v3-preview.elastic.dev/reel/demos/terminal). `Type`, `Key` (the keys a shell takes, and `ctrl+` a
letter), `Mark` and `Callout` work too.

| Command                 |                                                                   |
|-------------------------|-------------------------------------------------------------------|
| `Wait /<regex>/`        | Until what was printed since the last thing typed matches.        |
| `Wait quiet [duration]` | Until nothing has been printed for that long, 500ms unless given. |
| `Wait exit`             | Until the command running ends and the prompt is back.            |

Elements are `"Label"`, `#identifier`, `@x,y` points, or on a web page `css:<selector>`: see
[Elements](https://docs-v3-preview.elastic.dev/reel/reels/elements).