# Runtime Environment Variables

> Host variables that configure Elide itself.

These configure Elide. Guest code sees them in [`process.env`](https://elide.help/docs/env-variables) like any other variable.

| Variable | Purpose |
| --- | --- |
| `ELIDE_HOME` | Install directory for Elide versions. Default `$XDG_DATA_HOME/elide` or `~/.local/share/elide`. |
| `ELIDE_AUTO_INSTALL` | `1` downloads a pinned `.elideversion` without asking. |
| `ELIDE_LOCALE` | CLI locale, as `--locale`. |
| `ELIDE_LOG` | Log filter, e.g. `debug`. |
| `ELIDE_LOG_STYLE` | Log color: `auto`, `always`, or `never`. |
| `ELIDE_ERROR_FORMAT` | `plain` forces plain uncaught-error output, as `--error-format=plain`. |
| `ELIDE_EDITOR` | `code` or `idea` links error locations to VS Code or IntelliJ. Uses `EDITOR` if unset. |
| `ELIDE_CRASH_ROOT` | Directory for crash reports. |
| `ELIDE_AGENT` | `1` forces agent output; `0` turns agent detection off. See [AI Agents](https://elide.help/docs/agents). |
| `ELIDE_MCP_TOKEN` | Token for `elide mcp --mode http`. Random if unset. |
| `ELIDE_DEFER_EXIT` | Linux: `0` makes the process free its memory before it exits. |
| `ELIDE_SYS_TMP` | Set by Elide: the system temporary directory. |
| `ELIDE_HTTP_USER_AGENT` | `User-Agent` for `fetch`. Default `Elide/<version>`. |
| `ELIDE_HTTP_NATIVE_WORKERS` | HTTP server workers for the `v2` transport. Default cores ÷ 4, between 1 and 8. |
| `ELIDE_NETTY_EVENT_LOOPS` | HTTP client and server I/O threads. Default `min(4, cores)`. |
| `ELIDE_TRANSPORT_V2` | `1`, `true`, `yes`, or `on` selects `--transport=v2` when no flag is given. |
| `ELIDE_HTTP_FALLBACK` | `v1` serves Unix domain socket requests through `nio`; `none` (default) fails them. |
| `NODE_TLS_REJECT_UNAUTHORIZED` | `0` disables TLS certificate checks for `fetch`. Warns once. |
| `NODE_USE_SYSTEM_CA` | `1` trusts the system certificate store for `fetch`. |
| `NODE_EXTRA_CA_CERTS` | PEM file of extra CA certificates for `fetch`. |
| `ELIDE_MAVEN_TLS_EXTRA_CA` | PEM file of extra CA certificates for Maven downloads. |
| `ELIDE_PKGST_NPM_ENDPOINT` | npm proxy URL for `--pkgst`. Default `https://npm.pkg.st`. |
| `ELIDE_PKGST_PYPI_ENDPOINT` | PyPI proxy URL for `--pkgst`. Default `https://pypi.pkg.st`. |
| `ELIDE_REMOTE_CACHE` | Shared build cache URL. See [Build cache](https://elide.help/docs/toolchain/build-tasks#build-cache). |
| `ELIDE_REMOTE_CACHE_TOKEN` | Bearer token for the shared cache. |
| `ELIDE_REMOTE_CACHE_USERNAME` | Basic-auth user for the shared cache. |
| `ELIDE_REMOTE_CACHE_PASSWORD` | Basic-auth password for the shared cache. |
| `ELIDE_REMOTE_CACHE_POLICY` | `eager` (default) or `smart`. |
| `ELIDE_REMOTE_CACHE_PULL` | `false` stops downloads from the shared cache. |
| `ELIDE_REMOTE_CACHE_PUSH` | `false` stops uploads to the shared cache. |
| `ELIDE_BUILD_TELEMETRY` | `1`, a file, or a directory writes a build trace ([Build Tasks](https://elide.help/docs/toolchain/build-tasks)). |
| `ELIDE_KOTLINC_ABI_STRIP` | `1` with `kotlinc --abi-only` also strips function bodies. |
| `ELIDE_WORKER_CLASSPATH_CACHE` | `0` turns `javac --classpath-cache` off. |

## Diagnostics

| Variable | Purpose |
| --- | --- |
| `ELIDE_ENGINE_LOG` | Print low-level runtime log records to stderr. |
| `ELIDE_DIAG_STARTUP` | Print startup phase timings to stderr. |
| `ELIDE_TRANSPORT_DIAGNOSTICS` | `1` prints network transport statistics to stderr. |
