Skip to content

Developer Setup

github-actions[bot] edited this page May 21, 2026 · 1 revision

Developer Setup

BLXCode is a two-crate Rust workspace:

Crate Path Purpose
blxcode-ui src/ Leptos CSR frontend compiled to WASM by Trunk.
blxcode src-tauri/ Tauri 2 backend, native commands, state, PTY, provider clients.

Prerequisites

After cloning, you can let the platform setup script install/check the local toolchain and run the default verification:

./scripts/setup/setup-linux.sh
./scripts/setup/setup-macos.sh
powershell -ExecutionPolicy Bypass -File scripts/setup/setup-windows.ps1

Useful options are --check-only, --skip-system, --no-verify, and --with-bundle.

Install:

  • Rust stable.
  • wasm32-unknown-unknown target.
  • Trunk.
  • Cargo Tauri CLI.
  • Tauri 2 native system dependencies.
  • Native audio development dependencies used by the voice recorder.
rustup target add wasm32-unknown-unknown
cargo install trunk tauri-cli

On Debian or Ubuntu, the current Linux dependency set includes Tauri's WebKitGTK packages plus ALSA headers for cpal voice recording:

sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
  build-essential \
  curl \
  wget \
  file \
  libxdo-dev \
  libssl-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  libasound2-dev \
  pkg-config

Development Commands

cargo tauri dev

Runs the full desktop app. The Tauri config starts Trunk automatically.

trunk serve

Runs the frontend only at http://localhost:1420. Tauri-only features are unavailable in this mode, but it can be useful for UI iteration.

Verification Commands

cargo test --workspace
cargo check -p blxcode
cargo check -p blxcode-ui --target wasm32-unknown-unknown
trunk build

Use the narrowest command while iterating, then run the broader checks before publishing a change.

Build

cargo tauri build

Bundle configuration lives in src-tauri/tauri.conf.json.

Release Automation

Release helpers live at the repo root under scripts/ and share the same option set where possible:

./scripts/release.sh --help
./scripts/release-macos.sh --help
scripts\release.cmd --help
powershell -ExecutionPolicy Bypass -File scripts/release.ps1 --help

The Bash pipeline remains the Linux/macOS path. The PowerShell pipeline mirrors it for native Windows releases and is split into matching modules under scripts/release/*.ps1 for common helpers, version bumping, changelog finalization, build preparation, Linux target handling, and GitHub uploads.

Important Config Files

  • Cargo.toml: workspace and frontend crate manifest.
  • src-tauri/Cargo.toml: backend crate manifest.
  • Trunk.toml: frontend target, watch ignores, and dev server port.
  • src-tauri/tauri.conf.json: Tauri app identity, dev/build commands, bundle resources, and window config.
  • src-tauri/capabilities/default.json: Tauri v2 permissions.
  • src/config/app.config.rs: frontend constants and local storage keys.

Generated Or External Assets

Bundled hook scripts live under content/hooks/ and are included as Tauri bundle resources. EULA markdown lives under content/eula/ and is compiled into the frontend. Core harness skill Markdown lives under src-tauri/src/agent/harness_skills/ — see Agent Harness.

See also

Clone this wiki locally