Agentic end-to-end tests with e2e, the e2e runner. An agent skill from callstack/react-native-pager-view.

MITAuto-check passedTesting & QA

Install E2E

skills CLI
$ npx skills add callstack/react-native-pager-view --skill e2e -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install callstack/react-native-pager-view e2e --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
e2e
GitHub stars
3.4k
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
898 words
Files
9 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Agentic end-to-end tests with e2e, the e2e runner. An agent skill from callstack/react-native-pager-view.

  • Works in 5 steps: Look at what exists: e2e.config.ts or… → Learn the screens before writing a test:… → Write tests/.e2e.ts. Drive the flow with… → …
  • A project depends on e2e
  • SKILL.md covers Topics, Workflow, Rules and Feedback
  • Calls npx and pnpm; needs AI_GATEWAY_API_KEY

What it does

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.

When your agent uses it

  • A project depends on e2e
  • Asked for end-to-end
  • Agentic UI tests
  • An e2e run fails

Example prompts

  • “/e2e”

Requirements

  • Node.js
  • A credential in AI_GATEWAY_API_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Look at what exists: e2e.config.ts or e2e.config.mts, the tests glob
  2. Learn the screens before writing a test: routes, labels, roles, button
  3. Write tests/.e2e.ts. Drive the flow with agent.act, one goal
  4. Run one file: npx e2e run tests/.e2e.ts. Agent steps need a
  5. Read the failure: the reporter prints the error code, message, and a code

What it can do on your machine

Read from SKILL.md and the folder at commit 99446fc. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • AI_GATEWAY_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~172
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~29k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from callstack/react-native-pager-view at commit 99446fc, republished under its MIT licence (© callstack). 898 words, ~2,105 tokens.

Download SKILL.mdSave it as .claude/skills/e2e/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
e2e
description
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 repro tests). Use when a project depends on e2e, when asked for end-to-end, browser, mobile, or agentic UI tests, to bug bash or hunt for bugs, or when an e2e run fails.

e2e: agentic end-to-end tests in TypeScript

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.

ts
// 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;
ts
// 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');
});

Topics

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).

TopicFileRead it when
setupreferences/setup.mdAdding e2e to a project, writing e2e.config.ts, starting the app from the config, mobile targets
writing-testsreferences/writing-tests.mdWriting or fixing tests: fixtures, locators, actions, matchers, sign-in sessions, the browser fixture
agentreferences/agent.mdAdding agent.* steps, picking a model, cost and budgets, the replay cache
runningreferences/running.mdCLI flags, reporters, .e2e/report.json, exit codes, CI
explorereferences/explore.mdExploring an app toward a goal without a test file: e2e explore, its budgets, verdict, and run.explore
debuggingreferences/debugging.mdA run failed: error codes and their fixes, --headed, --debug, --ai-trace
mcpreferences/mcp.mdDriving the live app from a coding agent over MCP: e2e mcp, its tools, and the explore-then-write loop
bug-bashreferences/bug-bash.mdAsked 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

Workflow

  1. Look at what exists: e2e.config.ts or e2e.config.mts, the tests glob (default tests/**/*.e2e.ts), e2e in package.json. Nothing there: follow setup.
  2. Learn the screens before writing a test: routes, labels, roles, button text. Semantic locators need the accessible names the app renders, so read the components, open the page with --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.
  3. Write 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.
  4. Run one file: 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.
  5. Read the failure: the reporter prints the error code, message, and a code frame; .e2e/report.json has every step and artifact path. Fix the locator, the expectation, or the app. Never add a sleep.
Show full SKILL.md (425 more words)Show less

Rules

  • Run the CLI as npx e2e ... (or pnpm exec e2e ...).
  • The config is 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.
  • Import 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.
  • Config and tests are ES modules whatever package.json sets as type.
  • Locators resolve when used. Actions wait for readiness and 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.
  • A locator that matches two nodes fails with LOCATOR_AMBIGUOUS; narrow it (topic writing-tests).
  • Secrets never appear in test code. Declare accounts under 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.
  • Agent instructions: one goal per act, the wording on screen, real values in params. Judge meaning, not phrasing: toContain('Pro'), not an exact sentence a model produced.
  • Check each agent goal's outcome. A passing act with a recorded check can be cached and replayed without model calls (topic agent).
  • Shape the agent for this app: 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.

Feedback

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.

bash
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

Files

SKILL.md and 8 other files (references) in .agents/skills/e2e of callstack/react-native-pager-view.

  • SKILL.md
  • references/agent.md
  • references/bug-bash.md
  • references/debugging.md
  • references/explore.md
  • references/mcp.md
  • references/running.md
  • references/setup.md
  • references/writing-tests.md

Open the folder on GitHubat commit 99446fc

Used in 1 other repository

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.

Compare with similar skills

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.

E2E compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E this skillcallstack/react-native-pager-view3.4k1 repos~2.1kAutomated safety check: PassMIT
E2Egronxb/hot-updater1.8k—~1.6kAutomated safety check: PassCustom licence
E2E Current PRgronxb/hot-updater1.8k—~1kAutomated safety check: PassCustom licence
E2E Defaultgronxb/hot-updater1.8k—~3.1kAutomated safety check: PassCustom licence
Nitro Sound Workflowshyochan/react-native-nitro-sound961—~1.2kAutomated safety check: PassMIT
Iapkit E2E Petguhyodotdev/openiap154—~1.1kAutomated safety check: PassMIT

Similar skills

  • E2E

    gronxb/hot-updater

    Run end-to-end OTA verification for examples/v0.85.0 with agent-device.

    1.8k GitHub stars~1.6k tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Current PR

    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…

    1.8k GitHub stars~1k tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Default

    gronxb/hot-updater

    Run a fixed OTA regression flow for examples/v0.85.0 with agent-device.

    1.8k GitHub stars~3.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Nitro Sound Workflows

    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…

    961 GitHub stars~1.2k tokensUpdated 8 days ago
    MobileAuto-check passed
  • Iapkit E2E Petgu

    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.

    154 GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Nitro Sound Workflows

    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…

    961 GitHub stars~285 tokensUpdated 8 days ago
    MobileAuto-check passed

Categories

Questions about E2E

What does E2E do?

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.

When should I use E2E?

E2E fits situations like: A project depends on e2e; asked for end-to-end; agentic UI tests; an e2e run fails.

How do I install E2E in Claude Code?

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.

How do I install E2E in Codex?

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.

Can I use E2E in Cursor, Gemini CLI or GitHub Copilot?

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.

What does E2E need to run?

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.

Does E2E access the network?

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.

Is E2E safe to install?

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.

What licence does E2E use?

E2E is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does E2E use?

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.

What are the alternatives to E2E?

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.

Who maintains E2E?

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.