The images below were made using Durdraw, a program by cmang for creating animated ANSI and ASCII art.

  • Add ASCII animation (with color) to shell scripts
  • Export to Animated GIF (requires PIL, images2gif and Ansilove)
  • Frames Per Second control, not dependent on terminal speed
  • Runs in your Linux, FreeBSD or MacOS X Terminal

Durdraw is heavily inspired by classic ANSI drawing programs (originally for MS-DOS) such as TheDraw, ACiDDraw and PabloDraw, adding more modern animation features such as frames-per-second control and animated GIF export. It's also made specificaly for Unix-like systems. You can use it to add animation to your shell scripts, or use use CTRL-A and CTRL-E as home and end, for example.


Durdraw works well in Linux and MacOS X, and will probably work on other UNIX-Like systems like FreeBSD. It requires Python 2.x (2.5 and up works fine). You can download the latest version from the Project page.

Animated GIF Export requires Ansilove, PIL and images2gif.

A Mac OS X Terminal configuration setup for Durdraw can be downloaded here along with dos437.ttf font which can be downloaded here and should be installed prior to installing the terminal configuration. This is not required, but recommended. The Xterm mouse click can be done (even over ssh) with opt-click or by using iTerm2.

In Linux and FreeBSD rxvt is the recommended terminal (usually found in apt-get), and instructions for setting up the font can be found here. Like in MacOS X, the mouse should work.

For Amiga fonts dMG's Fonts is recommended.


Here are some screenshot of Durdraw in action:

usage: durdraw [-h] [-p PLAY [PLAY ...]] [-q | -w | -x TIMES] [-u UNDOSIZE]

positional arguments:
  filename              .dur or ascii file to load

optional arguments:
  -h, --help            show this help message and exit
  -p PLAY [PLAY ...], --play PLAY [PLAY ...]
                        Just play .dur file or files, then exit
  -q, --quick           Skip startup screen
  -w, --wait            Pause at startup screen
  -x TIMES, --times TIMES
                        Play X number of times (requires -p)
  -u UNDOSIZE, --undosize UNDOSIZE
                        Set the number of undo history states - default is
                        100. More requires more RAM, less saves RAM.
  -V, --version         Show version number and exit