Documents
01 - Local Development Setup
01 - Local Development Setup
Type
Document
Status
Published
Created
May 26, 2026
Updated
May 26, 2026
Updated by
Dosu Bot

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#

CommandPurpose
bun run devStart the full app (frontend + Tauri + sidecar) in dev mode with hot reload.
bun run dev:prepareBuild the sidecar binary. Required after pulling changes that touch sidecar/.
bun run buildProduction build of the full app.
bun run testRun all tests (frontend + sidecar + Rust).
bun run test:frontendVitest — frontend unit tests only.
bun run test:sidecarBun test — sidecar unit tests only.
bun run test:rustCargo test — Rust backend tests only.
bun run test:e2ePlaywright — end-to-end tests (WebKit).
bun run test:frontend:watchFrontend tests in watch mode.
bun run lintLint 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: debug in dev, info in release).
  • HELMOR_LOG=helmor::sidecar=trace — target a specific module.

Data directory#

Development builds use ~/.helmor-dev/ to isolate dev data from production installs.