# QA Wolf Docs - [Quick start](https://docs.qawolf.com/index.md): Connect QA Wolf to your coding agent and create your first end-to-end test. - [Why QA Wolf?](https://docs.qawolf.com/why-qa-wolf.md): What QA Wolf does, how it works, and what it can test. - [Prepare environments for QA Wolf](https://docs.qawolf.com/prepare-environments-for-qa-wolf.md): The guidance below focuses on keeping your environment predictable, scalable, and ready for concurrent automated testing. - [Glossary](https://docs.qawolf.com/Glossary.md): Definitions of key QA Wolf terms including workspaces, environments, groups, flows, runs, coverage outlines, and coverage maps. - [Coverage Mapping](https://docs.qawolf.com/product-mapping.md): As the QA Wolf agent autonomously explores your application, it identifies and outlines end-to-end workflows that you should test before each release. - [Test Automation](https://docs.qawolf.com/test-automation.md): The QA Wolf agent automates E2E tests in Playwright (for web apps) and Appium (for iOS and Android apps). - [Custom skills](https://docs.qawolf.com/custom-skills.md): Write your team's conventions into SKILL.md files so QA Wolf's agent applies them in every session. - [QA Wolf MCP](https://docs.qawolf.com/qawolf-mcp.md): Install the QA Wolf MCP to build and run your test suite from your favorite coding agent, including Claude Code and Codex. - [Triggers](https://docs.qawolf.com/triggers/overview.md): Run a set of flows when your application deploys, or on a schedule. - [Smart Smoke Suites](https://docs.qawolf.com/smart-smoke-suites.md): Let QA Wolf automatically select the flows affected by your PR. - [Run Rules](https://docs.qawolf.com/Run-Rules.md): Run Rules let you sequence the order of flows in your suite. - [Tags](https://docs.qawolf.com/tags.md): Group flows under a name so a trigger can run them together and a Run Rule can order them. - [Configure Single Sign-On (SSO)](https://docs.qawolf.com/sso.md): Set up SSO via SAML 2.0 and OpenID Connect - [Solutions](https://docs.qawolf.com/solutions.md): Recipes and helpers for testing specific scenarios in your app. - [Test a feature that sends or receives emails](https://docs.qawolf.com/Use-emails-in-tests.md): Use mail.inbox() from @qawolf/emails to send, receive, and verify emails during your QA Wolf flows. - [Test QR code authentication](https://docs.qawolf.com/qrcode.md): Read a QR code from the page and use its value to complete authentication. - [Test MFA with an authenticator app](https://docs.qawolf.com/test-mfa.md): Generate a time-based OTP code in your flow to complete multi-factor authentication. - [Connect to a VPN (iOS)](https://docs.qawolf.com/network-connectivity.md): Route iOS test device traffic through VPN tunnels to reach internal services, staging environments, or geo-restricted content. - [Connect to a VPN (web)](https://docs.qawolf.com/connect-with-vpn-web.md): Start an OpenVPN tunnel from a web flow to reach internal services or staging environments. - [Network simulation (iOS)](https://docs.qawolf.com/network-simulation.md): Simulate degraded network conditions on iOS devices to test how your app handles slow connections, high latency, or no connectivity. - [Beacon injection (iOS)](https://docs.qawolf.com/i-beacon-injection.md): Simulate iBeacon proximity events in your iOS app without physical beacon hardware. - [Pass data between flows](https://docs.qawolf.com/Pass-data-between-flows.md): Share authentication tokens, user IDs, and other values across flows in a coordinated run. - [Reuse state between runs](https://docs.qawolf.com/reuse-state-between-runs.md): Use environment variables to carry state from one run into the next, so flows can skip work they've already done. - [Use files in flows](https://docs.qawolf.com/use-files-in-flows.md): Upload files to team storage and use them in your flows — test data, images, audio, and anything else a flow reads at runtime. - [Use your network drive](https://docs.qawolf.com/mount-a-file-share.md): Mount your CIFS/SMB file share onto the runner so your flow can read and write files during a test run. - [Microphone injection (Android)](https://docs.qawolf.com/android-audio-injection.md): Inject audio into the Android emulator's microphone input to test recording and voice features. - [Microphone injection (iOS)](https://docs.qawolf.com/ios-audio-injection.md): Inject audio into your app's microphone input to test audio features without real hardware. - [Microphone injection (Web)](https://docs.qawolf.com/web-audio-injection.md): Replace the browser's microphone input with an audio file to test voice and speech features in web apps. - [Speaker recording (iOS)](https://docs.qawolf.com/audio-capture.md): Record audio from the device speaker during a test to verify that your app plays the correct audio. - [Speaker recording (Web)](https://docs.qawolf.com/web-speaker-capture.md): Capture browser audio output during a test to verify that your app plays the correct audio. - [Audio analysis (iOS)](https://docs.qawolf.com/i-os-audio-analysis.md): Compare recorded audio against a reference file using Chromaprint fingerprinting to verify your app plays the correct audio. - [Audio analysis (Web)](https://docs.qawolf.com/web-audio-analysis.md): Validate audio streams and files using ffprobe and ffmpeg to assert on codec, bitrate, duration, and silence. - [iOS photo library management](https://docs.qawolf.com/photo-library-management.md): Add, list, and delete photos in the device photo library to set up test state or verify your app saved photos. - [Camera injection](https://docs.qawolf.com/camera-and-audio-injection.md): Inject images into your app's camera input to test camera features without real hardware. - [Android barcode and QR code scanning](https://docs.qawolf.com/android-barcode.md): Test barcode and QR code scanning features in Android apps using the emulator's virtual camera scene. - [iOS Barcode and QR code scanning](https://docs.qawolf.com/barcode-qrcode-scanning.md): Inject barcode and QR code data into any iOS app to test scanning workflows without a physical camera. - [Video injection](https://docs.qawolf.com/video-injection.md): Inject video into your app's camera input to test video features without real hardware. - [Measure accessibility for native mobile](https://docs.qawolf.com/a11y-native.md): Use accessibility IDs to verify that key screens are reachable and usable by screen readers on iOS and Android. - [Measure web accessibility with axe-core](https://docs.qawolf.com/a11y-web.md): Inject axe-core into a Playwright page to catch WCAG violations and gate releases on accessibility quality. - [Measure performance (Android)](https://docs.qawolf.com/android-performance.md): Measure frame rate and CPU usage on the Android emulator during automated flows. - [Measure web page performance](https://docs.qawolf.com/web-performance.md): Run a Lighthouse audit in a QA Wolf flow to spot-check Core Web Vitals and key performance metrics. - [Native mobile screenshots](https://docs.qawolf.com/visual-diffing-native-app.md): Use toHaveScreenshot to catch visual regressions in native iOS and Android apps. - [Assert visual appearance](https://docs.qawolf.com/visual-diffing.md): Use toHaveScreenshot to catch layout regressions and verify UI elements that can't be targeted with selectors. - [Assert on the meaning of generated text](https://docs.qawolf.com/semantic-assertions.md): Use toSatisfy to check what AI-generated text means, so a flow accepts new wording and still catches wrong answers. - [Non-deterministic AI assertions](https://docs.qawolf.com/non-deterministic-ai-testing.md): Validate AI-generated responses using a judge model and assert on a structured JSON verdict. - [Testing Electron apps](https://docs.qawolf.com/electron.md): Test a desktop app built with Electron from a QA Wolf flow. - [Test Chrome extensions](https://docs.qawolf.com/browser-extensions.md): Load and test Chrome extensions in QA Wolf flows using Playwright's persistent context and Chrome flags. - [Mock device location (Android)](https://docs.qawolf.com/android-location-mocking.md): Set a custom GPS location on the Android emulator to test location-aware features in your app. - [Mock hardware sensors (Android)](https://docs.qawolf.com/android-sensor-mocking.md): Simulate accelerometer, gyroscope, light, and pressure sensor input on the Android emulator. - [Anatomy of a flow](https://docs.qawolf.com/anatomy-of-a-flow.md): What each part of a QA Wolf flow does, and how the same structure carries across web, iOS, and Android. - [Lint rules](https://docs.qawolf.com/lint-rules.md): How QA Wolf lints your flows and page objects, and how an .eslintrc.json changes what blocks an AI job. - [Top-Level](https://docs.qawolf.com/libraries/flows/api-reference/top-level.md): Reference notes for the top-level @qawolf/flows entry point. - [Web](https://docs.qawolf.com/libraries/flows/api-reference/web.md): Reference for @qawolf/flows/web, the entry point for defining web flows with launch behavior, page assertions, and browser context helpers. - [Node Reference](https://docs.qawolf.com/libraries/flows/api-reference/cli.md): Reference for @qawolf/flows/cli, the Node-based entry point for headless flows that handle setup, teardown, notifications, and file work. - [Android](https://docs.qawolf.com/libraries/flows/api-reference/android.md): Reference for @qawolf/flows/android, the entry point for defining Android flows with device controls, launch options, and assertions. - [Android Device Controls](https://docs.qawolf.com/libraries/flows/api-reference/android-device-reference.md): Reference notes for the `device` object from `@qawolf/flows/android`. - [iOS](https://docs.qawolf.com/libraries/flows/api-reference/ios.md): Reference for @qawolf/flows/ios, the entry point for defining iOS flows with simulator and device controls, launch options, and assertions. - [iOS Device Controls](https://docs.qawolf.com/libraries/flows/api-reference/ios-device-reference.md): Reference notes for the `device` object from `@qawolf/flows/ios`. - [iOS Device Pools](https://docs.qawolf.com/libraries/flows/api-reference/ios-device-pools.md): Choose between QA Wolf's shared device pool, allowlisted devices, and private devices for iOS tests. - [Troubleshooting](https://docs.qawolf.com/libraries/flows/troubleshooting.md): Troubleshoot common issues when authoring or running @qawolf/flows, including target configuration errors and missing launch context. - [POM Reference](https://docs.qawolf.com/libraries/pom/api-reference/index.md): API reference for @qawolf/pom: page object base classes, constructing sibling page objects, and page hooks. - [Troubleshooting](https://docs.qawolf.com/libraries/pom/troubleshooting.md): Troubleshoot common issues when using @qawolf/pom, including unresolved page names, import cycles, and page hooks that never run. - [Core](https://docs.qawolf.com/libraries/testkit/api-reference/core.md): Reference notes for the top-level @qawolf/testkit entry point. - [Types](https://docs.qawolf.com/libraries/testkit/api-reference/types.md): Reference notes for the public types used by @qawolf/testkit. - [Web](https://docs.qawolf.com/libraries/testkit/api-reference/web.md): Reference for @qawolf/testkit/web, including the readQRCode helper that decodes QR codes from a page locator during a flow. - [Client](https://docs.qawolf.com/libraries/testkit/api-reference/client.md): Reference for @qawolf/testkit/client, the runner-facing entry point used to create and configure the testkit client for flow helpers. - [Troubleshooting](https://docs.qawolf.com/libraries/testkit/troubleshooting.md): Troubleshoot common @qawolf/testkit problems, including missing client configuration and baseline screenshot errors during flow runs. - [Mail](https://docs.qawolf.com/libraries/emails/api-reference/mail.md): Reference for the @qawolf/emails mail API, covering inbox creation, sending messages, and waiting for parsed emails inside flows. - [Client](https://docs.qawolf.com/libraries/emails/api-reference/client.md): Reference notes for runtime-facing client creation and configuration. - [Troubleshooting](https://docs.qawolf.com/libraries/emails/troubleshooting.md): Troubleshoot common @qawolf/emails problems, including missing client configuration, stale messages, and inbox wait timeouts. - [Overview](https://docs.qawolf.com/libraries/cli/api-reference/index.md): Overview of qawolf CLI commands, flags, configuration, environment variables, and exit codes for running flows locally. - [Commands Reference](https://docs.qawolf.com/libraries/cli/api-reference/commands.md): Reference notes for every qawolf CLI command and flag. - [Environment Variables](https://docs.qawolf.com/libraries/cli/api-reference/environment-variables.md): Environment variables the qawolf CLI reads for API access, Android and iOS SDK paths, and other runtime configuration. - [Troubleshooting](https://docs.qawolf.com/libraries/cli/troubleshooting.md): Solutions for common qawolf CLI issues including authentication errors, missing API keys, SDK path problems, and failed flow execution. - [Get started with the QA Wolf CLI](https://docs.qawolf.com/local-execution/get-started.md): Install the CLI, sign in, and run your team's existing flows on your own machine or in CI. - [Authenticate the QA Wolf CLI](https://docs.qawolf.com/local-execution/authenticate.md): Install the qawolf CLI and connect it to your workspace so it can pull and run your flows. - [Run flows locally](https://docs.qawolf.com/local-execution/run-flows-locally.md): Run your team's flows on your own machine — the CLI pulls, installs, and runs in one command. - [Set up a local-only project](https://docs.qawolf.com/local-execution/set-up-a-project.md): Scaffold a project for hand-authoring flows that don't live on the QA Wolf platform. - [Diagnose problems running flows](https://docs.qawolf.com/local-execution/diagnose-problems.md): Use qawolf doctor to check your environment, find missing dependencies, and read the CLI's log file. - [SDK Reference](https://docs.qawolf.com/libraries/ci-sdk/api-reference.md): Reference for the @qawolf/ci-sdk package: report a deployment, wait for QA Wolf's verdict, upload run inputs, and the legacy deploy_success functions. - [Troubleshooting](https://docs.qawolf.com/libraries/ci-sdk/troubleshooting.md): Common issues when integrating with @qawolf/ci-sdk. - [Trigger fields](https://docs.qawolf.com/triggers/reference.md): The fields of a trigger: deployment conditions, schedule, and the action that selects flows. - [Deployments](https://docs.qawolf.com/triggers/deployments.md): What a deployment carries when it reaches QA Wolf, how it resolves to an environment and a pull request, and the verdict recorded for each trigger. - [Overview](https://docs.qawolf.com/rest-overview.md): The QA Wolf REST API provides direct HTTP access to core platform actions. - [v0/run-inputs-executables-signed-urls](https://docs.qawolf.com/run-inputs-executables-signed-urls.md): Generate a signed URL and upload an executable file to QA Wolf. - [webhooks/deploy_success](https://docs.qawolf.com/deploy-success.md): Notify QA Wolf of a successful deployment to trigger a test run, including request format, headers, body fields, and example responses. - [v0/ci-greenlight](https://docs.qawolf.com/v0-ci-greenlight.md): Returns the outcome of a run for use as a pipeline gate. - [webhooks/environment_terminated](https://docs.qawolf.com/environment_terminated.md): Stops all runs targeting the environment and requests flow promotion to the static base environment. The environment will show as "closed" in QA Wolf. - [Integrations](https://docs.qawolf.com/integrations.md): How QA Wolf connects to the systems you already run, and which connection to start with. - [PR testing](https://docs.qawolf.com/deployment-testing/pr-testing.md): Run your flows on every pull request, against its preview deploy, with the result reported as checks on the pull request. - [GitHub deployments](https://docs.qawolf.com/deployment-testing/github.md): Let QA Wolf hear about every deploy through GitHub deployments, and let a trigger decide which flows run. - [GitLab deployments](https://docs.qawolf.com/deployment-testing/gitlab.md): Let QA Wolf hear about every deploy through GitLab environments, and let a trigger decide which flows run. - [Webhook](https://docs.qawolf.com/deployment-testing/webhook.md): Notify QA Wolf of a deploy straight from your pipeline, for a CI system QA Wolf's code host integrations do not cover. - [Node.js SDK](https://docs.qawolf.com/deployment-testing/ci-sdk.md): Notify QA Wolf of a deploy from any CI system that runs Node.js, and gate the pipeline on the verdict, with @qawolf/ci-sdk. - [CircleCI](https://docs.qawolf.com/deployment-testing/circle-ci.md): Notify QA Wolf of a deploy from a CircleCI job, or have the job create the deployment your code host already understands. - [Mobile build testing](https://docs.qawolf.com/mobile-build-testing.md): Upload an Android or iOS build, report it as a deployment, and let a trigger run your flows against every new version. - [Connect QA Wolf to your network](https://docs.qawolf.com/vpn.md): Reach an application behind a firewall or private network, using QA Wolf's static IP range, OpenVPN, a site-to-site IPSec tunnel, or a client-based VPN. - [Integrate with Testmo](https://docs.qawolf.com/Testmo.md): Sync QA Wolf automated test results to your Testmo project, including pass/fail status and run metadata. - [Integrate with TestRail](https://docs.qawolf.com/TestRail.md): Sync QA Wolf automated test results to TestRail, including pass/fail status and run metadata for each test run. - [Integrate with Xray](https://docs.qawolf.com/Xray.md): Sync QA Wolf automated test results to Xray Test Management for Jira, including test executions and metadata. - [Integrate with Zephyr](https://docs.qawolf.com/Zephyr.md): Sync QA Wolf automated test results to Zephyr Test Management for Jira, including test cycles and metadata. - [Integrate with Qase.io](https://docs.qawolf.com/Qase-io.md): Sync QA Wolf automated test results to your Qase.io project, including pass/fail status and run metadata. - [Integrate with Jira](https://docs.qawolf.com/Jira.md): Connect QA Wolf to Jira to automatically create, sync, and close issue tickets from QA Wolf bug reports. - [Integrate with Linear](https://docs.qawolf.com/Linear.md): Connect QA Wolf to Linear to automatically create and sync bug report issues with your Linear team. - [Integrate with Asana](https://docs.qawolf.com/Asana.md): Connect QA Wolf to Asana to automatically create and sync bug report issues in your Asana workspace. - [Integrate with Azure DevOps Boards](https://docs.qawolf.com/Azure-DevOps-Boards.md): Connect QA Wolf to Azure DevOps Boards to automatically create and sync bug report issues using OAuth. - [Integrate a bug tracker with webhooks](https://docs.qawolf.com/Integrate-with-webhooks.md): Connect a bug tracker QA Wolf has no native integration for by pointing it at a webhook. - [Integrate with MS Teams](https://docs.qawolf.com/MS-Teams.md): Connect your Microsoft Teams tenant to QA Wolf's shared channel by configuring a Teams policy and cross-tenant access in Microsoft Entra. - [Legacy triggers](https://docs.qawolf.com/legacy-triggers/overview.md): The legacy per-environment triggers: what the three kinds do and how deploys reach them. - [Integrate GitHub Actions](https://docs.qawolf.com/legacy-triggers/GitHub-GitHub-Actions.md): Notify QA Wolf from a GitHub Actions workflow when you deploy, so a legacy trigger starts a run. - [Integrate GitLab CI](https://docs.qawolf.com/legacy-triggers/GitLab.md): Notify QA Wolf from a GitLab CI pipeline when you deploy, so a legacy trigger starts a run. - [Setting up PR testing](https://docs.qawolf.com/legacy-triggers/PR-testing-for-GitHub-Integrations.md): Run QA Wolf tests against preview environments on pull requests and report results as GitHub status checks. - [Setting up PR testing](https://docs.qawolf.com/legacy-triggers/PR-testing-for-GitLab-Integrations.md): Run QA Wolf tests against preview environments on merge requests and report results back to GitLab. - [Integrate with the QA Wolf CI SDK](https://docs.qawolf.com/legacy-triggers/ci-sdk-integration.md): Trigger QA Wolf test runs from any CI system that supports Node.js. - [Integrate with the deploy webhook](https://docs.qawolf.com/legacy-triggers/webhook-integration.md): Trigger QA Wolf test runs from any CI system using the deploy webhook directly. - [Integrate with CircleCI](https://docs.qawolf.com/legacy-triggers/circle-ci.md): Automatically trigger test runs when you deploy code from your repository. - [Mobile build testing](https://docs.qawolf.com/legacy-triggers/mobile-build-testing.md): Upload an Android or iOS build and notify QA Wolf through the legacy deploy webhook, for a workspace still running legacy triggers. - [Onboarding to Full Service](https://docs.qawolf.com/onboarding-to-full-service.md): What to expect during QA Wolf full service onboarding, including timelines, meetings, and setup steps. - [How to request new coverage](https://docs.qawolf.com/Request-new-coverage.md): Submit a coverage request to QA Wolf through the platform, Slack, Teams, Discord, or your issue tracker. This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.