skills/show-image/SKILL.md
Display images in the user's terminal using timg or chafa. Use this skill whenever the user asks to show, display, preview, or view image files in the terminal — even if they don't mention timg or chafa. Also use when the user wants to visually inspect screenshots, photos, icons, diagrams, or any image files from the command line. Works with single images or multiple images (grid view, side-by-side comparison).
npx skillsauth add luan/dot-claude show-imageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Claude's Bash tool output cannot render terminal graphics — escape sequences get stripped. Build the correct command and copy it to the user's clipboard so they can paste and run it.
Verify the image file(s) exist, then detect the terminal and available tools:
echo "TERM_PROGRAM=$TERM_PROGRAM TERM=$TERM TMUX=${TMUX:+yes}" && which timg chafa 2>/dev/null
Prefer timg over chafa — it auto-detects protocols better and has built-in grid layout.
| Terminal signal | timg flag | chafa flags |
|---|---|---|
| ghostty or kitty, no tmux | (none, auto-detect works) | --format kitty |
| ghostty or kitty, in tmux | -pk | --format kitty --passthrough tmux |
| iTerm.app, no tmux | (none) | --format iterm |
| iTerm.app, in tmux | -pk | --format kitty --passthrough tmux |
| unknown / other | -pq | --format symbols |
The tmux override matters because auto-detection often fails there, falling back to low-res output when the terminal actually supports kitty graphics through tmux passthrough.
Terminal signals: TERM_PROGRAM=ghostty or TERM=xterm-ghostty → ghostty. TERM=xterm-kitty → kitty. TERM_PROGRAM=iTerm.app → iTerm2. TMUX set → inside tmux.
Always single-quote file paths (double-quote if path contains ').
timg — single image:
timg [-pk] '/path/to/image.png'
timg — multiple images:
timg [-pk] --grid=3 --title '/a.png' '/b.png' '/c.png'
# Or for a directory:
timg [-pk] --grid=4 --title '/path/to/images/*'
Useful timg options: -W (fit width), -g WxH (exact cell size), --frames=1 (still frame for GIFs), --center (center in grid).
chafa — single image (fallback only):
chafa --format <fmt> [--passthrough tmux] '/path/to/image.png'
chafa — multiple images (no grid support, use a loop):
for f in '/a.png' '/b.png' '/c.png'; do echo "--- $f ---"; chafa --format <fmt> "$f"; done
--format — auto-detection picks wrong protocols and produces garbage--format sixels inside tmux — no sixel passthrough support--size with pixel formats (kitty/iterm/sixels) — it's character cells not pixels, easy to distortecho -n '<the command>' | pbcopy # macOS
echo -n '<the command>' | xclip -sel c # Linux
Tell the user: "Copied to clipboard — paste and run in your terminal." Include the command text in your message so they can see what they're running.
tools
Tree-sitter indexed code navigator (ct sym CLI). Use INSTEAD OF Read/Grep/Glob/Bash when exploring existing code, understanding how something works, locating a symbol, tracing the call graph up (impact) or down (trace), finding implementations of an interface, scoping a diff to one symbol, or preparing to edit code you have not read yet. Triggers: 'how does X work', 'explain this class/file/symbol', 'walk me through X', 'what does X do', 'where is X defined', 'who calls X', 'what does X call', 'find implementations of', 'what breaks if I change X', 'outline this file', 'map imports', 'show me this symbol', exploring unfamiliar repo, tracing call graph, scoping diff to a symbol, preparing to edit code I haven't read, about to Read a file over ~500 lines to understand it. Do NOT use for: writing new code from scratch, editing prose or config, running tests, or when a stack trace already names the file and line.
development
Fully autonomous development workflow from prompt to commit. Chains spec → develop → review → commit. Triggers: /vibe, 'vibe this', 'autonomous workflow', 'just do it all', 'build this end-to-end', 'full pipeline', 'handle everything'.
development
Comprehensive vault maintenance — cross-references blueprints against codebase state to produce a maintenance plan: archive consumed artifacts, audit docs for staleness, propose new docs for undocumented stable systems. Triggers: 'vault sweep', 'sweep the vault', 'clean up vault', 'vault maintenance', 'what can we archive', 'audit blueprints', 'vault hygiene', 'blueprint cleanup'. Use whenever the user wants a holistic view of vault health rather than archiving a single artifact (that's /archive). Also use when the user asks what's stale, what needs docs, or whether artifacts can be cleaned up.
development
Analyze current diff, classify changes by risk, and produce structured manual test plan. Triggers: 'test plan', 'what should I test', 'manual testing', 'verification steps', 'QA checklist'. Exits early for trivial changes. Do NOT use when: writing automated tests — use /develop with TDD. Do NOT use when: reviewing code quality — use /crit instead.