Skip to content

Development setup

Speedwave’s codebase spans Rust, Angular, Node.js, and Swift. See the tech stack page for how those pieces fit together. GNU Make wraps all of it, so setting up your machine mostly means installing prerequisites and letting make setup-dev do the rest.

  • Rust, stable toolchain, via rustup
  • Node.js, LTS (v20+), with npm
  • Platform tools: Xcode command-line tools on macOS, Visual Studio Build Tools on Windows

Run make setup-dev to check for these and install the remaining dependencies automatically.

Use the Makefile for every build, test, and check, not cargo or npm directly: it sets the working directories and flags each stack needs.

The main targets:

Terminal window
make setup-dev # first-time: check prerequisites + install all dependencies
make test # run all tests (Rust + Angular + MCP + entrypoint + desktop)
make check # lint + clippy + type-check + format
make check-all # full quality gate: check + test + coverage + audit
make coverage-html # generate HTML coverage reports and open in browser
make audit # check dependencies for known vulnerabilities
make dev # start desktop in dev mode (Tauri + Angular hot reload)
make build # build everything
make fmt # format all code
make status # quick health check

Granular targets exist per stack too: test-rust, test-angular, test-mcp, test-swift, build-cli, build-desktop, build-angular. See testing for how the test runners and coverage thresholds break down.

Two CLI targets matter if you touch the CLI binary. make build-cli builds the debug binary at target/debug/speedwave, which make dev uses. make build-cli-release builds the release binary: the bundled CLI must be release so a debug-only signature bypass is compiled out of shipped builds.

make dev builds the CLI first and copies it into desktop/src-tauri/cli/ before starting Tauri dev mode, so the desktop app’s “Open Terminal” feature works while you develop.

On Windows, a few toolchain quirks need handling before make dev runs natively: see Windows setup.