01 - Local Development Setup#
Get Helmor running from source for development and contribution. The project uses a monorepo with Bun workspaces, a Rust backend, and a Bun-powered sidecar.
Prerequisites#
- Bun (latest) — package manager and runtime for frontend and sidecar.
- Rust (stable) — required for the Tauri backend. Install via rustup.
- Tauri CLI — install with
cargo install tauri-cli. - Git — for workspace operations.
- macOS 12+ — Helmor's desktop target.
Clone and install#
git clone https://github.com/dohooo/helmor.git
cd helmor
bun install
Development commands#
| Command | Purpose |
|---|---|
bun run dev | Start the full app (frontend + Tauri + sidecar) in dev mode with hot reload. |
bun run dev:prepare | Build the sidecar binary. Required after pulling changes that touch sidecar/. |
bun run build | Production build of the full app. |
bun run test | Run all tests (frontend + sidecar + Rust). |
bun run test:frontend | Vitest — frontend unit tests only. |
bun run test:sidecar | Bun test — sidecar unit tests only. |
bun run test:rust | Cargo test — Rust backend tests only. |
bun run test:e2e | Playwright — end-to-end tests (WebKit). |
bun run test:frontend:watch | Frontend tests in watch mode. |
bun run lint | Lint the codebase. |
First run#
bun install
bun run dev:prepare
bun run dev
The app opens in a native window. Changes to the frontend hot-reload instantly; Rust changes require a restart.
Environment variables#
HELMOR_LOG=debug— increase log verbosity (default:debugin dev,infoin release).HELMOR_LOG=helmor::sidecar=trace— target a specific module.
Data directory#
Development builds use ~/.helmor-dev/ to isolate dev data from production installs.
Related#
- Architecture Overview — how the three tiers fit together.
- Testing Guide — running and writing tests.