Script terminal sessions in plain text. Replay them exactly.
Quick Start • Why take • Install • Script Format • Project Maturity • License
take is a Rust CLI for authoring terminal scripts as code.
No screen recording workflow, no manual retakes. Just a .take file and deterministic playback.
take play demo.take# demo.take
Set Shell zsh
Set Pace 250ms
Sleep 1s
Type "echo hello from take"
Enter
Sleep 700ms
Type "ls -la"
Enter
- Plain-text scripts you can read, review, and version in git.
- Deterministic playback for docs, demos, and walkthroughs.
- A compact DSL focused on terminal flow: typing, pauses, enter, and visibility.
cargo install --path ..take files describe a terminal session with simple directives.
| Directive | Description |
|---|---|
Set Shell <shell> |
Shell to use (zsh, bash, fish, ...) |
Set Output <file> |
Output file path (for render/export workflows) |
Set Pace <duration> |
Default typing pace between keystrokes |
Sleep <duration> |
Pause for a duration (1s, 500ms, ...) |
Type@<pace> "<text>" |
Type text with an optional per-command pace override |
Type "<text>" |
Type text using the default pace |
Enter |
Press return |
Hide |
Hide terminal output |
Show |
Show terminal output |
Durations follow Rust style units: ms for milliseconds, s for seconds.
take is in early development and the DSL is still evolving.
Right now:
take playis in progress.take recis planned.- Export workflows are in progress.
Near term:
- Complete playback stability and script compatibility.
- Add first-pass recording support.
- Improve export options (GIF / video).
MIT