A desktop launcher for llama.cpp. Manages runtime versions, discovers and downloads models, configures the server with full parameter coverage, and provides an embedded chat interface — all without touching the command line.
Available in two interfaces:
- GUI — A Tauri v2 desktop application (Rust backend + React/TypeScript frontend)
- TUI — A terminal-based interface built with ratatui for those who prefer the command line
Dual Interface
- GUI: Full desktop experience with visual dashboards, tabbed configuration, and embedded WebUI
- TUI: Fast keyboard-driven terminal interface with the same core features (no first-launch wizard)
Runtime Management
- Download managed llama.cpp builds from GitHub releases with automatic platform/backend detection
- Multiple versions can coexist; switch between them instantly
- Point to existing local llama.cpp installations (custom runtimes)
- Backend scoring: automatically recommends CUDA, Metal, ROCm, Vulkan, or CPU builds based on your hardware
Model Management
- Scan multiple local directories for GGUF models with recursive discovery
- Parse GGUF metadata (name, parameter count, context length, vision capability) directly from file headers
- Download models from HuggingFace with resume support and exponential backoff retry
- Curated list of recommended models filtered by your hardware
- Favorites, sorting, filtering, and quant-level color coding
- Vision model detection with automatic mmproj file pairing; vision models marked in the dashboard (eye icon in GUI,
Vmarker in TUI)
Server Configuration
- Full llama.cpp server parameter coverage — tabbed UI in the GUI (Context, Hardware, Sampling, Server, Chat, Advanced), autocomplete-driven parameter editor in the TUI
- Save and load named configuration presets; per-model preset memory (last-used preset auto-loads on model selection)
- Auto-import
presets.inifrom HuggingFace repos on model download (sampling parameters applied as a named preset) - Process lifecycle management with log streaming
- One-click launch from the dashboard
Chat
- Embedded llama.cpp WebUI in-app via iframe (GUI) or via llama-cli (TUI)
- Pop-out to a separate window (GUI)
First-Launch Wizard (GUI)
- Hardware detection and runtime recommendation
- Model selection with hardware fit indicators
- Get from zero to chatting in under a minute
Pre-built binaries for Linux, macOS (Universal), and Windows are available on the Releases page.
| Platform | Format |
|---|---|
| Linux | AppImage, .deb |
| macOS | .dmg (Universal: Intel + Apple Silicon) |
| Windows | .msi |
sudo apt-get install libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-dev librsvg2-dev patchelfNo additional system dependencies required.
# Install frontend dependencies
npm install
# Development mode (opens Tauri window with hot-reload)
npm run dev
# Production build (outputs to src-tauri/target/release/bundle/)
npm run build
# Run TUI (terminal interface)
npm run tui
# Or directly with cargo:
cargo run --manifest-path src-tauri/Cargo.toml --bin catapult-tuiThe TUI provides the same core functionality as the GUI in a keyboard-driven terminal interface.
| Key | Action |
|---|---|
d, r, m, s, l, c |
Switch tab (Dashboard, Runtime, Models, Server, Logs, Chat) |
↑/↓ |
Navigate lists |
Enter |
Select / confirm |
Esc |
Go back (to parent mode or Dashboard) |
q |
Quit |
Ctrl+C |
Quit immediately |
Ctrl+X |
Abort the active download |
- Dashboard — System info (CPU, RAM, GPUs), runtime & server status, installed model list.
Enterselects a model and jumps to Server;ftoggles favorite;xstops the server. - Runtime — Lists managed and custom runtimes.
dfetches the latest llama.cpp release and shows an asset picker;aactivates the selected runtime. - Models — Four sub-modes switched with
b(Browse HuggingFace),e(Recommended),p(Directories),Esc(back to Installed). In Installed mode:/to filter,fto favorite,xto delete,Enterto select model → Server tab. Browse mode searches HuggingFace and downloads GGUF files with mmproj picker for vision models. - Server — Autocomplete-driven parameter editor with
50+llama-server flags./orTabto search parameters,Enterto start the server,xto stop.lloads a preset,ssaves a preset.Delete/Backspaceremoves an override. - Logs — Real-time server log viewer.
ftoggles auto-follow,PageUp/PageDown/Home/Endfor scrolling. - Chat — Launches
llama-clias a subprocess with the selected model and server settings.Tabto focus the extra arguments field,Enterto launch. The TUI resumes automatically when llama-cli exits (Ctrl+Cor/exit).
# Run directly
cargo run --manifest-path src-tauri/Cargo.toml --bin catapult-tui
# Build release binary
cargo build --manifest-path src-tauri/Cargo.toml --bin catapult-tui --release
# Binary will be at: src-tauri/target/release/catapult-tui# Frontend tests (Vitest)
npm test
# Rust tests
cargo test --manifest-path src-tauri/Cargo.toml
# Type-check frontend
npx tsc --noEmitSee ARCHITECTURE.md for detailed technical documentation covering the IPC pattern, data directories, runtime/model/server subsystems, and more.
- Backend: Rust, Tauri v2, Tokio, Reqwest, Serde
- Frontend (GUI): React, TypeScript, Vite, Tailwind CSS
- Frontend (TUI): ratatui, crossterm, tui-input
- Testing: Vitest (frontend),
#[cfg(test)]modules (backend) - CI: GitHub Actions — tests on every push/PR, cross-platform builds on main/tags
Licensed under the Apache License, Version 2.0.