nbedos /termtosvg

Record terminal sessions as SVG animations

★ 9,754⑂ 434👁 1⑃ 35● 86▤ 12
PythonCreated 2018-06-09nbedos.github.io/termtosvg/
9,754
stars
+0+-1+-2
434
forks
1
watchers
35
prs
86
issues
12
releases
–
discussions

README

Note: As of June 2020 I do not have time to maintain termtosvg anymore and this repository is now read-only.

 termtosvg
termtosvg is a Unix terminal recorder written in Python that renders your command
line sessions as standalone SVG animations.

!Example

 Gallery of examples
 Gallery of templates

 Features
 Produce lightweight and clean looking animations or still frames embeddable on a project page
 Custom color themes, terminal UI and animation controls via user-defined SVG templates
 Rendering of recordings in asciicast format made with asciinema
    
 Installation
termtosvg is compatible with Linux, macOS and BSD OSes, requires Python = 3.5 and can be installed as follows using pip:
shell
 Create virtualenv named '.venv'
python3 -m venv .venv
 Activate virtualenv
source .venv/bin/activate
pip3 install termtosvg

Then run termtosvg by calling either termtosvg or python3 -m termtosvg.

Various independently maintained, OS specific packages have been made available by the community:

| OS       | Repository  | Installation command  |
|----------|-------------|---|
| Archlinux  | Arch  |pacman -S termtosvg   |
| FreeBSD | ports | |
| Gentoo | media-gfx/termtosvg | emerge media-gfx/termtosvg|
| macOS  | Homebrew  |brew install termtosvg   |
| OpenBSD  | ports  |   |
| NixOS | nixpkgs | |


 Basic usage
Start recording with:


$ termtosvg
Recording started, enter "exit" command or Control-D to end


You are now in a subshell where you can type your commands as usual.
Once you are done, exit the shell to end the recording:


$ exit
Recording ended, file is /tmp/termtosvg_exp5nsr4.svg

Then, use your favorite web browser to play the animation:

$ firefox /tmp/termtosvg_exp5nsr4.svg


Finally, embedding the animation in e.g. a README.md file on GitHub can
be achieved with a relative link to the animation:
markdown
!Example


See the manual page for more details.

 Dependencies
termtosvg uses:
 pyte to render the terminal screen
 lxml to work with SVG data

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON