ansimotd: Retro ANSI Art for Your Terminal
I built a CLI tool called ansimotd that displays random ANSI art whenever you open a terminal.

How it works
ansimotd looks for ANSI art files in ~/.config/ansimotd/art/ and randomly selects one to display. It parses SAUCE metadata (a 128-byte block at the end of ANSI files) to determine the dimensions of each piece of art and ensure it fits your terminal width.
Getting started
Install with Homebrew:
brew tap retlehs/tap
brew install retlehs/tap/ansimotd
On Ubuntu/Debian:
curl -fsSL https://apt.ansimotd.com/install.sh | sudo sh
Or install with Go:
go install github.com/retlehs/ansimotd@latest
Download some art packs from 16colo.rs:
ansimotd download 1996
ansimotd download 1997
ansimotd download 1998
ansimotd download 1999
Add to your shell profile:
# Add to ~/.zshrc or ~/.bashrc
ansimotd
Technical details
ansimotd is a single Go binary with no external dependencies. It handles several interesting challenges:
- VGA color accuracy: ANSI art was designed for the DOS/VGA 16-color palette. Modern terminals remap these colors to their own themes, distorting the artwork. ansimotd converts ANSI color codes to 24-bit true-color escape sequences using the exact VGA RGB values.
- SAUCE parsing: Extracts width and height from the binary metadata block appended to ANSI art files
- CP437 decoding: Converts from Code Page 437 (the DOS character set) to UTF-8 for correct rendering of box-drawing and block characters
- Download client: Fetches art packs from the 16colo.rs API, with support for filtering by year, group, or pack name
Check it out at github.com/retlehs/ansimotd.
I also built ansimotd.com, a website that shows a random piece of ANSI art from 16colo.rs. Follow @ansimotd on X and @ansimotd.com on Bluesky for daily posts of random art.