The Terminal component replays a shell session, typing the commands character by character and printing everything else whole, with the pause sitting in front of each output line where the work would have happened.
Add it with the CLI, open it in v0, or copy the source into your project.
Adds the component and installs its dependencies for you.
npx shadcn@latest add https://uibeats.com/r/terminal.jsonEverything Terminal accepts.
| Prop | Type | Default | Description |
|---|---|---|---|
| lines (required) | TerminalLine[] | No default | The session to replay, in order |
| typingSpeed | number | 0.03 | Seconds per character while a command types |
| lineDelay | number | 0.5 | Seconds between one line finishing and the next starting |
| loop | boolean | true | Replay the session from the top once it has finished |
| loopDelay | number | 2.5 | Seconds the finished session is held before it replays |
| chrome | boolean | true | Show the window chrome above the output |
| title | string | bash | Title shown in the chrome bar |
| className | string | '' | Additional CSS classes for styling |
| TerminalLine: kind | 'command' | 'output' | 'success' | 'error' | output | command types out behind a prompt; the rest appear whole |
| TerminalLine: text | string | No default | The line itself |
Required.
$npx shadcn@latest add terminal.json
Checking registry...
Installing dependencies: motion
Writing components/ui/terminal.tsx
Done. One file, yours to edit.