E2E
gronxb/hot-updater
Run end-to-end OTA verification for examples/v0.85.0 with agent-device.
Agentic end-to-end tests with e2e, the e2e runner. An agent skill from callstack/react-native-pager-view.
$ npx skills add callstack/react-native-pager-view --skill e2e -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install callstack/react-native-pager-view e2e --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/callstack/react-native-pager-view.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/e2e .claude/skills/e2e && 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 "e2e" agent skill from https://github.com/callstack/react-native-pager-view/tree/master/.agents/skills/e2e into .claude/skills/e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e", 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/callstack/react-native-pager-view/tree/master/.agents/skills/e2eType 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 callstack/react-native-pager-view --skill e2e -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install callstack/react-native-pager-view e2e --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstack/react-native-pager-view.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/e2e .agents/skills/e2e && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "e2e" agent skill from https://github.com/callstack/react-native-pager-view/tree/master/.agents/skills/e2e into .agents/skills/e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e", 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 callstack/react-native-pager-view --skill e2e -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install callstack/react-native-pager-view e2e --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstack/react-native-pager-view.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/e2e .cursor/skills/e2e && 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 "e2e" agent skill from https://github.com/callstack/react-native-pager-view/tree/master/.agents/skills/e2e into .cursor/skills/e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e", 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/callstack/react-native-pager-view.git --path .agents/skills/e2e--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 callstack/react-native-pager-view --skill e2e -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install callstack/react-native-pager-view e2e --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstack/react-native-pager-view.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/e2e .gemini/skills/e2e && 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 "e2e" agent skill from https://github.com/callstack/react-native-pager-view/tree/master/.agents/skills/e2e into .gemini/skills/e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e", 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 callstack/react-native-pager-view e2eInstalls 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 callstack/react-native-pager-view --skill e2e -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/callstack/react-native-pager-view.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/e2e .github/skills/e2e && 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 "e2e" agent skill from https://github.com/callstack/react-native-pager-view/tree/master/.agents/skills/e2e into .github/skills/e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e", 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 callstack/react-native-pager-view --skill e2e -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install callstack/react-native-pager-view e2e --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstack/react-native-pager-view.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/e2e .opencode/skills/e2e && 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 "e2e" agent skill from https://github.com/callstack/react-native-pager-view/tree/master/.agents/skills/e2e into .opencode/skills/e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e", 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.
e2eAgentic end-to-end tests with e2e, the e2e runner. An agent skill from callstack/react-native-pager-view.
E2E is an agent skill from callstack/react-native-pager-view. Agentic end-to-end tests with e2e, the e2e runner. Covers scaffolding e2e.config.ts, picking the Playwright browser engine or the agent-device mobile engine, starting the app under test from the config, driving flows with agent.act, judging with agent.assert, agent.waitFor, and agent.extract, pinning values with screen, app, browser, and expect, shaping the agent (context, system prompt, tools, personas), the replay cache, the e2e CLI, reading .e2e/report.json, and bug bashes (parallel explore runs proven with…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including reference files (for example `references/agent.md`, `references/bug-bash.md` and `references/debugging.md`).
It sits in Testing & QA, covering End-to-end testing. It works with Bash, Playwright, Android and iOS. The repository describes itself as: React Native wrapper for the Android ViewPager and iOS UIPageViewController. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 99446fc. 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:
npxpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
AI_GATEWAY_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
E2E loads about 2.1k tokens when it runs, and up to ~29k if it reads all its reference files. Until then it costs about 172 tokens; SKILL.md has 898 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 callstack/react-native-pager-view at commit 99446fc, republished under its MIT licence (© callstack). 898 words, ~2,105 tokens.
.claude/skills/e2e/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.e2e runs UI tests with agent goals and exact assertions. agent.act drives
one goal; agent.assert, agent.waitFor, and agent.extract judge the
screen. screen, app, browser, and expect make exact interactions and
checks. The replay cache reruns verified actions and checks their recorded end
state without a model call; agent judgments still run live. UI targets use
@e2e-dev/web for browsers or @e2e-dev/mobile for iOS simulators and
Android emulators. A test that takes only app can check an API with fetch
and expect (topic writing-tests). Model sign-in commands are in
setup.
// e2e.config.ts
import type { E2EConfig } from 'e2e';
import { web } from '@e2e-dev/web';
import { gateway } from 'ai';
export default {
targets: [
{
engine: web(),
app: {
url: 'http://127.0.0.1:3000',
command: { executable: 'pnpm', args: ['dev'], log: '.e2e/logs/app.log' },
},
},
],
// The model behind every agent.* step: an AI SDK instance; gateway() from 'ai' reads AI_GATEWAY_API_KEY or a Vercel OIDC token.
agents: {
default: {
model: gateway('openai/gpt-6-luna-fast'),
system: 'You are a thorough QA agent. Verify every outcome on screen.',
},
},
} satisfies E2EConfig;// tests/billing.e2e.ts
import { test } from '@e2e-dev/web';
import { expect } from 'e2e';
test('a member upgrades to Pro', async ({ app, agent, screen, browser }) => {
await app.open('/settings/billing');
await agent.act('upgrade the workspace to the Pro plan');
await expect(screen.getByRole('status')).toContainText('Pro');
await expect(browser).toHaveURL('/settings/billing');
});Read the topic for the job before writing code. The files sit next to this
one; the installed CLI prints the same text with npx e2e guide <topic>
(e2e guide alone prints this page).
| Topic | File | Read it when |
|---|---|---|
setup | references/setup.md | Adding e2e to a project, writing e2e.config.ts, starting the app from the config, mobile targets |
writing-tests | references/writing-tests.md | Writing or fixing tests: fixtures, locators, actions, matchers, sign-in sessions, the browser fixture |
agent | references/agent.md | Adding agent.* steps, picking a model, cost and budgets, the replay cache |
running | references/running.md | CLI flags, reporters, .e2e/report.json, exit codes, CI |
explore | references/explore.md | Exploring an app toward a goal without a test file: e2e explore, its budgets, verdict, and run.explore |
debugging | references/debugging.md | A run failed: error codes and their fixes, --headed, --debug, --ai-trace |
mcp | references/mcp.md | Driving the live app from a coding agent over MCP: e2e mcp, its tools, and the explore-then-write loop |
bug-bash | references/bug-bash.md | Asked to bug bash, QA, or hunt for bugs across an app or a branch: parallel e2e explore charters, merging findings, proving each with a repro test |
e2e.config.ts or e2e.config.mts, the tests glob
(default tests/**/*.e2e.ts), e2e in package.json. Nothing there:
follow setup.--headed, or drive the live app over
the registered e2e mcp server (topic mcp): open_session, observe,
and locate show exact names and check a locator before you write it.tests/<feature>.e2e.ts. Drive the flow with agent.act, one goal
per call, and pin each outcome right after with expect or agent.assert.
Exact values go through screen: a sign-in form in a setup test, a field
that must receive one specific string, a count that must be one number.npx e2e run tests/<feature>.e2e.ts. Agent steps need a
model in the config and that provider's authentication (a saved
subscription login, an API key); a local endpoint may need none. Tests
without agent steps need no model..e2e/report.json has every step and artifact path. Fix the
locator, the expectation, or the app. Never add a sleep.npx e2e ... (or pnpm exec e2e ...).export default { ... } satisfies E2EConfig with
import type { E2EConfig } from 'e2e'. targets is required; a UI target
names an engine and declares the app beside it: { engine: web(), app: { url, command } }.
A tools-only target can omit the engine and set platform.test, describe, the hooks, expect, credentials, and
secrets from e2e. A test that uses the browser fixture imports test,
describe, and the hooks from @e2e-dev/web: the same runtime functions,
typed with browser.package.json sets as type.expect retries
assertions. Reads such as textContent() fail at once on zero matches and
count() answers from the current screen; nothing waits for a value to
change, so use a matcher when a value has to settle.LOCATOR_AMBIGUOUS; narrow it
(topic writing-tests).credentials and
every other sensitive value under secrets in the config; resolve with
credentials.user(name).password or secrets.get(name) (separate
namespaces: secrets.get never returns a password), and hand the opaque
Secret only to fill() or agent.act params.act, the wording on screen, real values
in params. Judge meaning, not phrasing: toContain('Pro'), not an exact
sentence a model produced.act with a recorded check can
be cached and replayed without model calls (topic agent).context for vocabulary the screens use,
system for how it works, tools for a test API, named personas under
agents. When a step fails, tighten the goal first, then the context, then
the agent..e2e/ is output (report.json, artifacts/, cache/, logs/; the
config's output moves the report and artifacts, never cache/ or the
app's log). Read it, never edit it.When e2e itself gets in your way, tell the e2e team: a command or API that
broke (bug), docs or this skill that misled you (docs), or a capability
you needed and did not find (feature). Send it once per problem, after you
worked around it or gave up, never for failures of the app under test.
npx e2e feedback --type bug -m "<one or two sentences>" \
--task "<what you were doing>" --expected "<...>" --actual "<error code and message>" \
--approach "<what you tried>" --command "<e2e command>" --agent "<agent / model>"Describe e2e's behavior only: never paste app content, page text, test files,
URLs of private apps, or credentials. Secret-named environment variables and
common token shapes are redacted, but do not rely on it. --dry-run prints
what would be sent. Tell the user you sent it and give them the reference id
it prints.
© callstack, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (references) in .agents/skills/e2e of callstack/react-native-pager-view.
Open the folder on GitHubat commit 99446fc
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in callstack/react-native-pager-view, which our catalogue first saw on October 8, 2026.
E2E 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 |
|---|---|---|---|---|---|---|
| E2E this skillcallstack/react-native-pager-view | 3.4k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| E2Egronxb/hot-updater | 1.8k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| E2E Current PRgronxb/hot-updater | 1.8k | — | ~1k | Automated safety check: Pass | Custom licence | |
| E2E Defaultgronxb/hot-updater | 1.8k | — | ~3.1k | Automated safety check: Pass | Custom licence | |
| Nitro Sound Workflowshyochan/react-native-nitro-sound | 961 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Iapkit E2E Petguhyodotdev/openiap | 154 | — | ~1.1k | Automated safety check: Pass | MIT |
gronxb/hot-updater
Run end-to-end OTA verification for examples/v0.85.0 with agent-device.
gronxb/hot-updater
Generate and execute PR-aware OTA E2E scenarios for examples/v0.85.0 by diffing the checked-out branch against its PR base branch or default branch, inferring the affected runtime, rollout, and…
gronxb/hot-updater
Run a fixed OTA regression flow for examples/v0.85.0 with agent-device.
hyochan/react-native-nitro-sound
A skill your agent uses for react-native-nitro-sound repository work that should follow the project workflows for PR review, code audit, knowledge compilation, full verification, iOS or Android…
hyodotdev/openiap
A skill your agent uses for IAPKit product sync E2E testing in packages/kit with the Petgu React Native app, localhost dashboard, App Store Connect, and Google Play Console.
hyochan/react-native-nitro-sound
A skill your agent uses for react-native-nitro-sound repository work that should follow the project slash-command workflows for PR review, code audit, knowledge compilation, full verification, iOS…
Categories
Agentic end-to-end tests with e2e, the e2e runner. An agent skill from callstack/react-native-pager-view. E2E is an agent skill from callstack/react-native-pager-view. Agentic end-to-end tests with e2e, the e2e runner.
E2E fits situations like: A project depends on e2e; asked for end-to-end; agentic UI tests; an e2e run fails.
Run `npx skills add callstack/react-native-pager-view --skill e2e -a claude-code`. Or copy the skill folder (.agents/skills/e2e in callstack/react-native-pager-view) into .claude/skills/e2e in your project. Claude Code loads it when a task matches its description.
Run `npx skills add callstack/react-native-pager-view --skill e2e -a codex`. Or copy the skill folder (.agents/skills/e2e in callstack/react-native-pager-view) into .agents/skills/e2e 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 callstack/react-native-pager-view --skill e2e -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/e2e, .gemini/skills/e2e, .github/skills/e2e and .opencode/skills/e2e in your project.
Going by SKILL.md and its folder, E2E needs the command-line tools its instructions call (npx and pnpm) and credentials named AI_GATEWAY_API_KEY. Our summary lists: Node.js; A credential in AI_GATEWAY_API_KEY.
SKILL.md contains no URLs. Its commands use npx, 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.
E2E 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.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 27k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with E2E: E2E (gronxb/hot-updater, 1.8k stars), E2E Current PR (gronxb/hot-updater, 1.8k stars), E2E Default (gronxb/hot-updater, 1.8k stars) and Nitro Sound Workflows (hyochan/react-native-nitro-sound, 961 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
callstack (a GitHub organization) maintains it in callstack/react-native-pager-view, which has 3,365 GitHub stars. The repository was last updated on October 7, 2026.
Source: callstack/react-native-pager-view on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.