BrowserUse_and_ComputerUse_.../skills/creative/ascii-art/SKILL.md
teknium1 405c7e08be feat: enhance ascii-art skill with pyfiglet and asciiart.eu search
Adds two primary modes on top of the original LLM-generation approach:
- Mode 1: pyfiglet (571 fonts, pip install, no API key) for text banners
- Mode 2: asciiart.eu search (11,000+ pieces) via web_extract for pre-made art
- Mode 3: LLM-generated art using Unicode palette (original PR, now fallback)

Includes decision flow, font recommendations, and category reference.
2026-03-04 20:01:08 -08:00

4.1 KiB

name description version author license dependencies metadata
ascii-art Generate ASCII art text banners via pyfiglet (571 fonts) and search 11,000+ pre-made ASCII artworks from asciiart.eu. Falls back to LLM-generated art using Unicode characters. 2.0.0 0xbyt4, Hermes Agent MIT
hermes
tags related_skills
ASCII
Art
Banners
Creative
Unicode
Text-Art
pyfiglet
figlet
excalidraw

ASCII Art Skill

Three modes: text banners via pyfiglet, searching pre-made art from asciiart.eu, and LLM-generated custom art.

Mode 1: Text Banners (pyfiglet)

Use pyfiglet to render text as large ASCII art banners. 571 fonts available, no API key needed.

Setup (one-time)

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

Generate a banner

python3 -m pyfiglet "YOUR TEXT" -f slant

List all available fonts

python3 -m pyfiglet --list_fonts
Style Font Best for
Clean & modern slant Project names, headers
Bold & blocky doom Titles, logos
Big & readable big Banners
Classic banner banner3 Wide displays
Compact small Subtitles
Cyberpunk cyberlarge Tech themes
3D effect 3-d Splash screens
Rounded rounded Friendly text
Gothic gothic Dramatic text
Lean italic lean Stylish headers

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
  • Use python3 -m pyfiglet "TEXT" -f font_name -w 80 to set output width

Mode 2: Search Pre-Made ASCII Art (asciiart.eu)

The ASCII Art Archive at asciiart.eu has 11,000+ artworks organized by category. Use web_extract to fetch them.

Browse by category

Common categories (use as URL paths):

  • animals/cats, animals/dogs, animals/birds, animals/horses
  • animals/dolphins, animals/dragons, animals/insects
  • space/rockets, space/stars, space/planets
  • vehicles/cars, vehicles/ships, vehicles/airplanes
  • food-and-drinks/coffee, food-and-drinks/beer
  • computers/computers, electronics/robots
  • people/faces, people/body-parts/hands
  • art-and-design/hearts, art-and-design/skulls
  • plants/flowers, plants/trees
  • mythology/dragons, mythology/unicorns
web_extract(urls=["https://www.asciiart.eu/animals/cats"])

Search by keyword

web_extract(urls=["https://www.asciiart.eu/search?q=rocket"])

Tips

  • The extracted content includes multiple art pieces — pick the best one for the user
  • Preserve artist initials/signatures (e.g., jgs, hjw) — this is important etiquette
  • If search returns nothing good, fall back to Mode 3 (LLM generation)

Mode 3: LLM-Generated Custom Art (Fallback)

When pyfiglet and asciiart.eu don't have what's needed, generate ASCII art directly using these Unicode characters:

Character Palette

Box Drawing:

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

Block Elements:

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

Geometric & Symbols:

◆ ◇ ◈ ● ○ ◉ ■ □ ▲ △ ▼ ▽ ★ ☆ ✦ ✧
◀ ▶ ◁ ▷ ⬡ ⬢ ⟐ ⌂ ⎔ ⏣

Style Guide

  1. Block Banner: Use and ╗╔╝╚ for large letter forms
  2. Shadow: Add depth with ▄ ▀ half-blocks
  3. Gradient: Use block density ░▒▓█ for effects
  4. Decorative Frame: Combine box-drawing with 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
  • Center-align banners by default

Decision Flow

  1. User wants text as a banner → Mode 1 (pyfiglet)
  2. User wants art of a thing (cat, rocket, dragon) → Mode 2 (asciiart.eu search)
  3. User wants something custom/creative → Mode 3 (LLM generation)
  4. Mode 2 returns nothing good → Fall back to Mode 3