Lama Blanket is a desktop wrapper around llama.cpp's llama-server, built in Rust with egui.
It is aimed at local model serving with a simple GUI for picking GGUF models, estimating reasonable launch settings, saving presets, and managing the server without having to remember terminal commands.
- Download Lama Blanket.
- Download the
llama.cppbinaries from thellama.cpprepository. - Put the
llama.cppfolder next tolama-blanket.exe. - Run
lama-blanket.exe.
- GGUF model inspection and metadata parsing
- Hardware detection for CPU, RAM, and GPU-aware defaults
- Automatic launch argument generation for
llama-server - Resource estimates for RAM, VRAM, KV cache, and GPU layer offload
- Saved presets with JSON import support
- Automatic
mmprojdetection for multimodal models - Light and dark theme
The project is currently stable and usable, only tested on Windows.
Some functionality, such as startup registration and the current tray behavior work, is Windows-focused.
Lama Blanket looks for the server executable in this order:
llama.cpp/llama-server.exe../llama.cpp/llama-server.exellama-server.exe
If you keep a local llama.cpp checkout beside this app, the first two options are the expected layout.
To build Lama Blanket you need:
- Rust toolchain
- Cargo
cargo buildFor a release build:
cargo build --releaseTo create a release folder and zip in dist/:
npm run distThe generated zip contains Lama Blanket only. Users still need to download the llama.cpp binaries separately.
The app uses heuristics from model metadata and detected hardware:
- Context size starts from the GGUF context length, capped at
128000, or falls back to4096. - GPU layers are estimated from available VRAM after subtracting a safety overhead and estimated KV cache usage.
- Threads default to physical CPU cores.
- Batch threads default to logical CPU cores.
- Flash attention defaults to
autofor NVIDIA-backedllamamodels andoffotherwise. mlockdefaults on when available RAM is comfortably above model size.
These are starting points, not guaranteed best values. Larger context sizes, aggressive offload, and quantization choices can still require manual tuning.
Presets are stored in JSON and persist across launches.
Savestores the current configuration as a named preset.Import...imports one preset or an array of presets from a JSON file.- Imported presets are merged into the local preset list and remain available until deleted.
- If an imported preset has the same name as an existing preset, it replaces it.
Useful commands:
cargo check
cargo testMIT. See LICENSE.