ascii-art

Converts text, images, or video to ASCII art with multiple styles and export formats. Use when the user asks to create ASCII art, convert images/videos to text art, or mentions ascii-art, braille art, or block art.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ascii-art" with this command: npx skills add neethanwu/ascii-art/neethanwu-ascii-art-ascii-art

ASCII Art Converter

Setup

Before first use, run the environment setup (idempotent, <1s after first run):

bash {{SKILL_DIR}}/scripts/setup.sh

Input Detection

  1. File path → check extension: .jpg/.jpeg/.png/.webp/.bmp/.tiffimage, .mp4/.webm/.avi/.mov/.mkvvideo, .gif → check if animated (video) or static (image)
  2. Pasted/attached imagesave IMMEDIATELY before doing anything else. Run:
    {{SKILL_DIR}}/scripts/.venv/bin/python {{SKILL_DIR}}/scripts/save_image.py --clipboard
    
    This grabs the image from the system clipboard (still there after paste), saves to ascii/tmp/ with a timestamped name, and prints the saved path to stdout. Use that output path as --input. If --clipboard fails (no image in clipboard), fall back to asking: "Please provide the file path (e.g. ~/Downloads/photo.jpg)." You can also pass a known file path directly: save_image.py <path>. Do NOT proceed to options until you have a valid file path on disk.
  3. Plain text (no file, or file doesn't exist) → text (FIGlet banner)
  4. Nothing provided → ask what they want to convert

Options Prompt

Parse the user's message for pre-specified options. Then prompt for unspecified options using AskUserQuestion.

  • "defaults" or "just do it" → skip prompting, use all defaults
  • "random" or "surprise me" → skip prompting, use --random
  • All options specified → skip prompting

Use questions array (max 4 per call, 3 options per question). List ALL choices with numbers in the question text. Top 3 as selectable options — user can type any number/name in free-text. No "Other" option. Default as option 1.

Image/video — ask in two rounds:

  1. Round 1 (4 questions): Style → Color → Export → Background
  2. Round 2 (only if export is interactive or tsx): Mouse Mode → Animation

Text: Font → Color → Export → Background (single round).

Image/video options

OptionChoicesDefault
Styleclassic, braille, block, edge, dot-cross, halftone, particles, retro-art, terminalclassic
Colorgrayscale, original, matrix, amber, custom (hex/named)grayscale
Ratiooriginal, 16:9, 4:3, 1:1, 3:4, 9:16original
Backgrounddark, light, transparentdark
Dithernone, floyd-steinberg, bayer, atkinsonnone
Font size6-30 px14
Exportpng, html, svg, txt, md, clipboard, interactive, tsxauto (image→png, video→gif)
Mouse modepush, attractpush
Animationnone, noise-field, intervals, beam-sweep, glitch, crtnone

Mouse mode and animation only apply to interactive/tsx exports. Only ask when export is interactive or tsx. Don't ask for --hover-strength, --area-size, or --spread — use defaults.

Text options

OptionChoicesDefault
Fontstandard, doom, banner, slant, big, small, block, lean, mini, script, shadow, speed, ansi_shadow, ansi_regularstandard
Colorgrayscale, original, matrix, amber, customgrayscale
Backgrounddark, light, transparentdark
Exportterminal (stdout), txt, md, png, html, svg, clipboardterminal

Interactive/tsx exports require image or video input — text is not supported.

Disambiguation

  • "block" as a style = Unicode block elements (█▓▒░) for images
  • "block" as a font = block-letter FIGlet font for text
  • For block-style text art, use --font ansi_shadow or --font block
  • Custom colors: hex (#ff6600) or named (coral, skyblue). Translate creative descriptions to hex.

Running the Conversion

{{SKILL_DIR}}/scripts/.venv/bin/python {{SKILL_DIR}}/scripts/convert.py \
  --input "<input>" \
  --type <text|image|video> \
  --style <style> \
  --color <color> \
  --background <background> \
  --export <format> \
  [--dither <algorithm>] \
  [--ratio <ratio>] \
  [--font-size <pixels>] \
  [--cols <number>] \
  [--font <font_name>] \
  [--custom-color "<hex>"] \
  [--mouse-mode <push|attract>] \
  [--animation <preset>] \
  [--invert] [--random] \
  [--fps <number>] \
  [--filename <custom_name>]

Output

All files save to an ascii/ folder in the current working directory (created automatically).

  • Text (terminal): prints to stdout + auto-copies to clipboard. Show in a code block.
  • File exports (png, html, svg, txt, md, gif): show the file path. Use Read tool to display images inline.
  • Interactive HTML: show the file path. Suggest: open <path> to view in browser.
  • React TSX: show the file path. Show usage: import { AsciiArt } from './<filename>'
  • Never preview in terminal for image/video/interactive exports.

Error Handling

  • Video fails: likely missing ffmpeg or opencv. Suggest: pip install opencv-python-headless
  • Image fails: check file exists and is a valid image format
  • Interactive/tsx + text: prints error — interactive requires image/video input

Follow-up

After showing the result, offer to: try a different style/color, adjust settings, export in another format, or try random mode. Remember the previous input path for re-runs.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

release

No summary provided by upstream source.

Repository SourceNeeds Review
General

test_skill

import json import tkinter as tk from tkinter import messagebox, simpledialog

Archived SourceRecently Updated
General

错敏信息检测

1. 安装https://clawhub.ai/xxxx/sensitive-check-skill 这个技能 2. 调用错敏信息检测技能,传入参数 userKey=xxxx,content=xxxx

Archived SourceRecently Updated
General

neo

Browse websites, read web pages, interact with web apps, call website APIs, and automate web tasks. Use Neo when: user asks to check a website, read a web page, post on social media (Twitter/X), interact with any web app, look up information on a specific site, scrape data from websites, automate browser tasks, or when you need to call any website's API. Keywords: website, web page, browse, URL, http, API, twitter, tweet, post, scrape, web app, open site, check site, read page, social media, online service.

Archived SourceRecently Updated