Develop Nerve
Requirements: Node.js 24+, pnpm 11.20.0, and rustup. The repository’s rust-toolchain.toml installs the pinned Rust toolchain (currently 1.97.1).
git clone https://github.com/ThilinaTLM/nerve.gitcd nervepnpm installpnpm desktopDevelopment commands
Section titled “Development commands”pnpm desktop # Electron app from sourcepnpm dev # daemon + Vite workbenchpnpm dev:ui # UI against an existing daemonpnpm build # TypeScript packages and staged Workbench assetspnpm build:native # host Rust addon in packages/native/prebuilds/localpnpm fix # Rust, TypeScript, Svelte, and ESLint fixespnpm check # formatting, lint, boundaries, package and Rust checkspnpm run test:affected # test changed packages and their dependentspnpm run test:full # run the complete package and Rust test suitepnpm dev and pnpm desktop build the host native addon automatically. Release prebuilds are separate architecture-specific files and are produced by GitHub Actions.
Enable trusted-LAN and mobile HTTPS access from Settings → System → Network, then restart the owned daemon when prompted.
For UI-only development against a running daemon:
NERVE_API_TARGET=http://127.0.0.1:3747 pnpm dev:uiFor the public site:
pnpm --filter @nervekit/website devpnpm --filter @nervekit/website checkpnpm --filter @nervekit/website buildIsolation
Section titled “Isolation”Use explicit NERVE_HOME, ports, and Electron profile overrides for tests that can migrate or mutate state. The normal profile intentionally sits outside NERVE_HOME; changing only one does not fully isolate a desktop test.
Before completing package-scoped code changes, repository policy requires pnpm fix && pnpm check && pnpm run test:affected. Use pnpm run test:full for root, workspace, or test-infrastructure changes and for broad validation. Rerun the same chain after fixes.