Перейти к основному содержимому

Ascii Art

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

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

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

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

к сведению

Ниже приведено полное описание навыка, которое VibeOS загружает при его активации. Это те инструкции, которые видит агент, когда навык активен.

Навык ASCII Art

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

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

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

Установка​

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

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

python3 -m pyfiglet "ВАШ ТЕКСТ" -f slant
python3 -m pyfiglet "ТЕКСТ" -f doom -w 80 # Установка ширины
python3 -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"

Советы​

  • Кодируйте пробелы в URL как + в параметре 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​

python3 -m pyfiglet "VIBEOS" -f slant | boxes -d stone
# Или без установленного pyfiglet:
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=VIBEOS&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 # Прямой URL
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/{тема}

Шаг 1 — Загрузка страницы:

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

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

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')

Доступные темы (используйте как путь в 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 Octocat с мудрой цитатой. Авторизация не требуется.

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. Любой инструмент не установлен → установить его или перейти к следующему варианту