# Getting started The project is a Rust workspace plus a Bun-managed React frontend. The commands below come from `README.md` and `package.json`. ## Prerequisites | Tool | Why it is needed | | --- | --- | | Rust stable | Builds `crates/qa-scribe-core`, `crates/qa-scribe-app`, and `src-tauri`. | | Node.js 22.13 or newer | Runtime for frontend and release scripts. | | Bun 1.3.5 or newer | Package manager and script runner declared in `package.json`. | | Platform Tauri toolchain | Builds the desktop shell for the local OS. | | Optional local AI CLIs | `claude`, `codex`, or `copilot` enable generation when already authenticated. | ## Install dependencies ```bash bun install --cwd frontend ``` ## Run locally ```bash bun run dev ``` This runs `cd src-tauri && cargo tauri dev` from `package.json`, which starts the Tauri shell and Vite renderer. ## Build and verify | Command | What it checks | | --- | --- | | `bun run build` | Builds the frontend and Rust workspace. | | `bun run verify:fast` | Runs typecheck, lint, frontend tests, frontend dist check, `cargo fmt --check`, and `cargo clippy`. | | `bun run verify` | Runs audit, typecheck, lint, tests, bindings check, release metadata check, frontend build, Rust fmt/clippy/tests, and smoke run. | | `bun run smoke` | Runs the non-GUI smoke harness in `crates/qa-scribe-app/src/main.rs`. | | `bun run package:check` | Validates key JSON config files listed in `package.json`. | ## Generated bindings `src-tauri/src/main.rs` exports TypeScript bindings in debug builds through `src-tauri/src/specta_bindings.rs`. The committed `frontend/src/bindings.ts` file is checked by the `bindings:check` script. For more on the day-to-day workflow, see [Development workflow](how-to-contribute--development-workflow.md) and [Testing](how-to-contribute--testing.md).