LocalLLM is a lightweight Tauri desktop control panel for running
llama.cpp locally. It helps you discover GGUF models, configure
llama-server, preview the launch command, save per-model presets, and open
the local Web UI.
- Discover
llama-server,llama-cli,hf, andhuggingface-clifromPATH. - Install supported prebuilt
llama.cppWindows and Ubuntu Linux release assets from inside the app. - Save executable paths, model directory, manual GGUF entries, and server defaults.
- Scan a model directory recursively for
.gguffiles. - Add manually selected
.gguffiles outside the model directory. - Download GGUF files from Hugging Face through
hf download. - Preview the exact
llama-servercommand before launch. - Explain the active command in a compact helper below the preview.
- Estimate VRAM from GGUF metadata when available.
- Configure runtime, KV cache, GPU/memory, sampling, speculative decoding, chat/reasoning, multimodal, Jinja, tools, embeddings, and verbosity options.
- Save per-model presets and automatically return to the selected model's own preset when changing models.
- Start, stop, and open the local llama.cpp server.
- Run
llama-serverhidden in the background with log capture, or in a visible terminal. - Warn before starting when another background
llama-serverprocess is already running. - Reset LocalLLM's saved settings/cache without deleting downloaded models.
- Create, rename, duplicate, import, export, reset, default, and safely delete versioned Agent profiles with per-profile workspace, instructions, goal, reasoning, permissions, and execution limits.
- Recover the previous valid configuration automatically when a staged config write is interrupted or the newest file is malformed.
The built app does not require Node.js or Python to run.
You only need the tools you want LocalLLM to control:
llama-serveris required to serve models.llama-cliis optional.hforhuggingface-cliis optional for Hugging Face downloads. LocalLLM can usecurlfor a single selected file, but glob patterns such as*.ggufneed the Hugging Face CLI.- GGUF model files.
On Windows and Ubuntu-based Linux distributions, the app installs prebuilt
official llama.cpp release assets from the Settings panel. Ubuntu Linux
installs use the official *-bin-ubuntu-*.tar.gz packages and require curl
and tar on PATH; LocalLLM does not compile llama.cpp from source. You can
also browse to your own llama-server and llama-cli binaries.
- Open LocalLLM.
- In Settings, set or install
llama.cpp. - Set the model directory where your
.gguffiles live. - Press Rescan to load models.
- Pick a model from the model dropdown or model list.
- Adjust runtime options and presets.
- Press Start.
- Press WebUI or switch to the Web UI tab after the server starts.
Useful controls:
- New Preset resets the current model preset to a clean default configuration.
- Profile editor lets you create, save, select, and delete presets.
- Tools all, Jinja, Embeddings, and Verbose are quick toggles near Extra args.
- Extra args is appended to the generated
llama-servercommand. - Reset everything in Settings clears LocalLLM settings, presets, cache, logs, theme, and layout. It does not delete GGUF files or your llama.cpp install.
Install:
- Node.js 22.19 or newer (required by the bundled Pi development dependency)
- Rust stable
- Tauri prerequisites for your OS
Install JavaScript dependencies:
npm installRun in development mode:
npm run tauri devRun the frontend-only build:
npm run buildRun the current UI regression test:
npm testProfile format, migration behavior, dependency decisions, and compatibility
notes are documented in
docs/profile-and-dependency-migration.md.
Build for the current operating system:
npm run tauri buildWindows bundles are written to:
src-tauri/target/release/localllm.exesrc-tauri/target/release/bundle/nsis/src-tauri/target/release/bundle/msi/
Linux and macOS builds should be produced on their native operating systems or with CI runners for those systems. Tauri desktop bundles are OS-specific.
GitHub Actions organizes release builds by operating system (SO), splitting processor architectures (x64 and arm64) within each workflow:
- Linux (x64 & arm64):
.github/workflows/build-linux.yml - Windows (x64 & arm64):
.github/workflows/build-windows.yml - macOS (x64 & arm64):
.github/workflows/build-macos.yml
Tag, release, and manual release uploads prefix uploaded assets with the
workflow platform, such as windows-x64- or macos-arm64-, so artifacts from
different architectures stay separate.
Install Node.js, Rust, and Tauri's Linux system dependencies. On Ubuntu/Debian, the dependency list depends on your distro version, but commonly includes WebKitGTK, GTK, AppIndicator, librsvg, curl, wget, and build tools.
Then run:
npm install
npm run tauri buildLinux artifacts are produced under src-tauri/target/release/bundle/.
Build on macOS with Xcode Command Line Tools installed:
npm install
npm run tauri buildmacOS artifacts are produced under src-tauri/target/release/bundle/.
Generated folders such as node_modules, dist, and src-tauri/target are
ignored and should not be committed.
