visual-diff
SkillDev toolsLets your agent compare screenshots to spot visual changes in a UI before and after code changes.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the visual-diff skill
About this capability
This skill should be used when the user asks to "compare screenshots", "visual diff", "check for visual regressions", "before and after screenshots", "did the UI change", or mentions comparing the desktop app UI between branches or before/after a change. Also triggered by "take baseline", "take curr
What this skill tells your AI
The instructions your AI receives, as published by keybase/client in skill/visual-diff/SKILL.md and read by ahel’s review.
Run a visual regression test by capturing baseline and current screenshots of the app, then comparing them with ImageMagick to find pixel-level differences.
Workflow
Prerequisites
- App running with
KB_ENABLE_REMOTE_DEBUG=1 yarn desktop:start:hot - ImageMagick installed (
brew install imagemagick)
Option A: Automated Scripts (preferred)
# Baseline (on base branch, app running)
cd shared && node perf/visual-diff-take.js baseline
# Current (on feature branch, app restarted)
cd shared && node perf/visual-diff-take.js current
# Compare
cd shared && ./perf/visual-diff-compare.sh
Option B: Playwright MCP (manual)
- Close the DevTools tab (
browser_tabsaction=close index=0), select the app tab. - Navigate to each tab (People, Chat, Files, Crypto, Teams, Git, Devices, Settings) via
browser_snapshot+browser_click. - Take screenshots to
/tmp/visual-diff/baseline/or/tmp/visual-diff/current/. - Run
cd shared && ./perf/visual-diff-compare.sh.
Viewing Results
After comparison, read the diff images to evaluate:
- Resize each diff image for token efficiency:
sips -Z 800 /tmp/visual-diff/diff/<tab>.png --out /tmp/visual-diff-resized/<tab>.png - Use the Read tool to display each resized diff image.
Interpreting Diffs
Red pixels indicate differences between baseline and current screenshots.
- Subpixel noise (<200px): Scattered faint red dots from font antialiasing. Safe to ignore.
- Dynamic content: Avatars, timestamps, badges change between runs. Safe to ignore.
- COLOR REGRESSION: Entire icons or text areas are solid red — colors changed (e.g. icon went blue → gray). Investigate.
- SIZE/POSITION REGRESSION: Red outlines or doubled shapes — something shifted. Common cause:
Box2addingalignSelf: 'center'where old code used<div>. - Rule of thumb: Clean text labels + solid red icons = real bug, not noise.
Typical Session
- User says "take baseline" → run the baseline capture step.
- User makes code changes and restarts app.
- User says "compare" or "take current" → run the current capture + comparison.
- Display diff images and summarize findings: which tabs changed, whether changes look intentional or are regressions.
Signals
- GitHub stars
- 9k
- Forks
- 1k
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
visual-diff- Source
- github.com/keybase/client