Skip to main content
The runner reads a closed set of variables. This page lists all of them, from an inventory of every process.env and env[...] read in @e2edev/e2e, @e2edev/playwright, @e2edev/agent-device, and @e2edev/github. A variable not listed here has no effect on a run. Almost every read goes through an env object the runner is handed once, at config load. The exceptions are called out below. Two readings recur. A value counts when it is set and not blank. A flag is on when it is set and not blank, 0, or false; the value is trimmed and lowercased first, so FALSE is off and no and off are on.

Model

The order is spelled out under Resolution order.

Credentials

<NAME> is the credential name uppercased with every character outside A-Z0-9 replaced by _. A pair for a name absent from credentials is ignored. These two are read as set-or-unset, so an empty string is a value.

Run mode

Diagnostics

--debug and --ai-trace are flags, not variables; see CLI.

Telemetry

Telemetry also inspects, without reading a value, the presence of the markers CI vendors and coding agents set, to attribute a run to a vendor or an agent rather than a person. Only the derived name is sent. What is sent and how to read it is on the Telemetry page.

Reporters

@e2edev/github reads the variables GitHub Actions sets, when a run finishes:

Engines

What app processes inherit

An app command or service does not inherit the runner’s environment. The child receives PATH, HOME, TMPDIR, TMP, TEMP, SystemRoot, and COMSPEC from process.env, plus whatever command.env sets. APP_URL, which the scaffolded config reads for playwright({ url }), is read by your config module, not by the runner; pass it to a dev server through command.env if the server needs it too.

Config

CLI

Telemetry