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

140 lines
4.1 KiB
Markdown

---
name: ascii-art
description: 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.
version: 2.0.0
author: 0xbyt4, Hermes Agent
license: MIT
dependencies: []
metadata:
hermes:
tags: [ASCII, Art, Banners, Creative, Unicode, Text-Art, pyfiglet, figlet]
related_skills: [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)
```bash
pip install pyfiglet --break-system-packages -q
```
### Generate a banner
```bash
python3 -m pyfiglet "YOUR TEXT" -f slant
```
### List all available fonts
```bash
python3 -m pyfiglet --list_fonts
```
### Recommended fonts by style
| 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