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