Quick wins for a faster PC:
Recommended Free Tools
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →
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.
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.
#1 Best Overall
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.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsasciify
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.
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.
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.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →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.
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.
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:
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.
Rank #4
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.
Recommended Free Tools
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.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchNo 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.Quick-start command cookbook
These are representative commands, not a guarantee that every installation exposes the same executable name or options:
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Best Value
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.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsHow to choose without being misled by the word “ASCII”
- 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.
- 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.
- Choose generation or editing. FIGlet and TOIlet generate text banners. Aewan, Durdraw, and cadubi are for deliberate composition.
- 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.
- 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.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →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:
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.




