---
url: https://listr2.kilic.dev/renderer/default.md
---

# {{ $frontmatter.title }}

*DefaultRenderer* is the main renderer of `listr2`.

*DefaultRenderer* is intended for `TTY` environments with `vt100` terminal compatibility, where it continuously redraws the terminal output as the state of a *Task* changes. This renderer has many options for customization, these options can be changed at *Listr*, *Subtask* or *Task* level.

This renderer uses *ProcessOutput* to take control of the terminal.

![demo](../../examples/renderer-default.gif)

## How Updates Are Rendered

The task list is drawn with partial, differential updates through [`log-update`](https://www.npmjs.com/package/log-update) `v8`. Instead of clearing and rewriting the whole screen on every change, only the lines that actually changed are rewritten, and each redraw is wrapped in synchronized-output markers (`ESC[?2026h`/`ESC[?2026l`) on supporting terminals to reduce flicker. The visible result is identical to previous versions, only smoother.

## Renderer Options

## Renderer Task Options
