BundledCreativeVersion 4.0.0

ASCII Art Skill for Hermes Agent: Text Banners, Cowsay, Boxes & More

ASCII art: pyfiglet, cowsay, boxes, image-to-ascii.

Written by Neura Market from the official Hermes Agent documentation for Ascii Art. Commands, paths, and version numbers are reproduced from the source unchanged.

Read the official documentation

The ASCII Art skill equips Hermes Agent with nine tools for generating text banners, decorative borders, message art, image-to-ASCII conversion, and more. You can produce everything from a quick cowsay greeting to a multi-step pipeline that renders a banner inside a stone border. All tools are local CLI programs or free REST APIs, no API keys required.

What it does

This skill turns plain text and images into ASCII art. You can:

  • Render short text as large banner letters using 571+ FIGlet fonts (locally with pyfiglet or remotely via the asciified API).
  • Wrap a message in a speech bubble with an ASCII character using cowsay (50+ characters).
  • Frame any text inside decorative borders with boxes (70+ designs).
  • Apply ANSI color effects and visual filters with toilet.
  • Convert images (PNG, JPEG, GIF, WEBP) to ASCII art.
  • Fetch pre-made ASCII art from curated web collections.
  • Generate QR codes, weather reports, and moon phases as ASCII art via public APIs.
  • Fall back to LLM-generated custom art using a palette of Unicode box-drawing and block characters.

Before you start

  • Platform: Linux, macOS, Windows.
  • Skill path: skills/creative/ascii-art (bundled with Hermes Agent, installed by default).
  • Python: Required for pyfiglet and the ascii.co.uk extraction script.
  • curl: Required for all remote API tools (asciified, qrenco.de, wttr.in, GitHub Octocat, ascii.co.uk).
  • Package managers: apt (Debian/Ubuntu) or brew (macOS) for cowsay, boxes, toilet, jp2a. snap or go for ascii-image-converter.
  • No API keys: All tools are local CLI programs or free REST APIs.

Tool 1: Text Banners (pyfiglet, local)

Render text as large ASCII art banners. 571 built-in fonts.

Setup

pip install pyfiglet --break-system-packages -q

Usage

python3 -m pyfiglet "YOUR TEXT" -f slant
python3 -m pyfiglet "TEXT" -f doom -w 80    # Set width
python3 -m pyfiglet --list_fonts             # List all 571 fonts

Recommended fonts

StyleFontBest for
Clean & modernslantProject names, headers
Bold & blockydoomTitles, logos
Big & readablebigBanners
Classic bannerbanner3Wide displays
CompactsmallSubtitles
CyberpunkcyberlargeTech themes
3D effect3-dSplash screens
GothicgothicDramatic text

Tips

  • Preview 2-3 fonts and let the user pick their favorite
  • Short text (1-8 chars) works best with detailed fonts like doom or block
  • Long text works better with compact fonts like small or mini

Tool 2: Text Banners (asciified API, remote, no install)

Free REST API that converts text to ASCII art. 250+ FIGlet fonts. Returns plain text directly, no parsing needed. Use this when pyfiglet is not installed or as a quick alternative.

Usage (via terminal curl)

# Basic text banner (default font)
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello+World"

# With a specific font
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello&font=Slant"
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello&font=Doom"
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello&font=Star+Wars"
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello&font=3-D"
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello&font=Banner3"

# List all available fonts (returns JSON array)
curl -s "https://asciified.thelicato.io/api/v2/fonts"

Tips

  • URL-encode spaces as + in the text parameter
  • The response is plain text ASCII art, no JSON wrapping, ready to display
  • Font names are case-sensitive; use the fonts endpoint to get exact names
  • Works from any terminal with curl, no Python or pip needed

Tool 3: Cowsay (Message Art)

Classic tool that wraps text in a speech bubble with an ASCII character.

Setup

sudo apt install cowsay -y    # Debian/Ubuntu
# brew install cowsay         # macOS

Usage

cowsay "Hello World"
cowsay -f tux "Linux rules"       # Tux the penguin
cowsay -f dragon "Rawr!"          # Dragon
cowsay -f stegosaurus "Roar!"     # Stegosaurus
cowthink "Hmm..."                  # Thought bubble
cowsay -l                          # List all characters

Available characters (50+)

beavis.zen, bong, bunny, cheese, daemon, default, dragon, dragon-and-cow, elephant, eyes, flaming-skull, ghostbusters, hellokitty, kiss, kitty, koala, luke-koala, mech-and-cow, meow, moofasa, moose, ren, sheep, skeleton, small, stegosaurus, stimpy, supermilker, surgery, three-eyes, turkey, turtle, tux, udder, vader, vader-koala, www

Eye/tongue modifiers

cowsay -b "Borg"       # =_= eyes
cowsay -d "Dead"       # x_x eyes
cowsay -g "Greedy"     # $_$ eyes
cowsay -p "Paranoid"   # @_@ eyes
cowsay -s "Stoned"     # *_* eyes
cowsay -w "Wired"      # O_O eyes
cowsay -e "OO" "Msg"   # Custom eyes
cowsay -T "U " "Msg"   # Custom tongue

Tool 4: Boxes (Decorative Borders)

Draw decorative ASCII art borders/frames around any text. 70+ built-in designs.

Setup

sudo apt install boxes -y    # Debian/Ubuntu
# brew install boxes         # macOS

Usage

echo "Hello World" | boxes                    # Default box
echo "Hello World" | boxes -d stone           # Stone border
echo "Hello World" | boxes -d parchment       # Parchment scroll
echo "Hello World" | boxes -d cat             # Cat border
echo "Hello World" | boxes -d dog             # Dog border
echo "Hello World" | boxes -d unicornsay      # Unicorn
echo "Hello World" | boxes -d diamonds        # Diamond pattern
echo "Hello World" | boxes -d c-cmt           # C-style comment
echo "Hello World" | boxes -d html-cmt        # HTML comment
echo "Hello World" | boxes -a c               # Center text
boxes -l                                       # List all 70+ designs

Combine with pyfiglet or asciified

python3 -m pyfiglet "HERMES" -f slant | boxes -d stone
# Or without pyfiglet installed:
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=HERMES&font=Slant" | boxes -d stone

Tool 5: TOIlet (Colored Text Art)

Like pyfiglet but with ANSI color effects and visual filters. Great for terminal eye candy.

Setup

sudo apt install toilet toilet-fonts -y    # Debian/Ubuntu
# brew install toilet                      # macOS

Usage

toilet "Hello World"                    # Basic text art
toilet -f bigmono12 "Hello"            # Specific font
toilet --gay "Rainbow!"                 # Rainbow coloring
toilet --metal "Metal!"                 # Metallic effect
toilet -F border "Bordered"             # Add border
toilet -F border --gay "Fancy!"         # Combined effects
toilet -f pagga "Block"                 # Block-style font (unique to toilet)
toilet -F list                          # List available filters

Filters

crop, gay (rainbow), metal, flip, flop, 180, left, right, border

Note: toilet outputs ANSI escape codes for colors, works in terminals but may not render in all contexts (e.g., plain text files, some chat platforms).

Tool 6: Image to ASCII Art

Convert images (PNG, JPEG, GIF, WEBP) to ASCII art.

Option A: ascii-image-converter (recommended, modern)

# Install
sudo snap install ascii-image-converter
# OR: go install github.com/TheZoraiz/ascii-image-converter@latest
ascii-image-converter image.png                  # Basic
ascii-image-converter image.png -C               # Color output
ascii-image-converter image.png -d 60,30         # Set dimensions
ascii-image-converter image.png -b               # Braille characters
ascii-image-converter image.png -n               # Negative/inverted
ascii-image-converter https://url/image.jpg      # Direct URL
ascii-image-converter image.png --save-txt out   # Save as text

Option B: jp2a (lightweight, JPEG only)

sudo apt install jp2a -y
jp2a --width=80 image.jpg
jp2a --colors image.jpg              # Colorized

Tool 7: Search Pre-Made ASCII Art

Search curated ASCII art from the web. Use terminal with curl.

Source A: ascii.co.uk (recommended for pre-made art)

Large collection of classic ASCII art organized by subject. Art is inside HTML `` tags. Fetch the page with curl, then extract art with a small Python snippet.

URL pattern: https://ascii.co.uk/art/{subject}

Step 1, Fetch the page:

curl -s 'https://ascii.co.uk/art/cat' -o /tmp/ascii_art.html

Step 2, Extract art from pre tags:

import re, html
with open('/tmp/ascii_art.html') as f:
    text = f.read()
arts = re.findall(r'<pre[^>]*>(.*?)</pre>', text, re.DOTALL)
for art in arts:
    clean = re.sub(r'<[^>]+>', '', art)
    clean = html.unescape(clean).strip()
    if len(clean) > 30:
        print(clean)
        print('\n---\n')

Available subjects (use as URL path):

  • Animals: cat, dog, horse, bird, fish, dragon, snake, rabbit, elephant, dolphin, butterfly, owl, wolf, bear, penguin, turtle
  • Objects: car, ship, airplane, rocket, guitar, computer, coffee, beer, cake, house, castle, sword, crown, key
  • Nature: tree, flower, sun, moon, star, mountain, ocean, rainbow
  • Characters: skull, robot, angel, wizard, pirate, ninja, alien
  • Holidays: christmas, halloween, valentine

Tips:

  • Preserve artist signatures/initials, important etiquette
  • Multiple art pieces per page, pick the best one for the user
  • Works reliably via curl, no JavaScript needed

Source B: GitHub Octocat API (fun easter egg)

Returns a random GitHub Octocat with a wise quote. No auth needed.

curl -s https://api.github.com/octocat

Tool 8: Fun ASCII Utilities (via curl)

These free services return ASCII art directly, great for fun extras.

QR Codes as ASCII Art

curl -s "qrenco.de/Hello+World"
curl -s "qrenco.de/https://example.com"

Weather as ASCII Art

curl -s "wttr.in/London"          # Full weather report with ASCII graphics
curl -s "wttr.in/Moon"            # Moon phase in ASCII art
curl -s "v2.wttr.in/London"       # Detailed version

Tool 9: LLM-Generated Custom Art (Fallback)

When tools above don't have what's needed, generate ASCII art directly using these Unicode characters:

Character Palette

Box Drawing: ╔ ╗ ╚ ╝ ║ ═ ╠ ╣ ╦ ╩ ╬ ┌ ┐ └ ┘ │ ─ ├ ┤ ┬ ┴ ┼ ╭ ╮ ╰ ╯

Block Elements: ░ ▒ ▓ █ ▄ ▀ ▌ ▐ ▖ ▗ ▘ ▝ ▚ ▞

Geometric & Symbols: ◆ ◇ ◈ ● ○ ◉ ■ □ ▲ △ ▼ ▽ ★ ☆ ✦ ✧ ◀ ▶ ◁ ▷ ⬡ ⬢ ⌂

Rules

  • Max width: 60 characters per line (terminal-safe)
  • Max height: 15 lines for banners, 25 for scenes
  • Monospace only: output must render correctly in fixed-width fonts

Decision Flow

  1. Text as a banner → pyfiglet if installed, otherwise asciified API via curl
  2. Wrap a message in fun character art → cowsay
  3. Add decorative border/frame → boxes (can combine with pyfiglet/asciified)
  4. Art of a specific thing (cat, rocket, dragon) → ascii.co.uk via curl + parsing
  5. Convert an image to ASCII → ascii-image-converter or jp2a
  6. QR code → qrenco.de via curl
  7. Weather/moon art → wttr.in via curl
  8. Something custom/creative → LLM generation with Unicode palette
  9. Any tool not installed → install it, or fall back to next option

When not to use it

If you need high-fidelity image rendering or vector graphics, ASCII art is not the right medium. The image-to-ASCII tools produce a coarse representation that loses detail, especially in photographs. For structured diagrams or flowcharts, consider the Excalidraw skill instead (listed under related skills).

Limits and gotchas

  • toilet ANSI codes: The color effects from toilet use ANSI escape sequences. They display correctly in most modern terminals but will not render in plain text files, some chat platforms, or logs that strip escape codes.
  • asciified API font names: Font names are case-sensitive. Always use the fonts endpoint to get the exact spelling before passing a font parameter.
  • ascii.co.uk extraction: The Python snippet relies on HTML structure that may change. If the page layout updates, the regex may need adjustment.
  • LLM generation rules: The max width of 60 characters and max height of 15/25 lines are guidelines for terminal readability. Exceeding them may cause line wrapping or truncation.
  • Image formats: jp2a only supports JPEG. For PNG, GIF, or WEBP, use ascii-image-converter.

What pairs with this

The related skill is Excalidraw, which provides a whiteboard-style drawing tool for diagrams and sketches. If your workflow needs both ASCII art and structured drawings, you can switch between the two skills within Hermes Agent.

Skills the docs pair this with

More Creative skills