Skip to main content

Environment variables

PreviewAvailable on: WindowsmacOSLinuxShips in the preview channel only. Not a stable release.

Every environment variable Harmony reads, what it changes, and which ones are validated rather than trusted.

Runtime isolation

VariableEffect
NALA_DATA_SUFFIXNamespaces the entire runtime: data directory, socket, auth token, pipes
WMUX_DATA_SUFFIXThe same mechanism under the historical name

Development builds set -dev. This is why a development build and a packaged build coexist without interfering — and the first thing to check when the CLI reports it cannot reach a daemon that is plainly running.

harmony doctor --json

Compare the resolved data directory against the application you expect to reach.

Privacy

VariableEffect
NALA_TELEMETRYSet to 0 to disable lifecycle reporting
$env:NALA_TELEMETRY = "0"

For a persistent preference, use harmony telemetry rather than an environment variable. Lifecycle reporting is bounded and identifier-free either way.

VariableEffect
NALA_CRASH_REPORTING0, false, off or no forces crash reports off; 1, true, on or yes forces them on. It overrides the saved preference

Crash reports are off unless you turn them on with harmony crash-reporting on. While this variable is set, harmony crash-reporting status says that it overrides the saved preference.

Terminal and accessibility

These change how the terminal agent (harmony tui) draws.

VariableEffect
NALA_SCREEN_READER1 or true switches to linear plain-text output for screen readers
NALA_MOTIONfull, reduced or off. Wins over the motion setting
NALA_REDUCED_MOTION1 or true reduces motion, when NALA_MOTION is not set
NALA_HIGH_LATENCYAny value redraws less often, for slow links. Also on automatically over SSH
NALA_NO_BANNER1 hides the start-up banner
$env:NALA_SCREEN_READER = "1"
harmony tui

Process resolution

VariableEffectTrust
NALA_DESKTOP_PATHInstaller-owned hint to the desktop executableValidated
NALA_CLI_PATHPath to the CLI bundle, injected at launchInjected
WMUX_INVOKED_ASWhich binary name the CLI was invoked asInternal

SECURITY

NALA_DESKTOP_PATH is treated as a hint, not an instruction. It is used only after validating that it is an absolute path to an existing file with the expected executable name. An environment variable must not be able to redirect the CLI into launching an arbitrary binary.

Build-time

VariableEffect
NALA_REQUIRE_PI_RUNTIMESet to 1 so a build fails loudly when the Pi runtime is absent

WARNING

An empty vendor/ directory silently produces a build without the Pi runtime. Always build with NALA_REQUIRE_PI_RUNTIME=1. See testing.

Precedence

  1. An explicit variable set in the invoking process.
  2. Installer-provided values.
  3. Built-in defaults.

A variable set in a shell profile reaches processes that shell starts. It does not reach a process launched by the desktop application, which is the usual reason a provider works in your terminal and not under Harmony.

What is not configured this way

Provider credentials are not Harmony environment variables. Each provider authenticates through its own mechanism, and Harmony does not collect, proxy, or store them.

SECURITY

An API key exported globally in your shell is readable by every process you run, including agents. Prefer the provider's own credential store.