Ascii Art

ASCII-арт: pyfiglet, cowsay, boxes, image-to-ascii.

Метаданные навыка

ИсточникОпциональный — устанавливается командой hermes skills install official/creative/ascii-art
Путьoptional-skills/creative/ascii-art
Версия4.0.0
Автор0xbyt4, Hermes Agent
ЛицензияMIT
Платформыlinux, macos, windows
ТегиASCII, Art, Banners, Creative, Unicode, Text-Art, pyfiglet, figlet, cowsay, boxes
Связанные навыкиexcalidraw

Справочник: полный SKILL.md

инфо

Ниже — полное определение навыка, которое Hermes загружает при его активации. Именно это агент видит как инструкцию, когда навык включён.

Навык ASCII Art

Несколько инструментов под разные задачи ASCII-арта. Все они — локальные CLI-программы или бесплатные REST API, ключи доступа не нужны.

Инструмент 1: текстовые баннеры (pyfiglet — локально)

Рендерит текст в крупный ASCII-баннер. 571 встроенный шрифт.

Установка

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

Использование

python -m pyfiglet "YOUR TEXT" -f slant
python -m pyfiglet "TEXT" -f doom -w 80    # Задать ширину
python -m pyfiglet --list_fonts             # Список всех 571 шрифта

Рекомендуемые шрифты

СтильШрифтХорошо подходит для
Чистый и современныйslantНазвания проектов, заголовки
Жирный и блочныйdoomТитулы, логотипы
Крупный и читаемыйbigБаннеры
Классический баннерbanner3Широкие экраны
КомпактныйsmallПодзаголовки
КиберпанкcyberlargeТехнологичные темы
3D-эффект3-dЗаставки
ГотикаgothicДраматичный текст

Советы

  • Покажи 2–3 шрифта и дай пользователю выбрать понравившийся
  • Короткий текст (1–8 символов) лучше смотрится в детализированных шрифтах вроде doom или block
  • Длинный текст лучше смотрится в компактных шрифтах вроде small или mini

Инструмент 2: текстовые баннеры (API asciified — удалённо, без установки)

Бесплатный REST API, превращающий текст в ASCII-арт. Более 250 шрифтов FIGlet. Возвращает обычный текст напрямую — парсить ничего не нужно. Используй, если pyfiglet не установлен, или как быстрый вариант.

Использование (через curl в терминале)

# Базовый текстовый баннер (шрифт по умолчанию)
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello+World"

# С конкретным шрифтом
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"

# Список всех доступных шрифтов (возвращает JSON-массив)
curl -s "https://asciified.thelicato.io/api/v2/fonts"

Советы

  • Пробелы в параметре text кодируй как +
  • Ответ — обычный ASCII-арт текстом, без обёртки в JSON, готов к выводу сразу
  • Названия шрифтов чувствительны к регистру; точные имена бери из эндпоинта fonts
  • Работает из любого терминала с curl — Python и pip не нужны

Инструмент 3: Cowsay (текст-арт с персонажем)

Классический инструмент, оборачивающий текст в облако речи с ASCII-персонажем.

Установка

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

Использование

cowsay "Hello World"
cowsay -f tux "Linux rules"       # Пингвин Tux
cowsay -f dragon "Rawr!"          # Дракон
cowsay -f stegosaurus "Roar!"     # Стегозавр
cowthink "Hmm..."                  # Облако мыслей
cowsay -l                          # Список всех персонажей

Доступные персонажи (более 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

Модификаторы глаз и языка

cowsay -b "Borg"       # Глаза =_=
cowsay -d "Dead"       # Глаза x_x
cowsay -g "Greedy"     # Глаза $_$
cowsay -p "Paranoid"   # Глаза @_@
cowsay -s "Stoned"     # Глаза *_*
cowsay -w "Wired"      # Глаза O_O
cowsay -e "OO" "Msg"   # Свои глаза
cowsay -T "U " "Msg"   # Свой язык

Инструмент 4: Boxes (декоративные рамки)

Рисует декоративные ASCII-рамки вокруг любого текста. Более 70 встроенных дизайнов.

Установка

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

Использование

echo "Hello World" | boxes                    # Рамка по умолчанию
echo "Hello World" | boxes -d stone           # Каменная рамка
echo "Hello World" | boxes -d parchment       # Свиток-пергамент
echo "Hello World" | boxes -d cat             # Рамка с котом
echo "Hello World" | boxes -d dog             # Рамка с собакой
echo "Hello World" | boxes -d unicornsay      # Единорог
echo "Hello World" | boxes -d diamonds        # Узор из ромбов
echo "Hello World" | boxes -d c-cmt           # Комментарий в стиле C
echo "Hello World" | boxes -d html-cmt        # HTML-комментарий
echo "Hello World" | boxes -a c               # Выровнять текст по центру
boxes -l                                       # Список всех 70+ дизайнов

Комбинируем с pyfiglet или asciified

python -m pyfiglet "HERMES" -f slant | boxes -d stone
# Или без установленного pyfiglet:
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=HERMES&font=Slant" | boxes -d stone

Инструмент 5: TOIlet (цветной текст-арт)

Похож на pyfiglet, но с ANSI-цветами и визуальными фильтрами. Отлично смотрится в терминале.

Установка

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

Использование

toilet "Hello World"                    # Базовый текст-арт
toilet -f bigmono12 "Hello"            # Конкретный шрифт
toilet --gay "Rainbow!"                 # Радужная раскраска
toilet --metal "Metal!"                 # Металлический эффект
toilet -F border "Bordered"             # Добавить рамку
toilet -F border --gay "Fancy!"         # Комбинация эффектов
toilet -f pagga "Block"                 # Блочный шрифт (есть только в toilet)
toilet -F list                          # Список доступных фильтров

Фильтры

crop, gay (радуга), metal, flip, flop, 180, left, right, border

Примечание: toilet выводит ANSI-escape-коды для цвета — они работают в терминале, но могут не отрисоваться в других контекстах (например, в обычных текстовых файлах или некоторых чат-платформах).

Инструмент 6: превращение изображения в ASCII-арт

Конвертирует изображения (PNG, JPEG, GIF, WEBP) в ASCII-арт.

Вариант A: ascii-image-converter (рекомендуется, современный)

# Установка
sudo snap install ascii-image-converter
# ИЛИ: go install github.com/TheZoraiz/ascii-image-converter@latest
ascii-image-converter image.png                  # Базовый вывод
ascii-image-converter image.png -C               # Цветной вывод
ascii-image-converter image.png -d 60,30         # Задать размеры
ascii-image-converter image.png -b               # Символы Брайля
ascii-image-converter image.png -n               # Негатив/инверсия
ascii-image-converter https://url/image.jpg      # Прямая ссылка
ascii-image-converter image.png --save-txt out   # Сохранить как текст

Вариант B: jp2a (лёгкий, только JPEG)

sudo apt install jp2a -y
jp2a --width=80 image.jpg
jp2a --colors image.jpg              # С цветом

Инструмент 7: поиск готового ASCII-арта

Ищет подобранные вручную ASCII-рисунки в сети. Используй terminal с curl.

Источник A: ascii.co.uk (рекомендуется для готового арта)

Большая коллекция классического ASCII-арта, рассортированная по темам. Рисунки лежат внутри HTML-тегов <pre>. Загрузи страницу через curl, затем извлеки арт небольшим Python-скриптом.

Шаблон URL: https://ascii.co.uk/art/{subject}

Шаг 1 — загрузить страницу:

curl -s 'https://ascii.co.uk/art/cat' -o ~/.hermes/cache/scratch/ascii_art.html

Шаг 2 — извлечь арт из тегов pre:

import os, re, html
with open(os.path.expanduser('~/.hermes/cache/scratch/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')

Доступные темы (используй как путь в URL):

  • Животные: cat, dog, horse, bird, fish, dragon, snake, rabbit, elephant, dolphin, butterfly, owl, wolf, bear, penguin, turtle
  • Предметы: car, ship, airplane, rocket, guitar, computer, coffee, beer, cake, house, castle, sword, crown, key
  • Природа: tree, flower, sun, moon, star, mountain, ocean, rainbow
  • Персонажи: skull, robot, angel, wizard, pirate, ninja, alien
  • Праздники: christmas, halloween, valentine

Советы:

  • Сохраняй подписи и инициалы авторов — это важный этикет
  • На странице обычно несколько рисунков — выбери лучший под запрос пользователя
  • Работает надёжно через curl, JavaScript не нужен

Источник B: GitHub Octocat API (забавное пасхальное яйцо)

Возвращает случайного GitHub-октокота с мудрой цитатой. Авторизация не нужна.

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

Инструмент 8: забавные ASCII-утилиты (через curl)

Эти бесплатные сервисы возвращают ASCII-арт напрямую — приятное дополнение для настроения.

QR-коды как ASCII-арт

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

Погода как ASCII-арт

curl -s "wttr.in/London"          # Полный прогноз погоды с ASCII-графикой
curl -s "wttr.in/Moon"            # Фаза Луны в ASCII-арте
curl -s "v2.wttr.in/London"       # Подробная версия

Инструмент 9: свой арт от LLM (запасной вариант)

Когда ничего из инструментов выше не подходит, генерируй ASCII-арт напрямую, используя эти символы Unicode:

Палитра символов

Рамки и линии: ╔ ╗ ╚ ╝ ║ ═ ╠ ╣ ╦ ╩ ╬ ┌ ┐ └ ┘ │ ─ ├ ┤ ┬ ┴ ┼ ╭ ╮ ╰ ╯

Блочные элементы: ░ ▒ ▓ █ ▄ ▀ ▌ ▐ ▖ ▗ ▘ ▝ ▚ ▞

Геометрия и символы: ◆ ◇ ◈ ● ○ ◉ ■ □ ▲ △ ▼ ▽ ★ ☆ ✦ ✧ ◀ ▶ ◁ ▷ ⬡ ⬢ ⌂

Правила

  • Максимальная ширина: 60 символов в строке (безопасно для терминала)
  • Максимальная высота: 15 строк для баннеров, 25 для сцен
  • Только моноширинный шрифт: вывод должен корректно отображаться в фиксированной ширине

Логика выбора

  1. Текст как баннер → pyfiglet, если установлен, иначе API asciified через curl
  2. Обернуть сообщение в забавного персонажа → cowsay
  3. Добавить декоративную рамку → boxes (можно комбинировать с pyfiglet/asciified)
  4. Арт конкретного объекта (кот, ракета, дракон) → ascii.co.uk через curl с разбором
  5. Превратить изображение в ASCII → ascii-image-converter или jp2a
  6. QR-код → qrenco.de через curl
  7. Погода/луна → wttr.in через curl
  8. Что-то своё, творческое → генерация LLM с палитрой Unicode
  9. Нужный инструмент не установлен → установи его или переходи к следующему варианту
перевод и редактура:

обновлено

⌕ ESC