> ## Documentation Index
> Fetch the complete documentation index at: https://tuireel.micr.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Presets

> Named bundles of presentation defaults for quick, consistent recordings

Presets are named bundles of presentation defaults - theme, sound, cursor, and HUD settings - that you can apply with a single line. They set sensible defaults without locking you in: any setting a preset provides can be overridden in your config.

## Using a Preset

Add the `preset` field to your config:

```jsonc theme={null}
{
  "preset": "polished",
  "output": "demo.mp4",
  "steps": [
    { "type": "launch", "command": "bash" },
    { "type": "type", "text": "echo 'Hello!'" },
    { "type": "press", "key": "Enter" },
    { "type": "pause", "duration": 2 },
  ],
}
```

Presets never control output behavior - they don't set `steps`, `output`, `format`, `$schema`, `fps`, or `captureFps`. They only set visual and audio presentation.

## Stack Presets with Delivery Profiles

Use `deliveryProfile` for timing + readability defaults, then add `preset` for the visual layer:

```jsonc theme={null}
{
  "deliveryProfile": "readable-1080p",
  "preset": "polished",
  "output": "demo.mp4",
  "steps": [
    { "type": "launch", "command": "bash" },
    { "type": "type", "text": "npm create tuireel-demo" },
    { "type": "press", "key": "Enter" },
    { "type": "pause", "duration": 2 },
  ],
}
```

In that stack, `deliveryProfile` sets the recording target (`fps`, `captureFps`, and readability-oriented sizing), while `preset` still only affects theme, sound, cursor, and HUD.

## Built-in Presets

| Preset     | Theme       | Sound Effects           | Cursor  | HUD     |
| ---------- | ----------- | ----------------------- | ------- | ------- |
| `polished` | catppuccin  | click + key (variant 1) | visible | visible |
| `minimal`  | tokyo-night | none                    | visible | hidden  |
| `demo`     | dracula     | click + key (variant 1) | visible | visible |
| `silent`   | (none)      | none                    | hidden  | hidden  |

### polished

The go-to preset for professional-looking recordings. Applies a warm Catppuccin color scheme with subtle click and keypress sound effects, a visible cursor, and HUD overlay.

```jsonc theme={null}
// Equivalent to:
{
  "theme": "catppuccin",
  "sound": { "effects": { "click": 1, "key": 1 } },
  "cursor": { "visible": true },
  "hud": { "visible": true },
}
```

### minimal

Clean recordings with a Tokyo Night theme and cursor only. No sound, no HUD - just the terminal and a cursor.

```jsonc theme={null}
// Equivalent to:
{
  "theme": "tokyo-night",
  "cursor": { "visible": true },
  "hud": { "visible": false },
}
```

### demo

Similar to `polished` but with the Dracula theme. Good for quick demos where you want a familiar dark look with full audio-visual polish.

```jsonc theme={null}
// Equivalent to:
{
  "theme": "dracula",
  "sound": { "effects": { "click": 1, "key": 1 } },
  "cursor": { "visible": true },
  "hud": { "visible": true },
}
```

### silent

The bare-bones preset: no cursor, no HUD, no sound. Useful when you want a clean terminal recording with no overlays, or as a baseline when you plan to customize everything yourself.

```jsonc theme={null}
// Equivalent to:
{
  "cursor": { "visible": false },
  "hud": { "visible": false },
}
```

## Overriding Preset Defaults

Preset values are defaults - your config overrides them. For example, the `polished` preset enables sound, but you can turn it off:

```jsonc theme={null}
{
  "preset": "polished",
  "sound": { "effects": {} },
  "output": "demo.mp4",
  "steps": [...]
}
```

This keeps the Catppuccin theme, cursor, and HUD from `polished` but disables sound effects.

You can also swap the theme while keeping everything else:

```jsonc theme={null}
{
  "preset": "polished",
  "theme": "gruvbox-dark",
  "output": "demo.mp4",
  "steps": [...]
}
```

## Presets in `tuireel init`

When you run `tuireel init` interactively (in a TTY), you're prompted for a delivery profile first, then an optional preset:

```bash theme={null}
tuireel init
# ? Select a delivery profile: (readable-1080p, social-quick-share, high-motion-demo)
# ? Select a preset: (polished, minimal, demo, silent)
```

The generated config always includes a delivery profile, and only includes `preset` when you opt into one. In non-interactive mode (piped input), Tuireel keeps the profile-first default and skips the optional preset prompt.
