Handsontable Visual Test Demos
handsontable/handsontable
Explains how to add or change the demo pages that Handsontable's visual regression suite photographs, including per-feature routes in the js demo and the shared grid.
Captures baseline and current screenshots of the Keybase desktop app and compares them with ImageMagick to find pixel-level regressions between branches or edits.
$ npx skills add keybase/client --skill visual-diff -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install keybase/client visual-diff --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/keybase/client.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill/visual-diff .claude/skills/visual-diff && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "visual-diff" agent skill from https://github.com/keybase/client/tree/master/skill/visual-diff into .claude/skills/visual-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-diff", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/keybase/client/tree/master/skill/visual-diffType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add keybase/client --skill visual-diff -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install keybase/client visual-diff --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/keybase/client.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill/visual-diff .agents/skills/visual-diff && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "visual-diff" agent skill from https://github.com/keybase/client/tree/master/skill/visual-diff into .agents/skills/visual-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-diff", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add keybase/client --skill visual-diff -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install keybase/client visual-diff --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/keybase/client.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill/visual-diff .cursor/skills/visual-diff && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "visual-diff" agent skill from https://github.com/keybase/client/tree/master/skill/visual-diff into .cursor/skills/visual-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-diff", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/keybase/client.git --path skill/visual-diff--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add keybase/client --skill visual-diff -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install keybase/client visual-diff --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/keybase/client.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill/visual-diff .gemini/skills/visual-diff && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "visual-diff" agent skill from https://github.com/keybase/client/tree/master/skill/visual-diff into .gemini/skills/visual-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-diff", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install keybase/client visual-diffInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add keybase/client --skill visual-diff -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/keybase/client.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill/visual-diff .github/skills/visual-diff && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "visual-diff" agent skill from https://github.com/keybase/client/tree/master/skill/visual-diff into .github/skills/visual-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-diff", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add keybase/client --skill visual-diff -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install keybase/client visual-diff --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/keybase/client.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill/visual-diff .opencode/skills/visual-diff && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "visual-diff" agent skill from https://github.com/keybase/client/tree/master/skill/visual-diff into .opencode/skills/visual-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-diff", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
visual-diffCaptures baseline and current screenshots of the Keybase desktop app and compares them with ImageMagick to find pixel-level regressions between branches or edits.
This skill runs a visual regression test on the desktop app. With the app started using `KB_ENABLE_REMOTE_DEBUG=1 yarn desktop:start:hot` and ImageMagick installed, the agent captures baseline screenshots on the base branch and current ones after your change, then compares them. The preferred route is the scripts under `shared/perf`; the manual route attaches playwright-cli to the app over its debug port and screenshots each tab: People, Chat, Files, Crypto, Teams, Git, Devices and Settings.
Diff images mark differences in red, and the skill explains how to read them. Faint scattered dots under 200 pixels are font antialiasing, and changing avatars, timestamps and badges are dynamic content; both can be ignored. Solid red icons or text areas point to a color regression, red outlines or doubled shapes to a size or position shift. Images are resized with sips before reading to save tokens, and a typical session is take baseline, change code, compare, then summarize which tabs changed.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 81e93d6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodeyarnbrewFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use yarn, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Visual Diff Screenshot Comparison loads about 740 tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 290 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from keybase/client at commit 81e93d6, republished under its BSD-3-Clause licence (© keybase). 290 words, ~740 tokens.
.claude/skills/visual-diff/SKILL.md (or your agent's skills folder).Run a visual regression test by capturing baseline and current screenshots of the app, then comparing them with ImageMagick to find pixel-level differences.
KB_ENABLE_REMOTE_DEBUG=1 yarn desktop:start:hotbrew install imagemagick)# 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.shPLAYWRIGHT_MCP_CDP_ENDPOINT=http://localhost:9222 playwright-cli open --persistent, then tab-list and tab-select the row whose URL contains main.html.playwright-cli click or eval. snapshot reads the first CDP page (usually the menubar), not the selected tab, so locate elements with eval.playwright-cli screenshot --filename=/tmp/visual-diff/<baseline|current>/<tab>.png.cd shared && ./perf/visual-diff-compare.sh.After comparison, read the diff images to evaluate:
sips -Z 800 /tmp/visual-diff/diff/<tab>.png --out /tmp/visual-diff-resized/<tab>.pngRed pixels indicate differences between baseline and current screenshots.
Box2 adding alignSelf: 'center' where old code used <div>.© keybase, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skill/visual-diff of keybase/client.
Open the folder on GitHubat commit 81e93d6
Visual Diff Screenshot Comparison next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Visual Diff Screenshot Comparison this skillkeybase/client | 9.3k | — | ~740 | Automated safety check: Pass | BSD-3-Clause | |
| Handsontable Visual Test Demoshandsontable/handsontable | 22k | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Kc Screenshotimran31415/kube-coder | 388 | — | ~870 | Automated safety check: Notes | MIT | |
| Handsontable Visual Testinghandsontable/handsontable | 22k | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Visual Testing Advancedproffesor-for-testing/agentic-qe | 494 | — | ~2k | Automated safety check: Pass | MIT | |
| UI Visual DebuggingNangoHQ/nango | 13k | — | ~1.3k | Automated safety check: Pass | Custom licence |
handsontable/handsontable
Explains how to add or change the demo pages that Handsontable's visual regression suite photographs, including per-feature routes in the js demo and the shared grid.
imran31415/kube-coder
Capture desktop + mobile, dark + light screenshots of the kube-coder dashboard SPA for visual QA of a UI change.
handsontable/handsontable
Guide to Playwright visual regression tests in Handsontable: when a screenshot is justified, the tablePage fixture, naming, reg-suit comparison and demo routes.
proffesor-for-testing/agentic-qe
Advanced visual regression testing with pixel-perfect comparison, AI-powered diff analysis, responsive design validation, and cross-browser visual consistency.
NangoHQ/nango
A skill your agent uses when modifying or visually debugging Nango frontend UI, including packages/webapp, packages/connect-ui, browser interactions, screenshots, and visual regressions.
bitovi/ai-enablement-prompts
Extract and compare computed CSS styles between a baseline URL and a dev/Storybook URL using Playwright MCP evaluate calls.
keybase/client
Analyzes V8, Chrome and Electron .heapsnapshot files with Node scripts to find memory leaks, detached DOM nodes and the retainer paths that keep objects alive.
keybase/client
Analyzes Chrome or Electron DevTools Performance trace exports with Python scripts to find where render time actually goes, without opening DevTools.
keybase/client
Captures a clean Keybase service log and analyzes it for redundant, duplicated or looping RPCs, then checks whether a caching fix reduced the calls.
keybase/client
Parses a React DevTools Profiler JSON export with Python scripts to find re-render storms, commit fan-out and why a component rendered, without opening the DevTools UI.
keybase/client
Fetches GitHub Copilot review feedback from inline threads and review bodies, checks each finding against the code and fixes the valid ones.
keybase/client
Takes a screenshot of a running Electron desktop app through playwright-cli over remote debugging, shrinks it and shows it so you can check the UI visually.
Works with
Categories
Captures baseline and current screenshots of the Keybase desktop app and compares them with ImageMagick to find pixel-level regressions between branches or edits. This skill runs a visual regression test on the desktop app. With the app started using `KB_ENABLE_REMOTE_DEBUG=1 yarn desktop:start:hot` and ImageMagick installed, the agent captures baseline screenshots on the base branch and current ones after your change, then compares them.
Visual Diff Screenshot Comparison fits situations like: checking a UI change for visual regressions before merging; comparing the desktop app's appearance between two branches; taking a baseline before a refactor of shared components; deciding whether red pixels in a diff are noise or a real bug.
Run `npx skills add keybase/client --skill visual-diff -a claude-code`. Or copy the skill folder (skill/visual-diff in keybase/client) into .claude/skills/visual-diff in your project. Claude Code loads it when a task matches its description.
Run `npx skills add keybase/client --skill visual-diff -a codex`. Or copy the skill folder (skill/visual-diff in keybase/client) into .agents/skills/visual-diff in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add keybase/client --skill visual-diff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/visual-diff, .gemini/skills/visual-diff, .github/skills/visual-diff and .opencode/skills/visual-diff in your project.
Going by SKILL.md and its folder, Visual Diff Screenshot Comparison needs the command-line tools its instructions call (node, yarn and brew). Our summary lists: The desktop app running with `KB_ENABLE_REMOTE_DEBUG=1`; ImageMagick; Node and yarn to run the capture scripts.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Visual Diff Screenshot Comparison is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 740 tokens (SKILL.md is roughly 3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Visual Diff Screenshot Comparison: Handsontable Visual Test Demos (handsontable/handsontable, 22k stars), Kc Screenshot (imran31415/kube-coder, 388 stars), Handsontable Visual Testing (handsontable/handsontable, 22k stars) and Visual Testing Advanced (proffesor-for-testing/agentic-qe, 494 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
keybase (a GitHub organization) maintains it in keybase/client, which has 9,257 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: keybase/client on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.