[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7347W8MSSDENXRG3R9PABDP":3,"skill-same:01M7347W8MSSDENXRG3R9PABDP":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M7347W8MSSDENXRG3R9PABDP","ascii-art",null,"ASCII art: pyfiglet, cowsay, boxes, image-to-ascii.","zeno-sys\u002Fzeno-agent","zeno-sys","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93507284?v=4","01M7347EBM2G4GCTRHKSAH20JG","01M7347EC915NDBHWDYEGJ2GZT",1,"MIT","https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fcreative\u002Fascii-art\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: ascii-art\ndescription: \"ASCII art: pyfiglet, cowsay, boxes, image-to-ascii.\"\nversion: 4.0.0\nauthor: 0xbyt4, Hermes Agent\nlicense: MIT\ndependencies: []\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [ASCII, Art, Banners, Creative, Unicode, Text-Art, pyfiglet, figlet, cowsay, boxes]\n    related_skills: [excalidraw]\n\n---\n\n# ASCII Art Skill\n\nMultiple tools for different ASCII art needs. All tools are local CLI programs or free REST APIs — no API keys required.\n\n## Tool 1: Text Banners (pyfiglet — local)\n\nRender text as large ASCII art banners. 571 built-in fonts.\n\n### Setup\n\n```bash\npip install pyfiglet --break-system-packages -q\n```\n\n### Usage\n\n```bash\npython3 -m pyfiglet \"YOUR TEXT\" -f slant\npython3 -m pyfiglet \"TEXT\" -f doom -w 80    # Set width\npython3 -m pyfiglet --list_fonts             # List all 571 fonts\n```\n\n### Recommended fonts\n\n| Style | Font | Best for |\n|-------|------|----------|\n| Clean & modern | `slant` | Project names, headers |\n| Bold & blocky | `doom` | Titles, logos |\n| Big & readable | `big` | Banners |\n| Classic banner | `banner3` | Wide displays |\n| Compact | `small` | Subtitles |\n| Cyberpunk | `cyberlarge` | Tech themes |\n| 3D effect | `3-d` | Splash screens |\n| Gothic | `gothic` | Dramatic text |\n\n### Tips\n\n- Preview 2-3 fonts and let the user pick their favorite\n- Short text (1-8 chars) works best with detailed fonts like `doom` or `block`\n- Long text works better with compact fonts like `small` or `mini`\n\n## Tool 2: Text Banners (asciified API — remote, no install)\n\nFree 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.\n\n### Usage (via terminal curl)\n\n```bash\n# Basic text banner (default font)\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello+World\"\n\n# With a specific font\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Slant\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Doom\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Star+Wars\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=3-D\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Banner3\"\n\n# List all available fonts (returns JSON array)\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Ffonts\"\n```\n\n### Tips\n\n- URL-encode spaces as `+` in the text parameter\n- The response is plain text ASCII art — no JSON wrapping, ready to display\n- Font names are case-sensitive; use the fonts endpoint to get exact names\n- Works from any terminal with curl — no Python or pip needed\n\n## Tool 3: Cowsay (Message Art)\n\nClassic tool that wraps text in a speech bubble with an ASCII character.\n\n### Setup\n\n```bash\nsudo apt install cowsay -y    # Debian\u002FUbuntu\n# brew install cowsay         # macOS\n```\n\n### Usage\n\n```bash\ncowsay \"Hello World\"\ncowsay -f tux \"Linux rules\"       # Tux the penguin\ncowsay -f dragon \"Rawr!\"          # Dragon\ncowsay -f stegosaurus \"Roar!\"     # Stegosaurus\ncowthink \"Hmm...\"                  # Thought bubble\ncowsay -l                          # List all characters\n```\n\n### Available characters (50+)\n\n`beavis.zen`, `bong`, `bunny`, `cheese`, `daemon`, `default`, `dragon`,\n`dragon-and-cow`, `elephant`, `eyes`, `flaming-skull`, `ghostbusters`,\n`hellokitty`, `kiss`, `kitty`, `koala`, `luke-koala`, `mech-and-cow`,\n`meow`, `moofasa`, `moose`, `ren`, `sheep`, `skeleton`, `small`,\n`stegosaurus`, `stimpy`, `supermilker`, `surgery`, `three-eyes`,\n`turkey`, `turtle`, `tux`, `udder`, `vader`, `vader-koala`, `www`\n\n### Eye\u002Ftongue modifiers\n\n```bash\ncowsay -b \"Borg\"       # =_= eyes\ncowsay -d \"Dead\"       # x_x eyes\ncowsay -g \"Greedy\"     # $_$ eyes\ncowsay -p \"Paranoid\"   # @_@ eyes\ncowsay -s \"Stoned\"     # *_* eyes\ncowsay -w \"Wired\"      # O_O eyes\ncowsay -e \"OO\" \"Msg\"   # Custom eyes\ncowsay -T \"U \" \"Msg\"   # Custom tongue\n```\n\n## Tool 4: Boxes (Decorative Borders)\n\nDraw decorative ASCII art borders\u002Fframes around any text. 70+ built-in designs.\n\n### Setup\n\n```bash\nsudo apt install boxes -y    # Debian\u002FUbuntu\n# brew install boxes         # macOS\n```\n\n### Usage\n\n```bash\necho \"Hello World\" | boxes                    # Default box\necho \"Hello World\" | boxes -d stone           # Stone border\necho \"Hello World\" | boxes -d parchment       # Parchment scroll\necho \"Hello World\" | boxes -d cat             # Cat border\necho \"Hello World\" | boxes -d dog             # Dog border\necho \"Hello World\" | boxes -d unicornsay      # Unicorn\necho \"Hello World\" | boxes -d diamonds        # Diamond pattern\necho \"Hello World\" | boxes -d c-cmt           # C-style comment\necho \"Hello World\" | boxes -d html-cmt        # HTML comment\necho \"Hello World\" | boxes -a c               # Center text\nboxes -l                                       # List all 70+ designs\n```\n\n### Combine with pyfiglet or asciified\n\n```bash\npython3 -m pyfiglet \"HERMES\" -f slant | boxes -d stone\n# Or without pyfiglet installed:\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=HERMES&font=Slant\" | boxes -d stone\n```\n\n## Tool 5: TOIlet (Colored Text Art)\n\nLike pyfiglet but with ANSI color effects and visual filters. Great for terminal eye candy.\n\n### Setup\n\n```bash\nsudo apt install toilet toilet-fonts -y    # Debian\u002FUbuntu\n# brew install toilet                      # macOS\n```\n\n### Usage\n\n```bash\ntoilet \"Hello World\"                    # Basic text art\ntoilet -f bigmono12 \"Hello\"            # Specific font\ntoilet --gay \"Rainbow!\"                 # Rainbow coloring\ntoilet --metal \"Metal!\"                 # Metallic effect\ntoilet -F border \"Bordered\"             # Add border\ntoilet -F border --gay \"Fancy!\"         # Combined effects\ntoilet -f pagga \"Block\"                 # Block-style font (unique to toilet)\ntoilet -F list                          # List available filters\n```\n\n### Filters\n\n`crop`, `gay` (rainbow), `metal`, `flip`, `flop`, `180`, `left`, `right`, `border`\n\n**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).\n\n## Tool 6: Image to ASCII Art\n\nConvert images (PNG, JPEG, GIF, WEBP) to ASCII art.\n\n### Option A: ascii-image-converter (recommended, modern)\n\n```bash\n# Install\nsudo snap install ascii-image-converter\n# OR: go install github.com\u002FTheZoraiz\u002Fascii-image-converter@latest\n```\n\n```bash\nascii-image-converter image.png                  # Basic\nascii-image-converter image.png -C               # Color output\nascii-image-converter image.png -d 60,30         # Set dimensions\nascii-image-converter image.png -b               # Braille characters\nascii-image-converter image.png -n               # Negative\u002Finverted\nascii-image-converter https:\u002F\u002Furl\u002Fimage.jpg      # Direct URL\nascii-image-converter image.png --save-txt out   # Save as text\n```\n\n### Option B: jp2a (lightweight, JPEG only)\n\n```bash\nsudo apt install jp2a -y\njp2a --width=80 image.jpg\njp2a --colors image.jpg              # Colorized\n```\n\n## Tool 7: Search Pre-Made ASCII Art\n\nSearch curated ASCII art from the web. Use `terminal` with `curl`.\n\n### Source A: ascii.co.uk (recommended for pre-made art)\n\nLarge collection of classic ASCII art organized by subject. Art is inside HTML `\u003Cpre>` tags. Fetch the page with curl, then extract art with a small Python snippet.\n\n**URL pattern:** `https:\u002F\u002Fascii.co.uk\u002Fart\u002F{subject}`\n\n**Step 1 — Fetch the page:**\n\n```bash\ncurl -s 'https:\u002F\u002Fascii.co.uk\u002Fart\u002Fcat' -o \u002Ftmp\u002Fascii_art.html\n```\n\n**Step 2 — Extract art from pre tags:**\n\n```python\nimport re, html\nwith open('\u002Ftmp\u002Fascii_art.html') as f:\n    text = f.read()\narts = re.findall(r'\u003Cpre[^>]*>(.*?)\u003C\u002Fpre>', text, re.DOTALL)\nfor art in arts:\n    clean = re.sub(r'\u003C[^>]+>', '', art)\n    clean = html.unescape(clean).strip()\n    if len(clean) > 30:\n        print(clean)\n        print('\\n---\\n')\n```\n\n**Available subjects** (use as URL path):\n- Animals: `cat`, `dog`, `horse`, `bird`, `fish`, `dragon`, `snake`, `rabbit`, `elephant`, `dolphin`, `butterfly`, `owl`, `wolf`, `bear`, `penguin`, `turtle`\n- Objects: `car`, `ship`, `airplane`, `rocket`, `guitar`, `computer`, `coffee`, `beer`, `cake`, `house`, `castle`, `sword`, `crown`, `key`\n- Nature: `tree`, `flower`, `sun`, `moon`, `star`, `mountain`, `ocean`, `rainbow`\n- Characters: `skull`, `robot`, `angel`, `wizard`, `pirate`, `ninja`, `alien`\n- Holidays: `christmas`, `halloween`, `valentine`\n\n**Tips:**\n- Preserve artist signatures\u002Finitials — important etiquette\n- Multiple art pieces per page — pick the best one for the user\n- Works reliably via curl, no JavaScript needed\n\n### Source B: GitHub Octocat API (fun easter egg)\n\nReturns a random GitHub Octocat with a wise quote. No auth needed.\n\n```bash\ncurl -s https:\u002F\u002Fapi.github.com\u002Foctocat\n```\n\n## Tool 8: Fun ASCII Utilities (via curl)\n\nThese free services return ASCII art directly — great for fun extras.\n\n### QR Codes as ASCII Art\n\n```bash\ncurl -s \"qrenco.de\u002FHello+World\"\ncurl -s \"qrenco.de\u002Fhttps:\u002F\u002Fexample.com\"\n```\n\n### Weather as ASCII Art\n\n```bash\ncurl -s \"wttr.in\u002FLondon\"          # Full weather report with ASCII graphics\ncurl -s \"wttr.in\u002FMoon\"            # Moon phase in ASCII art\ncurl -s \"v2.wttr.in\u002FLondon\"       # Detailed version\n```\n\n## Tool 9: LLM-Generated Custom Art (Fallback)\n\nWhen tools above don't have what's needed, generate ASCII art directly using these Unicode characters:\n\n### Character Palette\n\n**Box Drawing:** `╔ ╗ ╚ ╝ ║ ═ ╠ ╣ ╦ ╩ ╬ ┌ ┐ └ ┘ │ ─ ├ ┤ ┬ ┴ ┼ ╭ ╮ ╰ ╯`\n\n**Block Elements:** `░ ▒ ▓ █ ▄ ▀ ▌ ▐ ▖ ▗ ▘ ▝ ▚ ▞`\n\n**Geometric & Symbols:** `◆ ◇ ◈ ● ○ ◉ ■ □ ▲ △ ▼ ▽ ★ ☆ ✦ ✧ ◀ ▶ ◁ ▷ ⬡ ⬢ ⌂`\n\n### Rules\n\n- Max width: 60 characters per line (terminal-safe)\n- Max height: 15 lines for banners, 25 for scenes\n- Monospace only: output must render correctly in fixed-width fonts\n\n## Decision Flow\n\n1. **Text as a banner** → pyfiglet if installed, otherwise asciified API via curl\n2. **Wrap a message in fun character art** → cowsay\n3. **Add decorative border\u002Fframe** → boxes (can combine with pyfiglet\u002Fasciified)\n4. **Art of a specific thing** (cat, rocket, dragon) → ascii.co.uk via curl + parsing\n5. **Convert an image to ASCII** → ascii-image-converter or jp2a\n6. **QR code** → qrenco.de via curl\n7. **Weather\u002Fmoon art** → wttr.in via curl\n8. **Something custom\u002Fcreative** → LLM generation with Unicode palette\n9. **Any tool not installed** → install it, or fall back to next option\n","# ASCII Art Skill\n\nMultiple tools for different ASCII art needs. All tools are local CLI programs or free REST APIs — no API keys required.\n\n## Tool 1: Text Banners (pyfiglet — local)\n\nRender text as large ASCII art banners. 571 built-in fonts.\n\n### Setup\n\n```bash\npip install pyfiglet --break-system-packages -q\n```\n\n### Usage\n\n```bash\npython3 -m pyfiglet \"YOUR TEXT\" -f slant\npython3 -m pyfiglet \"TEXT\" -f doom -w 80    # Set width\npython3 -m pyfiglet --list_fonts             # List all 571 fonts\n```\n\n### Recommended fonts\n\n| Style | Font | Best for |\n|-------|------|----------|\n| Clean & modern | `slant` | Project names, headers |\n| Bold & blocky | `doom` | Titles, logos |\n| Big & readable | `big` | Banners |\n| Classic banner | `banner3` | Wide displays |\n| Compact | `small` | Subtitles |\n| Cyberpunk | `cyberlarge` | Tech themes |\n| 3D effect | `3-d` | Splash screens |\n| Gothic | `gothic` | Dramatic text |\n\n### Tips\n\n- Preview 2-3 fonts and let the user pick their favorite\n- Short text (1-8 chars) works best with detailed fonts like `doom` or `block`\n- Long text works better with compact fonts like `small` or `mini`\n\n## Tool 2: Text Banners (asciified API — remote, no install)\n\nFree 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.\n\n### Usage (via terminal curl)\n\n```bash\n# Basic text banner (default font)\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello+World\"\n\n# With a specific font\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Slant\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Doom\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Star+Wars\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=3-D\"\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=Hello&font=Banner3\"\n\n# List all available fonts (returns JSON array)\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Ffonts\"\n```\n\n### Tips\n\n- URL-encode spaces as `+` in the text parameter\n- The response is plain text ASCII art — no JSON wrapping, ready to display\n- Font names are case-sensitive; use the fonts endpoint to get exact names\n- Works from any terminal with curl — no Python or pip needed\n\n## Tool 3: Cowsay (Message Art)\n\nClassic tool that wraps text in a speech bubble with an ASCII character.\n\n### Setup\n\n```bash\nsudo apt install cowsay -y    # Debian\u002FUbuntu\n# brew install cowsay         # macOS\n```\n\n### Usage\n\n```bash\ncowsay \"Hello World\"\ncowsay -f tux \"Linux rules\"       # Tux the penguin\ncowsay -f dragon \"Rawr!\"          # Dragon\ncowsay -f stegosaurus \"Roar!\"     # Stegosaurus\ncowthink \"Hmm...\"                  # Thought bubble\ncowsay -l                          # List all characters\n```\n\n### Available characters (50+)\n\n`beavis.zen`, `bong`, `bunny`, `cheese`, `daemon`, `default`, `dragon`,\n`dragon-and-cow`, `elephant`, `eyes`, `flaming-skull`, `ghostbusters`,\n`hellokitty`, `kiss`, `kitty`, `koala`, `luke-koala`, `mech-and-cow`,\n`meow`, `moofasa`, `moose`, `ren`, `sheep`, `skeleton`, `small`,\n`stegosaurus`, `stimpy`, `supermilker`, `surgery`, `three-eyes`,\n`turkey`, `turtle`, `tux`, `udder`, `vader`, `vader-koala`, `www`\n\n### Eye\u002Ftongue modifiers\n\n```bash\ncowsay -b \"Borg\"       # =_= eyes\ncowsay -d \"Dead\"       # x_x eyes\ncowsay -g \"Greedy\"     # $_$ eyes\ncowsay -p \"Paranoid\"   # @_@ eyes\ncowsay -s \"Stoned\"     # *_* eyes\ncowsay -w \"Wired\"      # O_O eyes\ncowsay -e \"OO\" \"Msg\"   # Custom eyes\ncowsay -T \"U \" \"Msg\"   # Custom tongue\n```\n\n## Tool 4: Boxes (Decorative Borders)\n\nDraw decorative ASCII art borders\u002Fframes around any text. 70+ built-in designs.\n\n### Setup\n\n```bash\nsudo apt install boxes -y    # Debian\u002FUbuntu\n# brew install boxes         # macOS\n```\n\n### Usage\n\n```bash\necho \"Hello World\" | boxes                    # Default box\necho \"Hello World\" | boxes -d stone           # Stone border\necho \"Hello World\" | boxes -d parchment       # Parchment scroll\necho \"Hello World\" | boxes -d cat             # Cat border\necho \"Hello World\" | boxes -d dog             # Dog border\necho \"Hello World\" | boxes -d unicornsay      # Unicorn\necho \"Hello World\" | boxes -d diamonds        # Diamond pattern\necho \"Hello World\" | boxes -d c-cmt           # C-style comment\necho \"Hello World\" | boxes -d html-cmt        # HTML comment\necho \"Hello World\" | boxes -a c               # Center text\nboxes -l                                       # List all 70+ designs\n```\n\n### Combine with pyfiglet or asciified\n\n```bash\npython3 -m pyfiglet \"HERMES\" -f slant | boxes -d stone\n# Or without pyfiglet installed:\ncurl -s \"https:\u002F\u002Fasciified.thelicato.io\u002Fapi\u002Fv2\u002Fascii?text=HERMES&font=Slant\" | boxes -d stone\n```\n\n## Tool 5: TOIlet (Colored Text Art)\n\nLike pyfiglet but with ANSI color effects and visual filters. Great for terminal eye candy.\n\n### Setup\n\n```bash\nsudo apt install toilet toilet-fonts -y    # Debian\u002FUbuntu\n# brew install toilet                      # macOS\n```\n\n### Usage\n\n```bash\ntoilet \"Hello World\"                    # Basic text art\ntoilet -f bigmono12 \"Hello\"            # Specific font\ntoilet --gay \"Rainbow!\"                 # Rainbow coloring\ntoilet --metal \"Metal!\"                 # Metallic effect\ntoilet -F border \"Bordered\"             # Add border\ntoilet -F border --gay \"Fancy!\"         # Combined effects\ntoilet -f pagga \"Block\"                 # Block-style font (unique to toilet)\ntoilet -F list                          # List available filters\n```\n\n### Filters\n\n`crop`, `gay` (rainbow), `metal`, `flip`, `flop`, `180`, `left`, `right`, `border`\n\n**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).\n\n## Tool 6: Image to ASCII Art\n\nConvert images (PNG, JPEG, GIF, WEBP) to ASCII art.\n\n### Option A: ascii-image-converter (recommended, modern)\n\n```bash\n# Install\nsudo snap install ascii-image-converter\n# OR: go install github.com\u002FTheZoraiz\u002Fascii-image-converter@latest\n```\n\n```bash\nascii-image-converter image.png                  # Basic\nascii-image-converter image.png -C               # Color output\nascii-image-converter image.png -d 60,30         # Set dimensions\nascii-image-converter image.png -b               # Braille characters\nascii-image-converter image.png -n               # Negative\u002Finverted\nascii-image-converter https:\u002F\u002Furl\u002Fimage.jpg      # Direct URL\nascii-image-converter image.png --save-txt out   # Save as text\n```\n\n### Option B: jp2a (lightweight, JPEG only)\n\n```bash\nsudo apt install jp2a -y\njp2a --width=80 image.jpg\njp2a --colors image.jpg              # Colorized\n```\n\n## Tool 7: Search Pre-Made ASCII Art\n\nSearch curated ASCII art from the web. Use `terminal` with `curl`.\n\n### Source A: ascii.co.uk (recommended for pre-made art)\n\nLarge collection of classic ASCII art organized by subject. Art is inside HTML `\u003Cpre>` tags. Fetch the page with curl, then extract art with a small Python snippet.\n\n**URL pattern:** `https:\u002F\u002Fascii.co.uk\u002Fart\u002F{subject}`\n\n**Step 1 — Fetch the page:**\n\n```bash\ncurl -s 'https:\u002F\u002Fascii.co.uk\u002Fart\u002Fcat' -o \u002Ftmp\u002Fascii_art.html\n```\n\n**Step 2 — Extract art from pre tags:**\n\n```python\nimport re, html\nwith open('\u002Ftmp\u002Fascii_art.html') as f:\n    text = f.read()\narts = re.findall(r'\u003Cpre[^>]*>(.*?)\u003C\u002Fpre>', text, re.DOTALL)\nfor art in arts:\n    clean = re.sub(r'\u003C[^>]+>', '', art)\n    clean = html.unescape(clean).strip()\n    if len(clean) > 30:\n        print(clean)\n        print('\\n---\\n')\n```\n\n**Available subjects** (use as URL path):\n- Animals: `cat`, `dog`, `horse`, `bird`, `fish`, `dragon`, `snake`, `rabbit`, `elephant`, `dolphin`, `butterfly`, `owl`, `wolf`, `bear`, `penguin`, `turtle`\n- Objects: `car`, `ship`, `airplane`, `rocket`, `guitar`, `computer`, `coffee`, `beer`, `cake`, `house`, `castle`, `sword`, `crown`, `key`\n- Nature: `tree`, `flower`, `sun`, `moon`, `star`, `mountain`, `ocean`, `rainbow`\n- Characters: `skull`, `robot`, `angel`, `wizard`, `pirate`, `ninja`, `alien`\n- Holidays: `christmas`, `halloween`, `valentine`\n\n**Tips:**\n- Preserve artist signatures\u002Finitials — important etiquette\n- Multiple art pieces per page — pick the best one for the user\n- Works reliably via curl, no JavaScript needed\n\n### Source B: GitHub Octocat API (fun easter egg)\n\nReturns a random GitHub Octocat with a wise quote. No auth needed.\n\n```bash\ncurl -s https:\u002F\u002Fapi.github.com\u002Foctocat\n```\n\n## Tool 8: Fun ASCII Utilities (via curl)\n\nThese free services return ASCII art directly — great for fun extras.\n\n### QR Codes as ASCII Art\n\n```bash\ncurl -s \"qrenco.de\u002FHello+World\"\ncurl -s \"qrenco.de\u002Fhttps:\u002F\u002Fexample.com\"\n```\n\n### Weather as ASCII Art\n\n```bash\ncurl -s \"wttr.in\u002FLondon\"          # Full weather report with ASCII graphics\ncurl -s \"wttr.in\u002FMoon\"            # Moon phase in ASCII art\ncurl -s \"v2.wttr.in\u002FLondon\"       # Detailed version\n```\n\n## Tool 9: LLM-Generated Custom Art (Fallback)\n\nWhen tools above don't have what's needed, generate ASCII art directly using these Unicode characters:\n\n### Character Palette\n\n**Box Drawing:** `╔ ╗ ╚ ╝ ║ ═ ╠ ╣ ╦ ╩ ╬ ┌ ┐ └ ┘ │ ─ ├ ┤ ┬ ┴ ┼ ╭ ╮ ╰ ╯`\n\n**Block Elements:** `░ ▒ ▓ █ ▄ ▀ ▌ ▐ ▖ ▗ ▘ ▝ ▚ ▞`\n\n**Geometric & Symbols:** `◆ ◇ ◈ ● ○ ◉ ■ □ ▲ △ ▼ ▽ ★ ☆ ✦ ✧ ◀ ▶ ◁ ▷ ⬡ ⬢ ⌂`\n\n### Rules\n\n- Max width: 60 characters per line (terminal-safe)\n- Max height: 15 lines for banners, 25 for scenes\n- Monospace only: output must render correctly in fixed-width fonts\n\n## Decision Flow\n\n1. **Text as a banner** → pyfiglet if installed, otherwise asciified API via curl\n2. **Wrap a message in fun character art** → cowsay\n3. **Add decorative border\u002Fframe** → boxes (can combine with pyfiglet\u002Fasciified)\n4. **Art of a specific thing** (cat, rocket, dragon) → ascii.co.uk via curl + parsing\n5. **Convert an image to ASCII** → ascii-image-converter or jp2a\n6. **QR code** → qrenco.de via curl\n7. **Weather\u002Fmoon art** → wttr.in via curl\n8. **Something custom\u002Fcreative** → LLM generation with Unicode palette\n9. **Any tool not installed** → install it, or fall back to next option\n",{"name":5,"author":23,"license":14,"version":24,"metadata":25,"platforms":40,"description":7,"dependencies":44},"0xbyt4, Hermes Agent","4.0.0",{"hermes":26},{"tags":27,"related_skills":38},[28,29,30,31,32,33,34,35,36,37],"ASCII","Art","Banners","Creative","Unicode","Text-Art","pyfiglet","figlet","cowsay","boxes",[39],"excalidraw",[41,42,43],"linux","macos","windows",[],"main","ae2ca524f5786df8576ef1175920838fcfc01a89","skills\u002Fcreative\u002Fascii-art",0,"https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent","https:\u002F\u002Fgithub.com\u002Fzeno-sys","2026-05-20 18:12:15",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add zeno-sys\u002Fzeno-agent --skill ascii-art",{"tool":58,"command":59},"bunx","bunx skills add zeno-sys\u002Fzeno-agent --skill ascii-art",{"tool":61,"command":62},"pnpm","pnpm dlx skills add zeno-sys\u002Fzeno-agent --skill ascii-art","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fcreative\u002Fascii-art\u002FSKILL.md",true,[],[67,74,81,88,95,102],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":18},"01M734BHV6YF8DN327CQPNCSH7","research-paper-writing","Write ML papers for NeurIPS\u002FICML\u002FICLR: design→submit.","https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fresearch-paper-writing\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":18},"01M734BBN84NDHRWKVVMFYD3KX","polymarket","Query Polymarket: markets, prices, orderbooks, history.","https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fpolymarket\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":18},"01M734B8JSFQ1YAHVMTBSCH96Y","llm-wiki","Karpathy's LLM Wiki: build\u002Fquery interlinked markdown KB.","https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fllm-wiki\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":18},"01M734B492XPV8FZM3J4TQ989G","blogwatcher","Monitor blogs and RSS\u002FAtom feeds via blogwatcher-cli tool.","https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fblogwatcher\u002FSKILL.md",[],[],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":18},"01M734B0Q6404HDY00M0EDW6BD","arxiv","Search arXiv papers by keyword, author, category, or ID.","https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Farxiv\u002FSKILL.md",[],[],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":18},"01M734AXW0N93EG6ZPW4GTMBGN","github-repo-management","Clone\u002Fcreate\u002Ffork repos; manage remotes, releases.","https:\u002F\u002Fgithub.com\u002Fzeno-sys\u002Fzeno-agent\u002Fblob\u002Fmain\u002Fskills\u002Fgithub\u002Fgithub-repo-management\u002FSKILL.md",[],[]]