Github url


by nbedos

nbedos /termtosvg

Record terminal sessions as SVG animations

8.9K Stars 340 Forks Last release: 6 months ago (1.1.0) BSD 3-Clause "New" or "Revised" License 190 Commits 20 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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


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: ```shell

Create virtualenv named '.venv'

python3 -m venv .venv

Activate virtualenv

source .venv/bin/activate pip3 install termtosvg ``

Then run termtosvg by calling either



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:

markdown ![Example](./docs/examples/awesome\_window\_frame.svg)

See the manual page for more details.


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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.