You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nbedos 283e19dec3 Bump version to 1.1.0 1 year ago
docs Update docs 2 years ago
man Update manual page 2 years ago
scripts Replace pkg_resources by pkgutil 3 years ago
termtosvg Copy to package. Fixes #111. 2 years ago
.travis.yml Allow job failure for Python 3.8-dev 2 years ago Bump version to 1.1.0rc1 1 year ago
LICENSE Add licence 3 years ago Minor fixes for version 0.8.0 2 years ago
Makefile Update docs 2 years ago Migrate from to 1 year ago Bump version to 1.1.0 1 year ago

Build Status


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



  • 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


termtosvg is compatible with Linux, macOS and BSD OSes, requires Python >= 3.5 and can be installed as follows using pip:

# 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 file on GitHub can be achieved with a relative link to the animation:


See the manual page for more details.


termtosvg uses:

  • pyte to render the terminal screen
  • lxml to work with SVG data