Screenmap
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
Drives the Expo showcase app in an iOS simulator with agent-device to sweep every UI Kitten component in all theme and mapping combinations, reporting regressions with evidence.
$ npx skills add akveo/react-native-ui-kitten --skill showcase-qa -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install akveo/react-native-ui-kitten showcase-qa --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/akveo/react-native-ui-kitten.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/showcase-qa .claude/skills/showcase-qa && 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 "showcase-qa" agent skill from https://github.com/akveo/react-native-ui-kitten/tree/master/.claude/skills/showcase-qa into .claude/skills/showcase-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "showcase-qa", 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/akveo/react-native-ui-kitten/tree/master/.claude/skills/showcase-qaType 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 akveo/react-native-ui-kitten --skill showcase-qa -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install akveo/react-native-ui-kitten showcase-qa --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akveo/react-native-ui-kitten.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/showcase-qa .agents/skills/showcase-qa && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "showcase-qa" agent skill from https://github.com/akveo/react-native-ui-kitten/tree/master/.claude/skills/showcase-qa into .agents/skills/showcase-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "showcase-qa", 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 akveo/react-native-ui-kitten --skill showcase-qa -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install akveo/react-native-ui-kitten showcase-qa --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akveo/react-native-ui-kitten.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/showcase-qa .cursor/skills/showcase-qa && 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 "showcase-qa" agent skill from https://github.com/akveo/react-native-ui-kitten/tree/master/.claude/skills/showcase-qa into .cursor/skills/showcase-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "showcase-qa", 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/akveo/react-native-ui-kitten.git --path .claude/skills/showcase-qa--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 akveo/react-native-ui-kitten --skill showcase-qa -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install akveo/react-native-ui-kitten showcase-qa --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akveo/react-native-ui-kitten.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/showcase-qa .gemini/skills/showcase-qa && 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 "showcase-qa" agent skill from https://github.com/akveo/react-native-ui-kitten/tree/master/.claude/skills/showcase-qa into .gemini/skills/showcase-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "showcase-qa", 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 akveo/react-native-ui-kitten showcase-qaInstalls 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 akveo/react-native-ui-kitten --skill showcase-qa -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/akveo/react-native-ui-kitten.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/showcase-qa .github/skills/showcase-qa && 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 "showcase-qa" agent skill from https://github.com/akveo/react-native-ui-kitten/tree/master/.claude/skills/showcase-qa into .github/skills/showcase-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "showcase-qa", 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 akveo/react-native-ui-kitten --skill showcase-qa -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install akveo/react-native-ui-kitten showcase-qa --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akveo/react-native-ui-kitten.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/showcase-qa .opencode/skills/showcase-qa && 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 "showcase-qa" agent skill from https://github.com/akveo/react-native-ui-kitten/tree/master/.claude/skills/showcase-qa into .opencode/skills/showcase-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "showcase-qa", 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.
showcase-qaDrives the Expo showcase app in an iOS simulator with agent-device to sweep every UI Kitten component in all theme and mapping combinations, reporting regressions with evidence.
The goal is an on-device regression sweep of the UI Kitten library through its Expo showcase app. After preconditions, the agent checks that agent-device is installed, starts Metro with yarn showcases:start, and builds and installs the app with yarn showcases:ios, picking an installed simulator runtime by UDID if the boot fails. The app's facts, such as bundle id and test IDs, live in the repo's AGENTS.md, which is read first.
It opens the showcase bundle on iOS with a relaunch and a QA session, treating any LogBox or RedBox overlay as the first finding. The app is one scroll view whose sections run from Layout and Button through Input, Card, List, Select, Modal and navigation components to Calendar, Datepicker and ViewPager. For each section the agent scrolls into view, saves a screenshot under .agent-device/qa named by mapping and theme, then interacts with settle and verifies from the diff, such as pressing buttons, filling inputs and checking that checkboxes, toggles and radios flip selected.
The skill also covers recording and replaying .ad scripts and verifying a component fix on device. It says to run agent-device doctor only when open fails and never to fetch the latest agent-device through npx.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e73dce6. 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:
yarnexpoxcruncurladbFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use yarn and curl, 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.
UI Kitten Showcase QA loads about 2.3k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,039 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 akveo/react-native-ui-kitten at commit e73dce6, republished under its MIT licence (© akveo). 1,039 words, ~2,286 tokens.
.claude/skills/showcase-qa/SKILL.md (or your agent's skills folder).Goal: drive the showcase app on a simulator, exercise every component section in all four
theme/mapping combinations, and report regressions with evidence. Facts about the app
(bundle id, test IDs, scripts) are in the repo AGENTS.md; read it first.
agent-device --version # must exist; never npx -y agent-device@latest
yarn showcases:start # Metro on :8081, background it (debug builds only)
yarn showcases:ios # prebuild + pod install + build + installIf expo run:ios fails with Unable to boot device because we cannot determine the runtime bundle, pick a simulator whose runtime is installed: xcrun simctl list devices available, boot it
by UDID with xcrun simctl boot <udid>, then pass --device <udid>.
Do not run agent-device doctor as routine prep. Run it only when open fails.
agent-device open com.uikitten.showcases --platform ios --relaunch --session qaopen returns the initial interactive snapshot. If it shows a LogBox/RedBox overlay, that is
finding #1: screenshot --overlay-refs, react-devtools errors, then
agent-device react-native dismiss-overlay and continue.
The app is one ScrollView (id="showcase-scroll"). Sections in order:
Layout, Button, ButtonGroup, Input, CheckBox, Toggle, Radio, RadioGroup, Card, Avatar, Spinner, ProgressBar, CircularProgressBar, Divider, Icon, List, ListItem, Menu, MenuItem, Select, SelectItem, Popover, Tooltip, OverflowMenu, Modal, TopNavigation, TopNavigationAction, BottomNavigation, BottomNavigationTab, Tab, TabBar, TabView, Drawer, DrawerItem, Calendar, RangeCalendar, Datepicker, RangeDatepicker, Autocomplete, ViewPager.
For each section:
agent-device scroll down --settle until id="section-<Name>-title" is in the diff
(or agent-device wait 'id="section-<Name>-title"' after a scroll).agent-device screenshot .agent-device/qa/<mapping>-<theme>/<Name>.png.--settle, and verify from the diff:fill text, check the value echoes; keyboard dismiss.selected flips (is selected <selector>).Repeat the sweep for each of: Eva/Light (default), Eva/Dark, Material/Light, Material/Dark.
Switch with press 'id="toggle-theme"' --settle and press 'id="toggle-mapping"' --settle;
confirm via get text 'id="theme-label"'. Compare the screenshot of each section across the
four combinations; a section that renders identically in light and dark, or that loses
borders/contrast, is a theming regression.
agent-device react-devtools status
agent-device react-devtools wait --connected
agent-device react-devtools profile start
# interact with the suspect section a few times
agent-device react-devtools profile stop
agent-device react-devtools profile rerenders --limit 10
agent-device react-devtools profile slow --limit 5Report render offenders separately from visual/interaction findings.
For a flow worth guarding, re-run it with recording armed and durable selectors (ids/labels,
not @refs), then commit the script under src/showcases/e2e/:
agent-device open com.uikitten.showcases --platform ios --relaunch --session rec \
--save-script src/showcases/e2e/<name>.ad
# ... steps using id="..." selectors and --settle ...
agent-device close --session recEvery script must start with context platform=ios (add context timeout= if needed) so
agent-device test can discover it. Run the suite: yarn e2e:ios.
Nodes exposed as [other] (CheckBox, Radio, MenuItem, SelectItem, calendar days, Datepicker
input) do not match label="..." or text="..." selectors. Use the @eN ref from the latest
snapshot -i, or find "<text>" press --first|--last.
press has no --first/--last; find and gesture have no --settle. After find ... press,
run wait stable.
A text field's placeholder is not its label. Focus it by ref, then type "<text>".
scroll <dir> <fraction> lands by scroll physics, not exact offset. Loop
is visible 'id="section-<Name>-title"' / scroll down 0.5 --settle instead of counting.
keyboard dismiss fails on iOS (no dismiss key). Tap a neutral area, never the header buttons
(toggle-theme / toggle-mapping sit at the top right and are easy to hit by accident).
Never start Metro with CI=1: Expo disables watch mode ("reloads are disabled") and every edit
after startup is silently ignored. Verify an edit landed by fetching the bundle:
curl -s 'http://127.0.0.1:8081/src/showcases/index.ts.bundle?platform=ios&dev=true' | grep -c <marker>.
Set AGENT_DEVICE_SESSION=qa in the shell rather than passing --session from a zsh variable;
unquoted $VAR is not word-split in zsh.
The iOS backend never exposes the selected trait: is selected errors on every element, even
the active BottomNavigation tab, and get attrs lists only type/label/value/rect. Verify
selection through visible state (label, value, diff) instead. Do not report "selected state
missing" from agent-device output alone.
Roles without a native iOS trait (checkbox, radio, menuitem) show as [other]. Check
snapshot --raw: React Native folds role + state into value, e.g.
"value":"checkbox, checked", which is what VoiceOver announces. That is RN's design, not a
library bug. Switch/button/text-field have native traits and show their own type.
A Card exposes its children as one grouped [other] node ("Welcome…, SHOW TOOLTIP, DISMISS").
find "DISMISS" press --first then taps the group's centre, not the button. Read the button's
position from a screenshot and press <x> <y> --settle.
Overlay content covers the header, so press 'id="toggle-theme"' while a Popover is open only
closes the Popover. Flip the theme first, then open the overlay and inspect its colours.
When two calendars are on screen (Calendar showcase + an open Datepicker), label="16" is
ambiguous; the error lists candidates with @eN~sM refs, and the later one is the picker's.
A bare @eN from an older snapshot may silently do nothing: prefer the ~s form it printed.
Closing a Tooltip by tapping "outside" must avoid the bubble itself; tap well below the anchor.
A TextInput focused inside a Modal makes the first tap on a nested Select option only blur
the input (Select's own list has no keyboardShouldPersistTaps). Tap twice or blur first.
Android emulator: if the app shows "Unable to load script" and logcat says
Failed to connect to /10.0.2.2:8081, the emulator's host NAT is down (no default route).
Cold-boot it (emulator -avd Pixel_7_API_34 -no-snapshot-load), run
adb reverse tcp:8081 tcp:8081 again (a fresh boot drops it), then
agent-device open com.uikitten.showcases --platform android --relaunch --metro-host localhost --metro-port 8081;
that flag is what sets debug_http_host (editing the pref by hand gets overwritten). Reloading
from the RedBox can leave a blank surface: force-stop and open again instead. A Release build is
no way out: agent-device refuses non-debuggable Android apps (run-as: package not debuggable).
expo run:android --device wants an AVD name (Pixel_7_API_34), not emulator-5554; with a
single running emulator, omit it.
agent-device close --session qa.
Report format (one bullet per finding, no praise):
<Component> · <mapping>/<theme> · <regression|visual|render|crash>: what was expected, what
happened, evidence path(s). Include the RN overlay text verbatim if one appeared.© akveo, MIT. 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 .claude/skills/showcase-qa of akveo/react-native-ui-kitten.
Open the folder on GitHubat commit e73dce6
UI Kitten Showcase QA 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 |
|---|---|---|---|---|---|---|
| UI Kitten Showcase QA this skillakveo/react-native-ui-kitten | 11k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Screenmapaleqsio/screenmap | 243 | — | ~7.2k | Automated safety check: Pass | MIT | |
| Expo Development on Limrunsuperset-sh/superset | 15k | — | ~3.6k | Automated safety check: Pass | Custom licence | |
| Live-Device iOS QAgarrytan/gstack | 136k | — | ~11k | Automated safety check: Notes | MIT | |
| Iapkit E2E Martiehyodotdev/openiap | 155 | — | ~5.4k | Automated safety check: Notes | MIT | |
| Mobile Demo Recordingsuperset-sh/superset | 15k | — | ~2.2k | Automated safety check: Notes | Custom licence |
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
superset-sh/superset
Sets up and runs Expo and React Native apps on Limrun remote iOS simulators and Android emulators, using dev-client builds for fast JS and TS iteration.
garrytan/gstack
Tests a SwiftUI app on a real iPhone connected by USB, reading the Swift source and then looping through screenshot, analysis and action to find bugs.
hyodotdev/openiap
Run IAPKit local receipt-validation E2E with the dev.hyo.martie React Native or Expo examples, the compiled packages/kit server, real Convex, and Apple or Google sandbox purchases.
superset-sh/superset
Runs the Superset mobile app on a headless iOS simulator against the local stack, drives it with Maestro and captures clean screen recordings and screenshots.
EveryInc/compound-engineering-plugin
Builds an iOS app, exercises it on a simulator with XcodeBuildMCP and reports PASS, FAIL or PARTIAL with screenshots, logs and per-screen evidence.
Works with
Categories
Drives the Expo showcase app in an iOS simulator with agent-device to sweep every UI Kitten component in all theme and mapping combinations, reporting regressions with evidence. The goal is an on-device regression sweep of the UI Kitten library through its Expo showcase app. After preconditions, the agent checks that agent-device is installed, starts Metro with yarn showcases:start, and builds and installs the app with yarn showcases:ios, picking an installed simulator runtime by UDID if the boot fails.
UI Kitten Showcase QA fits situations like: testing UI Kitten on an iOS simulator after a library change; hunting visual or interaction regressions across all components; verifying a component fix on device; recording or replaying .ad scripts for the showcase app.
Run `npx skills add akveo/react-native-ui-kitten --skill showcase-qa -a claude-code`. Or copy the skill folder (.claude/skills/showcase-qa in akveo/react-native-ui-kitten) into .claude/skills/showcase-qa in your project. Claude Code loads it when a task matches its description.
Run `npx skills add akveo/react-native-ui-kitten --skill showcase-qa -a codex`. Or copy the skill folder (.claude/skills/showcase-qa in akveo/react-native-ui-kitten) into .agents/skills/showcase-qa 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 akveo/react-native-ui-kitten --skill showcase-qa -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/showcase-qa, .gemini/skills/showcase-qa, .github/skills/showcase-qa and .opencode/skills/showcase-qa in your project.
Going by SKILL.md and its folder, UI Kitten Showcase QA needs the command-line tools its instructions call (yarn, expo, xcrun, curl and adb). Our summary lists: The agent-device CLI; Yarn and the UI Kitten repository with its Expo showcase app; An iOS simulator with its runtime installed.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. 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.
UI Kitten Showcase QA is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k 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 UI Kitten Showcase QA: Screenmap (aleqsio/screenmap, 243 stars), Expo Development on Limrun (superset-sh/superset, 15k stars), Live-Device iOS QA (garrytan/gstack, 136k stars) and Iapkit E2E Martie (hyodotdev/openiap, 155 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
akveo (a GitHub organization) maintains it in akveo/react-native-ui-kitten, which has 10,664 GitHub stars. The repository was last updated on October 6, 2026.
Source: akveo/react-native-ui-kitten on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.