Dev launch¶
Audience. Contributor — anyone running condash from source instead of an installer.
When to read this. You cloned the repo, want to run the dashboard against your local code, and need to know which make target does what.
One-time install¶
make install runs npm install and then electron-rebuild against the bundled Electron's Node ABI. The rebuild step is the one that fails on a missing C/C++ toolchain — see Contributing — prerequisites for the per-OS package list.
The watch loop¶
make dev runs three things concurrently:
tsc --watchtypecheckssrc/main/andsrc/renderer/continuously (no emit; esbuild handles bundling).viteserves the renderer atlocalhost:5600with hot module reload.electronopens a singleBrowserWindowagainst the dev URL. Main / preload changes restart on the next launch (Ctrl+Rreloads the renderer in-place).
If port 5600 is in use, make kill frees it.
--no-sandbox and the sandbox toggle¶
make dev runs Electron with --no-sandbox to avoid per-worktree chrome-sandbox ownership fixes. The dev window only loads localhost:5600 and local file:// URLs — the threat surface is local-only.
If you want the sandbox on while developing, drop --no-sandbox from dev:electron in package.json and then, once per worktree:
sudo chown root node_modules/electron/dist/chrome-sandbox
sudo chmod 4755 node_modules/electron/dist/chrome-sandbox
macOS and Windows are unaffected — the sandbox there does not require the SUID step.
See also¶
- Contributing — full clone-to-PR workflow including testing and style.
- CLI — the runtime command-line surface, useful once you have a build to drive.