Environment variables¶
Audience. Daily user and Developer.
At a glance¶
| Name | Purpose | Default | Accepted values |
|---|---|---|---|
CONDASH_CONCEPTION_PATH |
One-shot conception-path override (legacy alias CONDASH_CONCEPTION still accepted) |
unset | Any absolute path |
CLAUDE_PROJECT_DIR |
Back-compat alias for CONDASH_CONCEPTION_PATH in Claude Code sessions |
unset | Any absolute path |
CONDASH_FORCE_DEVICE_SCALE_FACTOR |
Force a fixed integer scale (Wayland fallback) | unset | Positive number |
CONDASH_FORCE_PROD |
Force the renderer to load the packaged build (Playwright fixture) | unset | 1 or unset |
SHELL |
Fallback for terminal.shell |
/bin/bash |
Absolute path to an interactive shell |
XDG_CONFIG_HOME |
Linux per-user config root | ~/.config |
Any absolute path |
ELECTRON_DISABLE_SANDBOX |
Disable Chromium's setuid sandbox | unset | 1 or unset |
condash itself reads almost no environment variables — configuration lives in settings.json (per-user) and .condash/settings.json (per-tree). The handful of vars below either feed Electron's startup or back the embedded terminal.
SHELL¶
Standard POSIX shell variable. Used as the fallback command when terminal.shell is not configured in .condash/settings.json or settings.json. The embedded terminal spawns a node-pty session running this shell. $SHELL is also the shell condash probes once at startup to resolve your login-shell PATH (next section).
Login-shell PATH for spawned subprocesses¶
GUI-launched condash (a Wayland session, the macOS Dock, a .desktop entry) never sources your login dotfiles (~/.profile, ~/.zprofile, ~/.bash_profile), so the PATH it inherits is missing anything you added there. Without help, the embedded terminal, repo Run commands, force_stop, and "open in IDE" launchers can't find user-installed CLIs (opencode, ~/bin wrappers, ~/.local/bin tools).
condash resolves this once at startup: it spawns $SHELL as a login + interactive shell, reads the PATH that shell exports, caches the result, and uses it as the PATH for every subprocess it spawns. No configuration and no dotfile changes are required — keep your PATH wherever your login shell already reads it.
- PATH only. Every other variable keeps its inherited value; the environment-hygiene scrub is unaffected.
- Timeout-guarded. A hung rc-file can't block startup — after 5 s condash falls back to the inherited PATH.
- Resolved once. Edit a dotfile after launch → restart condash to pick it up.
- POSIX only. On Windows the PATH is inherited as-is.
XDG_CONFIG_HOME¶
Linux only. Controls where settings.json is written. The path resolves to ${XDG_CONFIG_HOME:-~/.config}/condash/settings.json, owned by Electron's app.getPath('userData'). Override only if your distro forces a non-standard XDG layout.
macOS and Windows ignore this variable — they use ~/Library/Application Support/condash/ and %APPDATA%\condash\ respectively.
ELECTRON_DISABLE_SANDBOX¶
Set by Electron itself when launched with --no-sandbox (the dev script in package.json:dev:electron does exactly this; the AppImage's patched AppRun does the same — see Install).
You should not set this manually for the production .deb build — it installs chrome-sandbox SUID-root at /opt/condash/, and disabling the sandbox there is a net regression.
CONDASH_CONCEPTION_PATH¶
A one-shot override for the conception path. When set, it wins over the lastConceptionPath value in settings.json. Useful for:
- Pointing condash at a scratch tree without editing settings.
- Demoing against a specific tree from a script.
- Running multiple condash instances against different trees from different shells.
The override is session-scoped — it is not persisted back into settings.json, and the next launch without the env var falls back to the saved value.
The legacy name CONDASH_CONCEPTION is still accepted for back-compat (skills and scripts written before the rename keep working); when both are set, CONDASH_CONCEPTION_PATH wins.
CLAUDE_PROJECT_DIR¶
Back-compat alias for CONDASH_CONCEPTION_PATH. Used by Claude Code sessions where the CLAUDE_PROJECT_DIR variable is already set. When both are set, CONDASH_CONCEPTION_PATH wins.
CONDASH_FORCE_DEVICE_SCALE_FACTOR¶
Linux + Wayland fallback for fractional-scaling issues on uncommon compositors. When set to a number (e.g. 1.5), Chromium renders at that fixed integer-divisible scale and the compositor down-scales — useful when the default WaylandFractionalScaleV1 negotiation produces blurry output on a specific compositor. Leave unset on every other configuration.
CONDASH_FORCE_PROD¶
Set by the Playwright e2e fixture to force the renderer to load the packaged dist/ build via file://, bypassing the Vite dev URL. Not intended for direct use.
Not read from the environment¶
CONDASH_ASSET_DIR— the Electron build has no equivalent. Usemake devfor the Vite hot-reload loop instead; the production renderer bundle is served fromdist/inside the asar at runtime.CONDASH_PORT— there is no embedded HTTP server. The Vite dev server listens on5600(configured invite.config.ts,Makefile,package.jsontogether — see the dev-port checklist inAGENTS.md).CONCEPTION_PATH— despite the management skill reading it, condash itself does not.NO_COLOR,CLICOLOR,FORCE_COLOR— unused. The dashboard's colour scheme is driven by the theme toggle.VISUAL,EDITOR— condash doesn't spawn a system$EDITORitself. The "Open in editor" buttons resolve throughsettings.json:open_withslots.
Cross-reference¶
- Config files — the
settings.json+.condash/settings.jsonschema. - Environment hygiene — how condash strips
PYTHONHOME/PYTHONPATH/PERLLIB/QT_PLUGIN_PATH/GSETTINGS_SCHEMA_DIRfrom spawned subprocesses, and why the AppImage build also patchesAppRunso the leak doesn't reach launchers it spawns.