Ascii Art
目次
- skill の情報
- 参考: SKILL.md 全文
- 道具 1: 文字のバナー(pyfiglet — ローカル)
- 準備
- 使い方
- おすすめのフォント
- こつ
- 道具 2: 文字のバナー(asciified API — 通信、導入不要)
- 使い方(terminal から curl で)
- こつ
- 道具 3: cowsay(吹き出しのアート)
- 準備
- 使い方
- 使えるキャラクター(50 種類以上)
- 目と舌を変える
- 道具 4: boxes(飾り枠)
- 準備
- 使い方
- pyfiglet や asciified と組み合わせる
- 道具 5: TOIlet(色付きの文字アート)
- 準備
- 使い方
- フィルタ
- 道具 6: 画像をアスキーアートに変換する
- 方法 A: ascii-image-converter(推奨、新しめ)
- 方法 B: jp2a(軽量、JPEG のみ)
- 道具 7: できあいのアスキーアートを探す
- 提供元 A: ascii.co.uk(できあいの作品ならここ)
- 提供元 B: GitHub の Octocat API(お遊びの隠し要素)
- 道具 8: 楽しい小ネタ(curl から)
- QR コードをアスキーアートで
- 天気をアスキーアートで
- 道具 9: LLM が自分で描く(最後の手段)
- 使える文字
- 決まりごと
- どれを使うか
アスキーアート: pyfiglet、cowsay、boxes、画像からの変換。
skill の情報
| 提供元 | 最初から入っています |
| パス | 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 |
| 関連 skill | excalidraw |
参考: SKILL.md 全文
ASCII Art の skill
用途ごとに複数の道具を使い分けます。どれもローカルの CLI か無料の REST API なので、API キーは要りません。
道具 1: 文字のバナー(pyfiglet — ローカル)
文字を大きなアスキーアートのバナーとして描きます。フォントは 571 種類が最初から入っています。
準備
pip install pyfiglet --break-system-packages -q使い方
python3 -m pyfiglet "YOUR TEXT" -f slant
python3 -m pyfiglet "TEXT" -f doom -w 80 # Set width
python3 -m pyfiglet --list_fonts # List all 571 fontsおすすめのフォント
| 雰囲気 | フォント | 向いている用途 |
|---|---|---|
| すっきり現代的 | slant |
プロジェクト名、見出し |
| 太くて塊感がある | doom |
タイトル、ロゴ |
| 大きくて読みやすい | big |
バナー |
| 昔ながらのバナー | banner3 |
横幅の広い画面 |
| 小さくまとまる | small |
副題 |
| サイバーパンク | cyberlarge |
技術系の題材 |
| 立体的に見える | 3-d |
起動画面 |
| ゴシック | gothic |
劇的な文字 |
こつ
- 2〜3 種類のフォントを見せて、利用者に好きなものを選んでもらいます
- 短い文字(1〜8 文字)は
doomやblockのような描き込みの多いフォントが映えます - 長い文字は
smallやminiのような小さくまとまるフォントのほうが読めます
道具 2: 文字のバナー(asciified API — 通信、導入不要)
文字をアスキーアートに変換する無料の REST API です。FIGlet のフォントが 250 種類以上あります。ただの文字列がそのまま返るので、解析の手間もありません。pyfiglet が入っていないときや、手軽に済ませたいときに使ってください。
使い方(terminal から curl で)
# Basic text banner (default font)
curl -s "https://asciified.thelicato.io/api/v2/ascii?text=Hello+World"
# With a specific font
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"
# List all available fonts (returns JSON array)
curl -s "https://asciified.thelicato.io/api/v2/fonts"こつ
- text の値では、空白を
+に置き換えます - 応答は JSON に包まれていない、そのまま表示できるアスキーアートです
- フォント名は大文字と小文字を区別します。正確な名前はフォント一覧のエンドポイントで確かめてください
- curl があればどの端末からでも使えます。Python も pip も要りません
道具 3: cowsay(吹き出しのアート)
文字を吹き出しに入れて、アスキーアートのキャラクターに喋らせる昔ながらの道具です。
準備
sudo apt install cowsay -y # Debian/Ubuntu
# brew install cowsay # macOS使い方
cowsay "Hello World"
cowsay -f tux "Linux rules" # Tux the penguin
cowsay -f dragon "Rawr!" # Dragon
cowsay -f stegosaurus "Roar!" # Stegosaurus
cowthink "Hmm..." # Thought bubble
cowsay -l # List all characters使えるキャラクター(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" # =_= eyes
cowsay -d "Dead" # x_x eyes
cowsay -g "Greedy" # $_$ eyes
cowsay -p "Paranoid" # @_@ eyes
cowsay -s "Stoned" # *_* eyes
cowsay -w "Wired" # O_O eyes
cowsay -e "OO" "Msg" # Custom eyes
cowsay -T "U " "Msg" # Custom tongue道具 4: boxes(飾り枠)
どんな文字でも、アスキーアートの飾り枠で囲みます。デザインは 70 種類以上が最初から入っています。
準備
sudo apt install boxes -y # Debian/Ubuntu
# brew install boxes # macOS使い方
echo "Hello World" | boxes # Default box
echo "Hello World" | boxes -d stone # Stone border
echo "Hello World" | boxes -d parchment # Parchment scroll
echo "Hello World" | boxes -d cat # Cat border
echo "Hello World" | boxes -d dog # Dog border
echo "Hello World" | boxes -d unicornsay # Unicorn
echo "Hello World" | boxes -d diamonds # Diamond pattern
echo "Hello World" | boxes -d c-cmt # C-style comment
echo "Hello World" | boxes -d html-cmt # HTML comment
echo "Hello World" | boxes -a c # Center text
boxes -l # List all 70+ designspyfiglet や asciified と組み合わせる
python3 -m pyfiglet "HERMES" -f slant | boxes -d stone
# Or without pyfiglet installed:
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" # Basic text art
toilet -f bigmono12 "Hello" # Specific font
toilet --gay "Rainbow!" # Rainbow coloring
toilet --metal "Metal!" # Metallic effect
toilet -F border "Bordered" # Add border
toilet -F border --gay "Fancy!" # Combined effects
toilet -f pagga "Block" # Block-style font (unique to toilet)
toilet -F list # List available filtersフィルタ
crop, gay (rainbow), metal, flip, flop, 180, left, right, border
補足: toilet は色を ANSI のエスケープコードで出力します。端末では色が付きますが、そうでない場所(ただのテキストファイル、一部のチャットなど)ではうまく表示されないことがあります。
道具 6: 画像をアスキーアートに変換する
画像(PNG、JPEG、GIF、WEBP)をアスキーアートに変換します。
方法 A: ascii-image-converter(推奨、新しめ)
# Install
sudo snap install ascii-image-converter
# OR: go install github.com/TheZoraiz/ascii-image-converter@latestascii-image-converter image.png # Basic
ascii-image-converter image.png -C # Color output
ascii-image-converter image.png -d 60,30 # Set dimensions
ascii-image-converter image.png -b # Braille characters
ascii-image-converter image.png -n # Negative/inverted
ascii-image-converter https://url/image.jpg # Direct URL
ascii-image-converter image.png --save-txt out # Save as text方法 B: jp2a(軽量、JPEG のみ)
sudo apt install jp2a -y
jp2a --width=80 image.jpg
jp2a --colors image.jpg # Colorized道具 7: できあいのアスキーアートを探す
Web で集められたアスキーアートを探します。terminal から curl を使ってください。
提供元 A: ascii.co.uk(できあいの作品ならここ)
昔ながらのアスキーアートを題材ごとにまとめた大きな作品集です。作品は HTML の <pre> タグの中にあります。curl でページを取ってきて、短い Python で作品を取り出します。
URL の形: https://ascii.co.uk/art/{subject}
手順 1 — ページを取ってくる:
curl -s 'https://ascii.co.uk/art/cat' -o /tmp/ascii_art.html手順 2 — pre タグから作品を取り出す:
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
こつ:
- 作者の署名や頭文字は消さないでください。作法として大事なところです
- 1 ページに複数の作品があります。利用者に合うものを選んでください
- curl で確実に取れます。JavaScript は要りません
提供元 B: GitHub の Octocat API(お遊びの隠し要素)
GitHub の Octocat と気の利いた一言をランダムに返します。認証は不要です。
curl -s https://api.github.com/octocat道具 8: 楽しい小ネタ(curl から)
これらの無料サービスは、アスキーアートをそのまま返します。ちょっとした遊びに向いています。
QR コードをアスキーアートで
curl -s "qrenco.de/Hello+World"
curl -s "qrenco.de/https://example.com"天気をアスキーアートで
curl -s "wttr.in/London" # Full weather report with ASCII graphics
curl -s "wttr.in/Moon" # Moon phase in ASCII art
curl -s "v2.wttr.in/London" # Detailed version道具 9: LLM が自分で描く(最後の手段)
上のどの道具にも欲しいものがないときは、次の Unicode の文字を使って自分でアスキーアートを描きます。
使える文字
罫線: ╔ ╗ ╚ ╝ ║ ═ ╠ ╣ ╦ ╩ ╬ ┌ ┐ └ ┘ │ ─ ├ ┤ ┬ ┴ ┼ ╭ ╮ ╰ ╯
ブロック: ░ ▒ ▓ █ ▄ ▀ ▌ ▐ ▖ ▗ ▘ ▝ ▚ ▞
図形と記号: ◆ ◇ ◈ ● ○ ◉ ■ □ ▲ △ ▼ ▽ ★ ☆ ✦ ✧ ◀ ▶ ◁ ▷ ⬡ ⬢ ⌂
決まりごと
- 横幅は 1 行 60 文字まで(端末で崩れない範囲)
- 高さはバナーで 15 行、場面を描くなら 25 行まで
- 等幅であること。等幅フォントで正しく表示できる形にします
どれを使うか
- 文字をバナーにしたい → pyfiglet があればそれを、なければ curl から asciified API を使う
- メッセージをキャラクターのアートに入れたい → cowsay
- 飾り枠を付けたい → boxes(pyfiglet や asciified と組み合わせられます)
- 特定のもののアートが欲しい(猫、ロケット、竜など) → curl で ascii.co.uk から取って解析する
- 画像をアスキーアートにしたい → ascii-image-converter か jp2a
- QR コード → curl で qrenco.de
- 天気や月のアート → curl で wttr.in
- もっと自由に作りたい → Unicode の文字を使って LLM が描く
- 必要な道具が入っていない → 導入するか、次の選択肢に移る