Terminal Screenshot (ANSI → PNG)
Renders a CLI program's colored terminal output into a PNG so Claude can visually judge colors, contrast and alignment instead of guessing from hex codes.
What it does
By default Claude only receives plain text plus raw escape codes like \x1b[48;2;92;30;34m, never the rendered colors. That makes it impossible to honestly answer "is the add/remove contrast in this diff strong enough?" or "did this theme come out too dark?".
This skill solves it in two deliberately separate steps:
- Capture — run the command in a real shell with
--color=always,CLICOLOR_FORCE=1, orscript -q /dev/nulland save a full-fidelity.ansifile. - Render — call the bundled
scripts/render_ansi.shto produce a PNG (prefersfreeze, falls back toansi2html.py+ headless Chrome), then read the image and judge the colors visually.
The golden rule: never let the renderer run the command (freeze --execute "git diff | delta"), because tools like delta detect the reduced child pty and silently drop background blocks, line numbers and header boxes. Also pass your real terminal background (e.g. #282c34) so contrast is judged fairly.
Who it's for
- Developers tuning CLI color configs: delta, bat, eza, starship, lazygit's pager.
- Anyone verifying dark/light theme readability against what a human actually sees.
- People debugging highlighting or alignment glitches in terminal tools with Claude.
Examples
- Verify a delta color change:
git --no-pager diff | delta --dark --line-numbers --width=110 > /tmp/diff.ansi, thenrender_ansi.sh /tmp/diff.ansi /tmp/diff.png "#282c34"and inspect the image for add/remove contrast. - Compare bat themes: capture the same source file under several themes, render each to PNG, and pick the most readable one.
- Check lazygit diff colors: full-screen TUIs are out of scope, so render
git diff | deltain isolation (lazygit uses the same delta config) as an indirect check.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the daymade-claude-code/terminal-screenshot folder from the GitHub repo daymade/claude-code-skills into my ~/.claude/skills/terminal-screenshot/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/daymade/claude-code-skills.git && mkdir -p ~/.claude/skills && cp -r claude-code-skills/daymade-claude-code/terminal-screenshot ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and clone the repo:
git clone https://github.com/daymade/claude-code-skills.git - Copy the skill into your Claude skills folder:
mkdir -p ~/.claude/skills && cp -r claude-code-skills/daymade-claude-code/terminal-screenshot ~/.claude/skills/ - Make the script executable:
chmod +x ~/.claude/skills/terminal-screenshot/scripts/render_ansi.sh - (Recommended) Install the renderer:
brew install charmbracelet/tap/freezeorgo install github.com/charmbracelet/freeze@latest. ⚠️ Do NOT run plainbrew install freeze— that's an unrelated GUI cask. - If freeze isn't available, just make sure Chrome/Chromium is installed; the wrapper falls back to
ansi2html.py+ headless Chrome automatically. - Note your terminal's background color, e.g. for Ghostty:
ghostty +show-config --default | grep '^background'. - Restart Claude Code and ask something like "take a terminal screenshot to verify my delta colors".