# Typewriter terminal

A terminal that types a scripted CLI session with a seeded human cadence, colors the shell syntax, and streams output lines, progress bars and spinners, with a scrubber, play/pause and replay controls.

- ID: `typewriter-terminal`
- Import: `animui/typewriter-terminal`
- Category: Special
- Runtime exports: `TypewriterTerminal`
- Declaration: `types/pro/typewriter-terminal.d.ts`
- Type provenance: reconstructed-from-docs-and-runtime
- Related: code-block, hero-section

```tsx
import { TypewriterTerminal } from 'animui/typewriter-terminal';
```

This import example is not a complete render recipe: read the declaration below and its local references for required props, data, callbacks and provider context. Use `animui info typewriter-terminal` to resolve the local declaration graph. Global setup is in `llms.txt`.

```ts
/** Reconstructed from saved Arc documentation and runtime binding evidence; original TypeScript source was unavailable. */
import type { ComponentType, ReactNode, CSSProperties, Ref, ButtonHTMLAttributes, HTMLAttributes, ReactElement } from 'react';

export type TypewriterTerminalOutput = string | { text: string; tone?: 'default' | 'muted' | 'success' | 'warning' | 'danger' | 'accent'; delay?: number } | { kind: 'progress'; label: string; duration?: number } | { kind: 'task'; label: string; done?: string; duration?: number };
export interface TypewriterTerminalProps { steps?: { command: string; output?: TypewriterTerminalOutput[]; cwd?: string; pause?: number }[]; title?: string; cwd?: string; symbol?: string; speed?: number; paused?: boolean; loop?: boolean; rows?: number; copyable?: boolean; accent?: string; label?: string; caption?: ReactNode; className?: string; style?: CSSProperties; }

export declare const TypewriterTerminal: ComponentType<TypewriterTerminalProps>;

export default TypewriterTerminal;
```
