Skip to content

jxdones/take

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

take

Write a script. Play it back as a terminal session.

take play demo.take

take is a Rust CLI for scripting and replaying terminal sessions. Describe keystrokes, timing, and output in a plain .take file. take does the rest. No screen capture, no video files. Just text in, terminal out.

Status

Early days — the parser and playback engine are still taking shape.

take play In progress
take rec Planned
GIF / video export Planned

Install

cargo install --path .

Usage

take play demo.take

The .take format

.take files are human-readable scripts that describe a terminal session. They're meant to be written by hand or generated by take rec.

# demo.take

Set Shell    zsh
Set Output   demo.gif
Set Pace     250ms

Sleep 1s
Type@250ms "echo hello"
Enter
Hide
Show

Directives

Directive Description
Set Shell <shell> Shell to use (zsh, bash, fish, …)
Set Output <file> Output file path (e.g. demo.gif)
Set Pace <duration> Default typing pace between keystrokes
Sleep <duration> Pause for a duration (1s, 500ms, …)
Type@<pace> "<text>" Type text at an optional per-command pace
Enter Press the return key
Hide Hide terminal output
Show Show terminal output

Durations follow Rust's convention: ms for milliseconds, s for seconds.

Roadmap

  • Playback engine (take play fully working)
  • GIF/video export
  • Recording (take rec) — capture a live session into a .take file

License

MIT

About

Script and replay terminal sessions. Text in, terminal out.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages