Environment variables
Every environment variable Harmony reads, what it changes, and which ones are validated rather than trusted.
Runtime isolation
| Variable | Effect |
|---|---|
NALA_DATA_SUFFIX | Namespaces the entire runtime: data directory, socket, auth token, pipes |
WMUX_DATA_SUFFIX | The 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
| Variable | Effect |
|---|---|
NALA_TELEMETRY | Set 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.
| Variable | Effect |
|---|---|
NALA_CRASH_REPORTING | 0, 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.
| Variable | Effect |
|---|---|
NALA_SCREEN_READER | 1 or true switches to linear plain-text output for screen readers |
NALA_MOTION | full, reduced or off. Wins over the motion setting |
NALA_REDUCED_MOTION | 1 or true reduces motion, when NALA_MOTION is not set |
NALA_HIGH_LATENCY | Any value redraws less often, for slow links. Also on automatically over SSH |
NALA_NO_BANNER | 1 hides the start-up banner |
$env:NALA_SCREEN_READER = "1"
harmony tui
Process resolution
| Variable | Effect | Trust |
|---|---|---|
NALA_DESKTOP_PATH | Installer-owned hint to the desktop executable | Validated |
NALA_CLI_PATH | Path to the CLI bundle, injected at launch | Injected |
WMUX_INVOKED_AS | Which binary name the CLI was invoked as | Internal |
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
| Variable | Effect |
|---|---|
NALA_REQUIRE_PI_RUNTIME | Set 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
- An explicit variable set in the invoking process.
- Installer-provided values.
- 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.