← All skills
expo-skill-eval
69 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By expo/skills (GitHub) · coding · 4,149 stars · scanned at commit 7582922
Evaluate Expo skills in this repo end-to-end - trigger accuracy, generated code quality, and runtime screenshots on iOS simulator and Android emulator via Expo Go (web optional). Use when the user wants to eval an Expo skill, test that a skill produces working code, benchmark a skill with device screenshots, or verify a skill's output renders correctly.
Works with any agent that supports SKILL.md skills.
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 17 places.
Show 14 more
- .claude/skills/expo-skill-eval/scripts/check-static.sh, line 33
run_gate tsc bunx tsc --noEmit - .claude/skills/expo-skill-eval/scripts/check-static.sh, line 49
run_gate lint env CI=1 bunx eslint "${CHANGED_FILES[@]}" - .claude/skills/expo-skill-eval/scripts/check-static.sh, line 54
run_gate lint env CI=1 bunx expo lint - .claude/skills/expo-skill-eval/scripts/check-static.sh, line 62
run_gate export env CI=1 bunx expo "${EXPORT_ARGS[@]}" - .claude/skills/expo-skill-eval/scripts/make-fixture.sh, line 49
(cd "$TMP_DIR" && bunx create-expo-app --yes --template "$TEMPLATE" fixture) >&2 - .claude/skills/expo-skill-eval/scripts/make-fixture.sh, line 77
(cd "$TMP_DIR/fixture" && bunx expo install expo-dev-client) >&2 - .claude/skills/expo-skill-eval/scripts/make-fixture.sh, line 80
(cd "$TMP_DIR/fixture" && CI=1 bunx expo lint) >&2 || true - .claude/skills/expo-skill-eval/scripts/snapshot-android.sh, line 168
(cd "$PROJECT_PATH" && exec env -u CI REACT_NATIVE_PACKAGER_HOSTNAME=127.0.0.1 bunx expo run:android --port "$PORT") </dev/null >"$LOG" 2>&1 & - .claude/skills/expo-skill-eval/scripts/snapshot-android.sh, line 171
(cd "$PROJECT_PATH" && exec env -u CI REACT_NATIVE_PACKAGER_HOSTNAME=127.0.0.1 bunx expo start --port "$PORT" --android) </dev/null >"$LOG" 2>&1 & - .claude/skills/expo-skill-eval/scripts/snapshot-ios.sh, line 54
(cd "$PROJECT_PATH" && exec env -u CI bunx expo run:ios --port "$PORT") </dev/null >"$LOG" 2>&1 & - .claude/skills/expo-skill-eval/scripts/snapshot-ios.sh, line 56
(cd "$PROJECT_PATH" && exec env -u CI REACT_NATIVE_PACKAGER_HOSTNAME=127.0.0.1 bunx expo start --port "$PORT" --ios) </dev/null >"$LOG" 2>&1 & - .claude/skills/expo-skill-eval/scripts/snapshot-web.sh, line 26
bunx playwright install chromium >/dev/null 2>&1 || true - .claude/skills/expo-skill-eval/scripts/snapshot-web.sh, line 28
(cd "$PROJECT_PATH" && exec env -u CI bunx expo start --port "$PORT" --web) </dev/null >"$LOG" 2>&1 & - .claude/skills/expo-skill-eval/scripts/snapshot-web.sh, line 48
bunx playwright screenshot \
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. Expected for a coding skill.
Found in 11 places.
Show 8 more
- .claude/skills/expo-skill-eval/SKILL.md, line 175
**Build fixtures sequentially, then fan out executors — never create fixtures concurrently.** `make-fixture.sh` shares a cache under `~/.cache/expo-skill-eval/f - .claude/skills/expo-skill-eval/SKILL.md, line 181
Write a Python script to `/private/tmp/expo-skill-eval-<skill>/run_executors.py`. **First create every run's fixture in a sequential loop** — `subprocess.run([" - .claude/skills/expo-skill-eval/SKILL.md, line 199
Write `run_static.py` and run it with `python3`. For each eval/config app it calls `subprocess.run(["bash", "<scripts>/check-static.sh", app, "ios,android"], ca - .claude/skills/expo-skill-eval/SKILL.md, line 205
Write `run_snapshots.py` and run it with `python3`. Simulators and emulators are shared resources, so this orchestrator runs **serially** (no thread pool): for - .claude/skills/expo-skill-eval/SKILL.md, line 207
**Reclaim disk after each fixture — essential for `dev-build` runs.** Once all selected platforms for an app are captured (and *before* the next fixture builds) - .claude/skills/expo-skill-eval/SKILL.md, line 218
python3 /abs/path/expo-skill-eval/scripts/generate_viewer.py /private/tmp/expo-skill-eval-<skill> - .claude/skills/expo-skill-eval/SKILL.md, line 270
- **`Bash(...)` rules — path-scoped to the skill's own code (no broad interpreters).** `Bash(python3 /private/tmp/expo-skill-eval-*)` (plus the `/tmp` alias) ru - .claude/skills/expo-skill-eval/SKILL.md, line 291
python3 /abs/path/expo-skill-eval/scripts/generate_viewer.py /private/tmp/expo-skill-eval-<skill>
Changes files outside its own folder
The author does not mention this.
Found in 1 place.
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README.
Found in 3 places.
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'expo-skill-eval' ] || [ -L ~/.agents/skills/'expo-skill-eval' ]; then echo 'A skill folder named expo-skill-eval already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/expo/skills' "$d" && git -C "$d" checkout --quiet '7582922d039d5a96dc574757d399d22d56370f2b' -- '.claude/skills/expo-skill-eval' && mkdir -p ~/.agents/skills && cp -R "$d"/'.claude/skills/expo-skill-eval' ~/.agents/skills/'expo-skill-eval' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'expo-skill-eval' ~/.claude/skills/'expo-skill-eval' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for expo/skills shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/expo/skills/)
Score history
| Date | Version | Score |
|---|
| 2026-11-14 | 7582922 | 69 |
| 2026-11-08 | a9e5bd3 | 69 |
| 2026-11-06 | a9e5bd3 | 69 |