libcaca – Caca Labs

libcaca logo


libcaca is a graphics library that outputs text instead of pixels, so that it can work on older video cards or text terminals. It is not unlike the famous AAlib library, with the following improvements:

  • Unicode support
  • 2048 available colours (some devices can only handle 16)
  • dithering of colour images
  • advanced text canvas operations (blitting, rotations)

Libcaca works in a text terminal (and should thus work on all Unix systems including Mac OS X) using the S-Lang or ncurses libraries. It also works natively on DOS and Windows.

Libcaca was written by Sam Hocevar and Jean-Yves Lamoureux. It is free software, and can be used, modified and distributed under the terms of the Do What The Fuck You Want To Public License.



Here are a few libcaca screenshots.


The latest development version of libcaca is 0.99.beta19 (16 May 2014):

The old, deprecated 0.9 release is still available. You are encouraged to evaluate and use 0.99, though.


Read the following if you wish to hack on libcaca:

Development happens in a centralised Subversion repository:

There is also a Git repository that mirrors the central one:


Que dites-vous ?... C’est inutile ?... Je le sais !
Mais on ne se bat pas dans l’espoir du succès !
Non ! non, c’est bien plus beau lorsque c’est inutile !
-- Edmond Rostand, Cyrano de Bergerac

I am perfectly aware that libcaca is the waste of time it looks to be. No need to tell me about that. I urge you to read Théophile Gautier’s preface to Mademoiselle de Maupin, which also gives an excellent explanation for the name “libcaca”:

Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. - L’endroit le plus utile d’une maison, ce sont les latrines.

View Original