# Animated Terminal

> A terminal that plays a session on view: commands type with a human rhythm, output prints and spinners resolve into ticks, then it offers a replay.

Category: Cards · MotionKit Plus · Updated 2026-10-23 · Live demo: https://motionkitui.com/components/animated-terminal

## When to use it

Developer tool and CLI landing pages, README-style heroes, docs that show what a command prints, and changelogs announcing a new command.

## How it works

The session is a list of lines: commands, output and spinners. Once the terminal is properly in view, a single effect schedules one timeout at a time. Commands advance a character at a time, with delays varied by an integer hash so the rhythm feels human but is identical on every run; output prints after a short beat; spinners cycle braille frames for their duration, then become a tick and their done text. It ends on a blinking caret, and Replay resets the two counters that drive it. Screen readers get the whole transcript at once.

## Installation

Part of MotionKit Plus (https://motionkitui.com/pricing). Subscribers install it with `npx shadcn@latest add @motionkit/animated-terminal` after adding their registry token from https://motionkitui.com/account.

## Props

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `lines` | `TerminalLine[]` |  | Commands ({ command }), output ({ output, tone }) and spinners ({ spinner, done, duration }). |
| `title` | `string` | `"zsh"` | Shown in the title bar. |
| `prompt` | `string` | `"$"` | Printed before each command. |
| `typeSpeed` | `number` | `45` | Average milliseconds per typed character. |
| `replay` | `boolean` | `true` | Offer a replay button when finished. |

## Accessibility

- **Keyboard: Pass.** Nothing to operate while it plays; the Replay button is a native button.
- **Screen readers: Pass.** Screen readers get the whole session at once as preformatted text, not a character-by-character stream.
- **Reduced motion: Pass.** With reduced motion on, the finished session shows straight away and the caret doesn't blink.
- **Colour contrast: Pass.** Commands measure 14.7:1, the prompt 7.5:1, muted output 7.7:1, success 9.4:1 and errors 8:1.
