llama-buddy
A friendly CLI wrapper for llama.cpp
Manage, download, and serve local LLMs with a single command.
Think of it as an ollama-like experience built on top of llama-server.
Features
- Background server — start/stop/restart
llama-serveras a daemon - Multi-model routing — preset-based configuration with automatic model load/unload
- Interactive downloads — search HuggingFace, pick a quant, download with progress and resume
- Rich terminal UI — tables, panels, interactive selectors, and live search
- GGUF inspector — view model metadata, architecture, and sampling parameters
- Server props — inspect active sampling parameters on loaded models
- Sampling sync — automatically applies GGUF-recommended sampling params to your preset
- Per-model settings — context size, GPU layers, flash attention, and more
- Multi-token prediction — models that ship an MTP head get speculative decoding switched on by themselves. A head shipped as a separate file is downloaded with the model and only wired in once the installed llama.cpp is confirmed to load it; the check runs again after every llama.cpp upgrade
- Idle sleeping —
llama-serverreleases the weights of a model after a configurable idle timeout - VRAM tracking — automatically parses server logs to show memory usage per model
- Auto-sync — preset file stays in sync with the llama.cpp cache automatically
Screenshots
Model listing — llb models
Interactive download — llb download
Model info — llb info
Installation
pipx install llama-buddy
Or with uv:
uv tool install llama-buddy
This installs the llb command into an isolated environment and adds it to your PATH.
Prerequisites
- Python 3.10+
- llama.cpp installed and
llama-serveron yourPATH
Quick start
# Download a model (interactive search)
llb download
# Or specify directly
llb download mistralai/Ministral-3-3B-Instruct-2512-GGUF:Q4_K_M
# Start the server
llb start
# List all models
llb models
# Chat with a model (uses llama-cli)
llb chat
# Inspect model metadata
llb info
# Show active sampling params for a loaded model
llb props
# Apply GGUF-recommended sampling params to all models
llb info --apply-sampling
# Configure settings (interactive TUI)
llb settings
# Open the web UI in your browser
llb open
# Stop the server
llb stop
Commands
| Command | Description |
|---|---|
llb start |
Start llama-server in the background. Extra args are forwarded. |
llb stop |
Stop the running server. |
llb restart |
Restart the server. |
llb status |
Show whether the server is running. |
llb models |
List all models with status, size, VRAM usage, and grouping. Supports --sort size. |
llb download [model] |
Download a model. Interactive HF search when no model given. |
llb remove [model] |
Remove a model with confirmation dialog. --keep-files to preserve GGUFs. |
llb info [model] |
Show GGUF metadata. Interactive selector when no model given. |
llb info --apply-sampling [model] |
Write GGUF sampling params into the preset. All models when no model given. |
llb props [model] |
Show active server sampling params for a loaded model. |
llb settings |
Interactive editor for global and per-model settings. |
llb chat [model] |
Interactive chat via llama-cli. Model selector when no model given. |
llb open |
Open the llama-server web UI in your browser. |
llb logs |
Tail the server log file. |
Configuration
Config files live in ~/.config/llama/:
| File | Purpose |
|---|---|
models.ini |
Model preset file — sections are HF repo IDs, auto-synced with cache |
settings.json |
Global server settings (port, context size, GPU layers, etc.) |
vram.json |
Cached per-model VRAM usage (parsed from server logs) |
server.pid |
PID of the running server |
server.log |
Server stdout/stderr |
Per-model settings
Run llb settings and select Model Settings to configure per-model overrides:
- Context size, GPU layers, flash attention
- Custom aliases
- Any
llama-serverparameter
Development
# Clone and install
git clone https://github.com/thilomichael/llama-buddy.git
cd llama-buddy
uv sync
# Run
uv run llb <command>
# Test
uv run pytest
# Lint
uv run ruff check src/ tests/
License
MIT
Metadata
Release files for llama-buddy 0.1.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llama_buddy-0.1.15.tar.gz | 42.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llama_buddy-0.1.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 93.1 kB
Release files / llama_buddy-0.1.15.tar.gz
| Download URL | llama_buddy-0.1.15.tar.gz |
|---|---|
| Size | 42.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0932be946ad2793ee356bd268623e923d4b916a080f56fdbf7bac8373a768a9d
|
|
BLAKE2b-256 checksum How to use checksums |
595f85d5438acfbe41d35e4b2968f3834047bfd8fafc13514d916d9bace8ce7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / llama_buddy-0.1.15-py3-none-any.whl
| Download URL | llama_buddy-0.1.15-py3-none-any.whl |
|---|---|
| Size | 50.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08441f5b48573a0603d3c84b9c4e180d17cd4788d554a424f6be9e868ed54b2f
|
|
BLAKE2b-256 checksum How to use checksums |
0b9d5168a7fb624a48d135365ce58b720b38f3d685a46becb0b2a286b8b4006d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|