Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
ThatPainter
ANSI art

31 Delightful Free and Open-Source ASCII Art Tools

Find the right ASCII-art tool for the job: banner generators, image converters, terminal viewers, ANSI editors, diagramming utilities, speech bubbles, and animated terminal curiosities.

By ThatPainter Team 12 min read
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

ThatPainter is reader-supported. When you buy through links on our site, we may earn an affiliate commission. Learn More

There is no single kind of “ASCII art tool.” FIGlet makes large text banners; jp2a converts photographs; Durdraw helps compose ANSI scenes; boxes frames text; and CMatrix, cbonsai, and ASCIIQuarium turn a terminal into a small animated display.

This curated list contains 31 named tools, grouped by what they do rather than treated as interchangeable software. “ASCII art” is used broadly here: some programs produce strict or mostly plain ASCII, while others use Unicode box-drawing, block, half-block, or Braille characters, ANSI color, or terminal graphics. That distinction matters if you need output for a log file, README, email, or legacy system.

The current LinuxLinks roundup is headed “32 Delightful Free and Open Source ASCII Art Tools,” although an older reference still says 31. This article deliberately retains a 31-tool scope by leaving out the typo-triggered Steam Locomotive novelty program. See the current roundup for the broader list and original descriptions.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

As an Amazon Associate I earn from qualifying purchases.

Quick picks

If you want… Start with… Why
Large text logos FIGlet A familiar font-based banner workflow.
More decorated banners TOIlet More formatting and visual effects than a basic banner generator.
A quick photograph conversion jp2a A focused image-to-character workflow.
Modern terminal image display chafa A terminal-graphics approach that is often more useful than saving a block of text.
ANSI scene art Durdraw or Aewan Dedicated editing rather than one-shot conversion.
Terminal boxes boxes Fast framing for messages, code, and command output.
Speech bubbles cowsay or catspeak Simple, composable output for scripts and prompts.
Animated terminal fun CMatrix, cbonsai, or ASCIIQuarium Immediate visual results, with little creative setup.

“Best” here means best fit for the job, not a universal ranking. An animated screensaver and an image converter should not be judged by the same scale.

1. Banner and text-art generators

FIGlet

FIGlet turns ordinary text into large character banners using selectable fonts. It is the natural starting point for shell prompts, login messages, README headings, MOTD banners, and simple terminal logos. Its output is generally suited to plain-text environments, but the exact appearance depends on the selected font and terminal width.

Before publishing or scripting around a specific FIGlet repository, verify the current canonical project location. The commonly circulated patorjk/figlet URL was not available during the source check, so it should not be treated as authoritative without rechecking.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

TOIlet

TOIlet is another large-text generator, aimed at more decorated output. It is the better first experiment when a plain FIGlet banner feels too restrained and you want color, effects, or more elaborate layout. Colorized output may contain ANSI escape sequences rather than printable text.

Calligraphy

Calligraphy belongs in the banner-generator category: it creates stylized text rather than converting photographs or providing a freehand canvas. Check its current documentation for font, Unicode, color, and export behavior before relying on a particular effect in an automated pipeline.

2. Convert images and media into terminal art

Image conversion is more sensitive than it first appears. A character cell is usually taller than it is wide, so an uncorrected photograph may look vertically stretched. Terminal width, font design, contrast, background color, locale, and color capability all affect the result. Resize the terminal first, then adjust the converter’s width, height, density, or aspect-ratio controls where available.

jp2a

jp2a is a focused command-line image-to-ASCII converter. It is a practical choice for quickly turning a JPEG or similar local image into character output. Its strengths are simplicity and shell-oriented use; its limitation is that a text conversion is not the same as displaying the original image, and detail disappears quickly at narrow widths.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

asciify

asciify is aimed at converting visual material into ASCII-style output. Treat it as a conversion utility rather than a terminal image viewer, and verify its current input formats, color mode, and output options before building a batch workflow.

Artem

Artem is another image-to-character option for readers who want to experiment with stylized terminal renderings. Compare its output controls and export format with jp2a: the most attractive result for a terminal may not be the most portable result for a text file.

Letterpress

Letterpress focuses on the visual character of image conversion. It is worth considering when the texture and density of the characters matter as much as literal photographic fidelity. Confirm whether the current version emits plain text, ANSI-colored text, or another representation.

ASCII Art Converter

The generic name is a warning as well as a description: several unrelated projects and packages use similar names. Identify the canonical upstream project before installing it, then check its supported image formats, output modes, and license rather than assuming that a package with the same name is the same software.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Mezzotone

Mezzotone is suited to converting images into a deliberately tonal, character-based treatment. It belongs in the “experiment with visual texture” part of this list, not in the same category as a full ANSI editor or a modern terminal graphics viewer.

img2ascii

img2ascii is a straightforward name for an image-to-ASCII workflow. It may be useful for scripts and quick tests, but compare its aspect-ratio handling, terminal-width controls, and color behavior with jp2a before choosing it for repeatable output.

gif-for-cli

gif-for-cli extends the terminal-art idea to animated media. It is the most natural choice in this list when the source is a GIF or another moving image rather than a still photograph. Animation requires cursor control and a real terminal, so redirected logs, CI output, and some IDE terminals are poor targets.

3. View images in a terminal

A converter creates a character representation that can be saved or piped. A terminal viewer tries to make an image look good in the current terminal, often using Unicode, ANSI color, or terminal-specific rendering techniques. If your goal is simply to inspect a PNG over SSH, a viewer may be a better fit than a strict ASCII converter.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

chafa

chafa describes itself as terminal graphics software and provides a command-line tool, documentation, examples, and source code. It is a strong modern comparison point for displaying images in terminals, especially when Unicode or richer color output is acceptable. That also means its output is not necessarily strict 7-bit ASCII or portable plain text.

libcaca and cacaview

libcaca is a color ASCII-art library with terminal-oriented tools and language-related components. Its ecosystem is more developer-oriented than a one-command converter: it is useful when an application or workflow needs a library as well as a terminal display tool. The repository contains multiple license files for different components, so do not flatten the whole project into one casual license label.

4. Draw and edit ASCII or ANSI art

Aewan

Aewan is an editor for composing terminal artwork rather than merely transforming an input image. It is better suited to deliberate character placement and classic terminal-art construction than to a one-line shell conversion. Check its current import, export, color, and maintenance status before selecting it for a long-lived project.

Durdraw

Durdraw is a dedicated ANSI-art editor. Choose it when you want to work frame by frame or place colored characters interactively, rather than accept the density decisions made by an image converter. ANSI output is powerful but less portable than plain ASCII.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

cadubi

cadubi provides an interactive terminal canvas for character-based drawing. It is useful for small sketches, banners, and decorative layouts, with the usual caveat that terminal editors depend on cursor control, keyboard handling, locale, and available glyphs.

draw

draw is a lightweight drawing-oriented entry in the roundup. Because generic project names can refer to unrelated software, verify the upstream identity and current interface before installing a package named only draw.

ASCII Draw

ASCII Draw is aimed at quick character-based sketching. It can be a better fit than a full ANSI scene editor when you want to make a small diagram or hand-drawn block in a terminal. Package repositories may use similar names for different projects; the Ubuntu package index is evidence of availability, not proof of project identity.

textdraw

textdraw sits between freehand drawing and structured composition. It is worth considering for layouts that need deliberate text placement, but check whether the current project expects a TUI, a command-line syntax, or another interface before assuming it behaves like an editor.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

5. Draw diagrams and structured layouts

boxes

boxes wraps input in decorative borders and is one of the most immediately useful tools in the roundup. A typical workflow looks like this:

echo "hello" | boxes

Use it for shell messages, code comments, documentation snippets, and pipeline output. The available designs, width behavior, and color support depend on the installed version and configuration.

Diagon

Diagon turns compact text notation into diagrams, formulas, and other structured terminal layouts. It is a better starting point than a freehand editor when the source should remain editable as text. Verify the current supported syntax and rendering targets in the project documentation.

textdraw

textdraw also belongs here when the goal is controlled composition rather than a photograph rendered as characters. It can complement boxes and Diagon, although their input models and output formats should not be assumed to match.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

6. Speech bubbles and composable output

cowsay

cowsay generates a speech bubble around a message and places it beside an ASCII character. Its value is composability: scripts can generate status messages, build notifications, demos, and prompt decorations without needing an editor. Output width and punctuation handling matter when the message is long.

cowsay "Hello"

catspeak

catspeak offers the same broad idea with a cat-themed character. It is a decorative text generator, not an image converter. Use it when the content is already text and you want a playful, structured presentation.

lolcat

lolcat applies colorful terminal effects to text and is especially useful after a banner generator:

figlet "Deploying" | lolcat

The apparent color is normally delivered through ANSI escape codes. Those codes can pollute redirected files, and not every terminal supports the same color depth. Disable color when a command provides an option to do so, or strip simple color sequences only as a limited workaround:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
tool | sed -r 's/x1B[[0-9;]*[mK]//g'

This expression is not a complete ANSI sanitizer; terminal control sequences are more varied than common color and erase codes.

7. Animations, screensavers, and terminal curiosities

These programs are primarily decorative. They are excellent for testing terminal behavior or adding atmosphere, but they are poor choices for logs, unattended jobs, and pipelines unless their output mode is explicitly designed for those uses.

CMatrix

CMatrix is a terminal-based implementation of the falling-code effect associated with The Matrix. It is a screensaver-style animation, not a general ASCII editor or image converter.

pipes.sh

pipes.sh draws animated pipe networks in the terminal. It is useful as a lightweight screensaver and as a quick test of cursor movement and color handling.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

ASCIIQuarium

ASCIIQuarium creates an animated aquarium from terminal characters. It is deliberately playful and demonstrates how far a terminal can go with timed redraws, but its output should be treated as an interactive display.

cbonsai

cbonsai grows a procedural bonsai tree in the terminal. It is a good choice for a small, continuously changing display and a poor choice for deterministic documentation unless you capture a fixed result.

PyBonsai

PyBonsai occupies a similar niche with a Python-oriented implementation. Choose between it and cbonsai based on the runtime and installation path you already maintain, not on a claim that one animated tree is objectively better.

cacafire

cacafire provides another animated terminal effect through the libcaca ecosystem. It is best regarded as a novelty display and may depend on terminal color and cursor-control behavior.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

No More Secrets

No More Secrets recreates a cinematic text-reveal effect for terminal output. It can be fun in demonstrations, but the animation layer changes the presentation of input and may be unsuitable for scripts that need exact, immediate output.

ctree

ctree produces tree-like terminal output or animation. Verify the current project’s exact purpose and invocation because generic names can conceal unrelated packages.

gti

gti is a typo-triggered terminal joke that displays a moving car when a user types a commonly confused command. It is included as terminal-art entertainment, not recommended as a production utility.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Quick-start command cookbook

These are representative commands, not a guarantee that every installation exposes the same executable name or options:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
figlet "Hello"
toilet "Hello"
cowsay "Hello"
jp2a image.jpg
chafa image.png
cmatrix
cbonsai

Check each project’s current README and your distribution package before using a command in a script. Some tools require a TTY; some change output according to terminal width; and Unicode or ANSI output can look different in Linux terminals, macOS Terminal, BSD consoles, Windows Terminal, WSL, SSH sessions, and IDE terminals.

Installation and platform reality

Package managers are usually the fastest route, but names, versions, and optional features vary by distribution. For example, a Debian- or Ubuntu-based system may offer packages resembling:

sudo apt install figlet toilet cowsay jp2a cmatrix

Homebrew installations may resemble:

brew install figlet toilet cowsay jp2a cmatrix

Verify availability and package identity first. The Ubuntu package index demonstrates that several ASCII-related packages exist, while similarly named packages need not be the same upstream project. Homebrew’s formula index is useful for checking current formula names and versions, but those details change.

Native support is not the same as working through WSL, a container, or a compatibility layer. Interactive editors and animations need cursor control, a compatible $TERM, a sufficiently large window, and sometimes raw-mode input. Windows Terminal generally handles modern Unicode and ANSI better than older Windows consoles, but glyph width and font coverage still determine the result.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to choose without being misled by the word “ASCII”

  1. Decide whether the output must be portable text. Choose mostly ASCII output for logs, source comments, email, and legacy systems. Unicode and ANSI produce better-looking terminal art but require a compatible display.
  2. Choose conversion or display. Use jp2a and similar tools when you need a character representation. Use chafa or libcaca when you primarily want to inspect an image in a terminal.
  3. Choose generation or editing. FIGlet and TOIlet generate text banners. Aewan, Durdraw, and cadubi are for deliberate composition.
  4. Check the output destination. A real TTY can animate and interpret escape sequences. A file, CI log, pager, or pipe may need plain text and deterministic output.
  5. Check maintenance and licensing separately. A dormant project can remain perfectly useful, while an active project may still have dependencies or assets with separate license terms.

Common failure modes

The image looks stretched

Resize the terminal and adjust width, height, or aspect-ratio controls. Character cells are not square pixels, and the same output can look different under another font.

The output wraps or is cropped

Inspect the current terminal size:

stty size
tput cols

Use a wider window or request fewer columns. A banner that looks excellent at 120 columns may be unusable at 80.

Colors appear as strange characters in a file

The file probably contains ANSI escape sequences. Prefer a documented no-color option. The common sed workaround above handles only a limited subset of sequences.

Unicode art is misaligned

Check the terminal font, locale, combining-character behavior, and East Asian ambiguous-width settings. Block, Braille, half-block, and box-drawing glyphs are not strict ASCII and may not occupy the same apparent width everywhere.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

An animation does nothing in a pipe or SSH session

It may require a real TTY, cursor addressing, color support, or raw input. Try it in a local interactive terminal and inspect $TERM. Do not assume that success in one terminal means success in CI or an IDE console.

Free, open source, and maintained are different claims

“Free” can mean no-cost download, a libre license, or both. “Open source” requires source availability under a license that grants the relevant freedoms; it should not be inferred from a project being downloadable. Also check bundled fonts, artwork, and third-party libraries, because their terms may differ from the main program.

Maintenance is a separate question. A mature, dormant utility may be stable, while a recently changed project may need more careful dependency and compatibility review. Use dated release or commit information from the canonical repository, not star counts, as the basis for an activity claim. For projects such as libcaca, multiple license files can reflect different components rather than one blanket license for everything in the repository.

Practical workflows

ASCII-art tools become more useful when chained according to their roles:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
banner generator → colorizer → terminal
image converter → pager or saved text
editor → ANSI output → compatible terminal or export workflow

Keep plain text and display effects separate when portability matters. Generate a clean banner for documentation, then apply color only in the interactive shell. Likewise, save an uncolored conversion when the result must survive email, version control, or log collection.

Final recommendation

Start with one practical tool for your actual task and one novelty tool for experimentation. FIGlet or boxes covers everyday text decoration; jp2a handles a focused image conversion; chafa is a strong modern terminal-viewing option; Durdraw or Aewan suits ANSI composition; and CMatrix, cbonsai, or ASCIIQuarium supplies the harmless terminal spectacle. Once you know whether you need strict ASCII, Unicode, ANSI, or terminal graphics, the 31-name list becomes a set of useful categories rather than a confusing pile of similar-looking commands.

More from the Paint Desk

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.