CLI configuration
Environment variables, instance isolation, and how the CLI decides which daemon to talk to.
Which daemon am I talking to?
The most common CLI confusion is not a broken daemon — it is the CLI reaching a different daemon than the one your app is running.
The entire runtime is namespaced by a data-suffix environment variable:
| Variable | Effect |
|---|---|
NALA_DATA_SUFFIX | Namespaces data directory, socket, auth token, and pipes |
WMUX_DATA_SUFFIX | The same mechanism under the historical name |
Development builds set -dev. That is why a dev build and a packaged build
coexist without interfering — and why a CLI invocation with a different suffix
reports "cannot reach the daemon" while an app is plainly running.
Diagnose it:
nala doctor --json
Compare the resolved data directory and socket path against the app you expect to be talking to.
Environment variables
| Variable | Purpose |
|---|---|
NALA_DATA_SUFFIX / WMUX_DATA_SUFFIX | Instance isolation |
NALA_TELEMETRY | Set to 0 to disable lifecycle reporting |
NALA_DESKTOP_PATH | Installer-owned hint to the desktop executable |
NALA_CLI_PATH | Path to the CLI bundle, injected on launch |
NALA_REQUIRE_PI_RUNTIME | Set to 1 so builds fail loudly without the Pi runtime |
NOTE
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. This is deliberate — an environment variable should
not be able to redirect the CLI into launching an arbitrary binary.
Invocation name
Both nala and wmux binaries point at the same CLI bundle; the invocation
name is detected and subcommands route accordingly. Some subcommands are
reachable only when invoked as nala.
Project configuration
A project may carry nala.json (preferred) or the legacy wmux.json, discovered
per project root and trust-gated. It can declare layout, startup processes
with a restart policy, and supervision burst limits.
SECURITY
A project config is content from whoever wrote the repository. It is gated behind trust for that reason — opening a folder must not be enough to make it run processes.
Telemetry
nala telemetry
Inspects or persistently changes the preference. Lifecycle reporting is bounded and identifier-free. Override for one invocation:
$env:NALA_TELEMETRY = "0"
Diagnostics
nala doctor
nala doctor --json
The --json form is what to attach to a bug report — after reviewing it.
WARNING
Diagnostics contain absolute paths, workspace and repository names, and provider details. Those routinely reveal usernames and unreleased project names. Redact before sharing.