Turn your logo into a terminal login banner

Greet everyone who logs into a server with its logo - in color, drawn with real ANSI escape codes, so it appears instantly in any modern terminal. Convert your logo, download it as an .ansi file or a ready-to-run .sh script, and install it.

Open the terminal preset

A terminal window after an SSH login, showing a yellow lightning bolt logo drawn in ANSI color characters

Pick the color depth

Color modeEscape codesUse when
16 colors (ANSI)The basic 30-37 and 90-97 codesIt must work everywhere, including old consoles and serial lines
256 colors (xterm)38;5;NThe safe default for any modern terminal
Full color38;2;R;G;B (24-bit)The terminal sets COLORTERM=truecolor, as most current ones do
One color, Black on whiteA single ink and paperA clean, readable mark

Not sure what a terminal supports? Run echo $COLORTERM: truecolor or 24bit means full color is safe. Otherwise use 256 colors.

The .ansi and .sh files carry the background color too, so the banner looks the same on a light or a dark terminal theme. Turn on Transparent to let the terminal's own background show through instead.

Width: stay under 80 columns

A terminal wraps anything wider than the window, and a wrapped banner is noise. 80 columns is the classic width that every terminal can show; 60 to 72 leaves room for a narrow window. The terminal preset uses 80 characters across.

For a small banner that still looks sharp, try the Quadrant blocks or Braille character sets: they pack four or eight pixels into each character. Most modern terminal fonts include those glyphs; if you see boxes instead, use the Standard set.

Install it

Every login, for every user (Linux)

Scripts in /etc/profile.d/ run for every login shell. Save the .sh export there:

sudo cp banner.sh /etc/profile.d/banner.sh
sudo chmod 644 /etc/profile.d/banner.sh

The message of the day

On most Linux systems the contents of /etc/motd are printed after an SSH login, escape codes included:

sudo cp banner.ans /etc/motd

Ubuntu and Debian also run the scripts in /etc/update-motd.d/; make the .sh export one of them to keep it alongside the system news:

sudo cp banner.sh /etc/update-motd.d/05-banner
sudo chmod 755 /etc/update-motd.d/05-banner

Just your own shell

Add one line to ~/.bashrc or ~/.zshrc:

cat ~/banner.ans

Windows Terminal and PowerShell

Windows Terminal understands the same escape codes. Add this to your PowerShell profile (notepad $PROFILE):

Get-Content -Raw "$HOME\banner.ans"

The pre-login SSH banner

The SSH server can also show a banner before the password prompt, from the Banner line in /etc/ssh/sshd_config. That text goes through the SSH client's own display, and many clients show escape codes literally there - so use the plain .txt export for it, and keep the color for the MOTD.

Banner /etc/issue.net

Questions about terminal banners

What is the difference between the .ansi and .sh exports?
The .ansi file is the banner itself, escape codes and all - print it with cat. The .sh file is a small script that prints the same banner, ready to drop into /etc/profile.d/ or a shell profile.
Why does my banner show strange codes instead of colors?
The program printing it is not interpreting escape codes - often a pre-login SSH banner or an old console. Use the plain .txt export there, or print the .ansi file with cat in a terminal.
Which color mode should I pick for a server?
Use 256 colors: every terminal from the last decade supports it. Full color looks best where COLORTERM is truecolor; 16 colors is the fallback for very old or minimal consoles.
How wide should a terminal banner be?
At most 80 characters, so it never wraps in a standard terminal window. Narrower is better if people often log in from a phone or a split pane.

More guides

Open the converter