> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revyl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Launch Vars

> Environment variables injected into device sessions at boot

Launch variables are key-value pairs injected into device sessions when they start. Use them for auth bypasses, feature flags, custom testing flags, API keys, environment URLs, or anything your app reads from the environment at runtime.

## Common Use Cases

* **Auth bypass tokens**: skip OAuth flows by injecting a pre-issued test token, so every test starts authenticated without clicking through a login screen
* **Feature flags**: turn specific features on or off for testing before flipping them for real users
* **Custom testing flags**: enable test-only debug menus, mock data modes, or skip animations for faster, more deterministic runs
* **Environment URLs**: point your app at staging, dev, or a local tunnel without rebuilding
* **API keys and secrets**: credentials your app reads at startup, without baking them into the binary

## Creating a Launch Var

1. Go to **Library** > **Launch Vars** tab
2. Click **New launch var**
3. Enter a **key**, **value**, and optionally a description
4. Save

Launch vars are injected into every session started from the UI, CLI, or API. They show up as environment variables accessible to your app at runtime.

## Sensitive Values

Values can be marked as sensitive. Once saved, sensitive values are hidden in the UI and can only be replaced, not viewed. Use this for API keys and tokens.

## Launch Vars vs Global Variables

These serve different purposes:

|                   | Launch Vars                                           | Global Variables                          |
| ----------------- | ----------------------------------------------------- | ----------------------------------------- |
| **Injected into** | The device environment at boot                        | Test step descriptions via `{{var_name}}` |
| **Accessible by** | Your app at runtime                                   | Revyl's test execution engine             |
| **Use case**      | Auth bypasses, feature flags, testing flags, API keys | Test data, usernames, dynamic values      |

## Session Override

When starting a session (from the UI or CLI), you can override or add launch vars for that specific session without changing the org-level defaults.

For Expo cloud-agent runs, launch vars pair well with a test-only auth deep link: start `revyl dev` with `--launch-var`, then send the app-specific auth link with `revyl device navigate`. See [Auth Bypass Deep Links](/builds/auth-bypass-deeplinks) for the full flow.
