LlamaCppDesk is a Tauri-based cross-platform desktop app for managing and chatting with local llama.cpp models.
If you just want to use the app, download the installer from the GitHub Release page that matches your computer:
- Windows:
.msi - Linux:
.AppImage - macOS:
.dmg
You do not need the source code unless you want to build or change the app yourself.
- Tauri backend:
src-tauri/ - Tauri frontend:
ui/ - Migration docs:
docs/migration/ - Smoke validation:
tests/smoke/
- Node.js 22+
- npm
- Rust stable toolchain (with Cargo)
- Windows:
- Visual Studio C++ build tools / MSVC runtime must be installed.
- If you see
LNK1104 msvcrt.lib, your MSVC toolchain/runtime is incomplete.
- Linux (for Tauri/GTK builds):
pkg-configlibglib2.0-devlibgtk-3-devlibwebkit2gtk-4.1-devlibayatana-appindicator3-devlibrsvg2-dev
From repository root:
npm --prefix ui installnpm --prefix ui run devThis starts the browser-only Vite app on the default port (5173). Tauri features are disabled in that mode.
For remote browser mode against a Tauri backend, see docs/migration/remote-mode.md.
npm --prefix ui run buildcargo fmt --manifest-path src-tauri/Cargo.toml
cargo check --manifest-path src-tauri/Cargo.tomlcargo run --manifest-path src-tauri/Cargo.tomlcargo run will launch the Tauri shell and start the UI through the same npm --prefix ui run dev command used for browser-only development.
The app stores user data (settings, presets, history, downloaded models) in Tauri's app_data_dir() under a migration-data/ subdirectory.
Remote browser mode stores its connection settings in browser local storage and uses LLAMACPPDESK_REMOTE_BIND plus LLAMACPPDESK_REMOTE_TOKEN on the backend host.
| OS | Path |
|---|---|
| Windows | %APPDATA%\com.llamacppdesk\migration-data\ |
| Linux | ~/.local/share/com.llamacppdesk/migration-data/ |
| macOS | ~/Library/Application Support/com.llamacppdesk/migration-data/ |
Use smoke scripts before opening/merging migration PRs:
.\tests\smoke\Invoke-SmokeChecks.ps1./tests/smoke/Invoke-SmokeChecks.shStricter path (includes cargo check --locked):
.\tests\smoke\Invoke-SmokeChecks.ps1 -SkipPrereqCheck -IncludeCargoCheck./tests/smoke/Invoke-SmokeChecks.sh --skip-prereq-check --include-cargo-checkManual checklist: tests/smoke/smoke-checklist.md
- Migration CI:
.github/workflows/migration-ci.yml- Cross-platform validation matrix
- Smoke checks and per-OS diagnostics artifacts on failure
- Tag build workflow:
.github/workflows/build-on-tag.yml- Builds Tauri app via
cargo tauri build - Uploads the platform installers only: Windows
.msi, Linux.AppImage, macOS.dmg - Creates a GitHub release named
LlamaCppDesk vX.Y.Zwith a short download section and a changelog, then attaches only those installers
- Builds Tauri app via
- Contribution rules:
CONTRIBUTING.md - Agent ownership:
AGENTS.md - Migration runbook:
docs/migration/runbook.md - Parity checklist:
docs/migration/parity-checklist.md
The Tauri app includes:
- Settings, presets, history persistence
llama-serverlifecycle and health/log surfacing- Downloader start/cancel/status flow
- Chat stream start/cancel/status flow
- Typed Tauri API integration in the UI