- GitHub Release artifacts and source builds do not expose the same backend set.
- Metal is the primary accelerated source-build path on Apple Silicon.
- CUDA source builds are useful for development, custom validation, and fallback debugging. Linux and Windows GitHub Release artifacts are CPU-only; the CUDA distribution path is the Docker CUDA image/profile on NVIDIA Linux hosts.
Prerequisites
All Platforms
- Git — Version control
- Rust — 1.83 or later (stable). CI and Docker builds use current stable Rust; the Docker CPU builder currently uses Rust 1.88.
- Node.js — 18+ for UI development. Release CI uses Node 20, while the Docker UI builder currently uses Node 24.
espeak-ng(optional, required only forKokoro-82MTTS)
macOS
Linux (Ubuntu/Debian)
Windows
- Install Visual Studio Build Tools
- Select “Desktop development with C++”
- Install Rust
- Install Git
Clone the Repository
Kokoro-82M, install espeak-ng using your platform guide before running TTS:
Build
Recommended: Use the Install Script
The install script builds the CLI, server, and desktop binaries together and makes the backend choice explicit:cpu. On Apple Silicon macOS, it defaults to metal.
The repository’s Cargo configuration includes a stable-Rust workaround for
Candle 0.11.0 on Apple Silicon. Keep .cargo/config.toml in the checkout and
avoid replacing its target flags with a workspace-wide RUSTFLAGS value;
release, debug, and test profiles are configured to work together.
Manual Cargo Builds
If you only want specific binaries, use package-scoped commands:flash-attn or cudnn, for example
cargo build --release -p izwi-server --features cuda,flash-attn. Only enable
cudnn when the matching cuDNN development and runtime libraries are installed.
Install UI Dependencies
The web UI requires Node.js:Build the UI
Required for desktop app builds. The UI must be built before compilingizwi-desktop:
Install CLI Tools
Using the Install Script
~/.local/bin:
izwi— Main CLIizwi-server— API serverizwi-desktop— Desktop application
izwi serve, run izwi status --detailed to confirm which backend the runtime actually selected.
Manual Installation
Development Mode
Run Server in Dev Mode
Run UI in Dev Mode
In a separate terminal:http://localhost:5173 and proxies API requests to the server.
Run with Hot Reload
Project Structure
Running Tests
Building Release Packages
Tauri installer bundles include the release CLI and server binaries as bundled resources, so build those binaries before runningcargo tauri build. If you
chain the commands, use && so Tauri does not continue after a failed binary
build.
macOS DMG
target/release/bundle/dmg/Izwi_*.dmg
Linux DEB
target/release/bundle/deb/izwi_*.deb
Windows Installer
target/release/bundle/nsis/Izwi_*-setup.exe
Troubleshooting
Rust version too old
Missing OpenSSL (Linux)
Metal not available (macOS)
Ensure you’re on Apple Silicon and macOS 12.0+:CUDA build fails
Ensure CUDA toolkit is installed andnvcc is in PATH: