Terminal Screenshot
MUST be used right after changing any CLI color config (delta/bat/themes/lazygit pager)...
Install
npx skills add daymade/claude-code-skills --skill terminal-screenshot -g -a claude-code -y- Repository
- daymade/claude-code-skills1.5k
- Category
- AI and agents
- Updated
- 3d ago
- License
- MIT
- Context cost
- Mediumabout 1,523 tokens
- Runs scripts
- Yes, review before use
What it does
MUST be used right after changing any CLI color config (delta/bat/themes/lazygit pager), renders the terminal's colored output to a PNG so Claude can actually SEE contrast, alignment, and highlighting instead of raw ANSI codes. Use for delta git diff colors, bat syntax highlighting, starship prompt, eza/ls colors, or ripgrep matches. Trigger phrases: 看终端效果, 终端截图, 验证配色, terminal screenshot.
Terminal Screenshot
Render the colored output of a terminal command into a PNG image, then read that image to judge the result visually.
Why this exists
When a command's output arrives as a tool result, Claude sees plain text plus raw
escape codes like \x1b[48;2;92;30;34m, not the rendered colors. That makes it
impossible to honestly answer "is the diff's add/remove contrast strong enough?"
or "did this theme come out too dark?". Reading hex values is guessing. This skill
turns the output into an image so the judgement is based on what a human would
actually see on screen.
The method: capture, then render
Two separate steps. Keep them separate, that separation is the whole trick.
Step 1, Capture full-fidelity ANSI to a file
Most CLIs drop or downgrade colors when they detect they're not writing to a
real terminal (a pipe or a child process). Force full coloring and save to a
.ansi file. The exact flag depends on the tool, recipes below.
The single most important rule: never let the renderer run the command for you.
freeze --execute "git diff | delta" looks convenient but produces a degraded
result, delta (and lazygit, and anything that probes terminal capabilities) runs
inside freeze's child pty, detects a reduced environment, and silently drops its
background blocks, line-number column, and header box. Capture in a normal shell
first, render second.
Step 2, Render the ANSI file to PNG, then read it
Use the bundled wrapper, which prefers freeze and falls back to a stdlib
renderer + headless Chrome:
scripts/render_ansi.sh <input.ansi> <output.png> [background_hex]
Then read the PNG with the Read tool and judge the colors.
Background color must match the real terminal, or a dark theme verified on a white page looks wrong. On macOS with Ghostty:
ghostty +show-config --default | grep '^background' # e.g. 282c34 (the default)

