nbedos
termtosvg
Python

Record terminal sessions as SVG animations

Last updated Jul 6, 2026
9.8k
Stars
438
Forks
12
Issues
+1
Stars/day
Attention Score
67
Language breakdown
Python 98.0%
Makefile 2.0%
โ–ธ Files click to expand
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

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:
# 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:

Example

See the manual page for more details.

Dependencies

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

ยฉ 2026 GitRepoTrend ยท nbedos/termtosvg ยท Updated daily from GitHub