Alpha release - expect things to be broken. This project is in active development.
warpdrv is a desktop toolkit for running local language models. It manages llama.cpp server instances across multiple GPU backends, parses GGUF models, and ships a built-in chat UI with full sampling controls — all in a single Tauri desktop app.
- ⭐ Try new models as soon as they are released - Bring your own llama.cpp builds; not wait for vendor's release cycle.
- ⭐ Multi-backend, multi-GPU - CUDA, ROCm, Vulkan; mix devices in one inference session.
- ⭐ Your daily driver - Integrates with your favorite tools with a customizable router. batteries included.
- ⭐ Workshop tools - Speculative decoding config, MCP integration, bash-based build recipes, KV cache checkpointing.
- ⭐ Open source - No hidden code. No analytics.
- Screenshots
- Features
- Install
- Quick Start
- How-To Guides
- Hardware Compatibility
- FAQ
- Roadmap
- For Developers
- Contributing
- Community & Support
- Acknowledgements
- License
![]() |
![]() |
![]() |
![]() |
Server management. Launch llama-server instances with full parameter control, including cache checkpointing, speculative decoding, n-gram speculation, multimodal projections, and any custom flag you need. Per-model parameter overrides let you save the right settings for each model so launch is one click.
Proxy. An OpenAI-compatible endpoint proxy lets any chat app talk to your running servers. Server aliases route requests to the right backend, with optional auth and a built-in web server for the UI, so you can access host and warpdrv anywhere.
Backends. Register one or more llama-server builds — stock, custom-compiled, ROCm, CUDA, whatever — and group them for quick swapping. The Recipe Engine compiles fresh builds on demand using shared bash recipes.
Models. Browse and download from Hugging Face Hub directly inside warpdrv, with full download management. Local models are scanned, parsed, and organised into folders.
Chat. A built-in chat UI with threads, folders, and full sampling configuration. MCP server integration handles tool calling with per-tool permission prompts.
Download the latest .deb or .AppImage from the releases page.
.deb (Debian, Ubuntu, Mint):
sudo dpkg -i warpdrv_*.deb.AppImage (any distro):
chmod +x warpdrv-*.AppImage
./warpdrv-*.AppImageDownload the latest .msi installer from the releases page.
Note: Recipes feature does not work on natively Windows as it relies on Bash scripts.
No prebuilt build yet. Build from source — see For Developers. Untested on Apple Silicon; PRs welcome.
On first launch, warpdrv shows an onboarding welcome screen that walks you through:
- Adding a folder where your GGUF models live (or where to download them)
- Optional: registering a llama.cpp build
- A short slideshow of next steps (launch a server, start chatting, etc.)
Config and data are stored at ~/.config/warpcore/. Survives upgrades — config is preserved across reinstalls.
warpdrv checks for updates on startup and shows a banner if a new version is available. Click the banner to open the releases page, download the new version, install it. Your data is preserved.
- Install warpdrv — see Install
- Onboarding — pick a models folder, optionally add a llama.cpp build
- Scan models — warpdrv parses every GGUF in your folder. Alternately navigate to the Hub page to download a model.
- Add a backend — point warpdrv at a
llama-serverbinary; it auto-detects devices - Launch a server — pick a model, set GPU layers + context, hit Launch
- Open Chat — pick the running server, start a thread, test the model
- Recipes — automating llama.cpp builds and other LLM-related bash tasks
- Aliases — routing addresses for servers behind the OpenAI-compatible proxy
- Backend Groups — swapping llama.cpp builds without re-configuring servers
- Proxy, Remote Access, and Authentication — direct vs proxied access, bearer tokens, accessing warpdrv from another machine
- KV Cache Checkpoints — saving and restoring slot state to skip prompt prefill
warpdrv works with any standard llama-server binary, so compatibility tracks llama.cpp's own support matrix.
| Backend | Status |
|---|---|
| CUDA (NVIDIA) | Supported |
| ROCm (AMD) | Supported |
| Vulkan (any GPU) | Supported |
| CPU only | Supported |
- Bring your own
llama-serverbinary built against your hardware. The Recipe Engine can help compile one. - Speculative decoding may not work with sliding-window-attention models.
- For GPU-specific build flags and runtime quirks, see the llama.cpp documentation for your target.
Is this a daily-driver chat app? Depends. warpdrv is a workshop bench for testing models and llama.cpp builds. For polished daily chat, or coding, warpdrv's proxy server integrates seamless with your existing tools and workflows, and provides a customizable router using user-defined aliases.
How does this differ from LM Studio / Ollama / Jan? Many server management apps bundle a fixed llama.cpp version and limits which models / quants work. warpdrv lets you bring your own llama.cpp builds — including bleeding-edge forks — and run them with full parameter control. Built for tinkerers, and also for end-users wanting a one-click chat app.
Do I need to compile llama.cpp myself?
No, but you can. warpdrv works with any standard llama-server binary. The Recipe Engine helps if you want to compile your own. Note: warpdrv does not ship with a llama binary, you have download one from the official github repo LlaMa.cpp Releases.
Where is my data stored?
Linux: ~/.config/warpcore/ — chat database, settings, MCP config, recipes. Models stay wherever you put them; warpdrv only indexes them. Your data never leaves your computer.
Can I use warpdrv commercially? warpdrv is licensed under AGPL-3.0. If you offer it as a network service, you must publish your modifications under AGPL. For commercial licensing without AGPL obligations, join the Discord and PM the mods.
Why AGPL? To keep the project genuinely open: derivatives stay open, including SaaS forks.
Does warpdrv send my data anywhere?
No telemetry, no analytics, no remote calls — except the update-check ping to fetch release.json from the GitHub repo on startup.
Why is X feature broken? Alpha software. File an issue with reproduction steps. Better yet, send a PR :)
Who made this app? A combination of AIs and human effort by one software developer. AI used were local Qwen 3.5 27b, Qwen 3.5 27b, Qwen 3.6 35b, Claude Opus 4.6 for planning and skeletons. This app itself was used to host the local LLMs during development.
How long did this take to build Approx. One week for MVP. One month for initial public release.
- Short-term
- Stabilise critical features (server stop, log parsing)
- Windows prebuilt installer
- Mid-term
- macOS prebuilt build (Apple Silicon)
- Voice dictation in chat
- Long-term
- Richer chat interface.
User feedback and feature requests are very welcome — drop them in Discord, Reddit, or GitHub Issues.
warpdrv is a Tauri desktop app wrapping a Node.js server and a React frontend. The Tauri shell spawns the Node server as a sidecar binary on launch, monitors its health, and restarts it on crash. The React app talks to the server over HTTP + SSE.
- Desktop shell — Tauri 2 (Rust)
- Frontend — React 19, Chakra UI v3, Vite, Zustand, assistant-ui
- Server — Node 24, Express 5, better-sqlite3, better-sse
- Bundling — esbuild +
@yao-pkg/pkg(server binary), Vite (frontend) - Shared types — TypeScript-only
@warpcore/sharedpackage
packages/
shared/ @warpcore/shared — Types, enums, utilities. No runtime deps.
app/ @warpcore/app — React frontend.
server/ @warpcore/server — Express + SQLite. Process management, GGUF parsing, recipes.
bridge/ @warpcore/bridge — Composable chat engine (extracted, used internally).
desktop/ — Tauri shell + release scripts.
Prerequisites:
- Node 24+
- Rust + Cargo (for Tauri)
- Linux: standard Tauri dependencies — see Tauri prerequisites
Steps:
git clone https://github.com/mikjee/warpdrv.git
cd warpdrv
npm installRun in dev mode:
The recommended way is via VSCode. Open the repo, go to the Run and Debug panel, pick the warpdrv-all launch config, and hit play. All packages launch in a single integrated terminal.
If you don't use VSCode, run the same thing manually:
npm run devRelease build:
./release.sh # Linux .deb (default)
./release.sh deb appimage # both .deb and .AppImage
./release.sh appimage # AppImage onlyBundle formats supported by Tauri: deb, appimage, rpm, dmg, msi, nsis, updater. Pass any combination to release.sh.
Artifacts land in packages/desktop/target/release/bundle/.
Contributions are welcome. See CONTRIBUTING.md for setup, conventions, and PR rules.
- Look for
good first issuelabels - All commits must be signed off (
git commit -s) per the Developer Certificate of Origin - Follow the codebase conventions: hard tab indent,
T/I/Etype prefixes,Record<>overMap, noany
- Discord — discord.gg/Q9kSKhY5 (newly created, help shape it)
- Reddit — r/warpdrv
- Issues — GitHub Issues
- Discussions — GitHub Discussions
Thanks to the following projects and their developers/maintainers for enabling developers to create wonderful Open-Source projects:
- llama.cpp — Georgi Gerganov and contributors
- Tauri — desktop shell framework
- assistant-ui — chat UI primitives
- better-sqlite3, better-sse, Express, React, Chakra UI, Vite, Zustand
- All beta testers and early users
warpdrv is built and maintained by me, a solo dev. Consider supporting my open-source work - it helps in funding the hardware and fuels the late-night coding sessions 🤓
warpdrv is licensed under the GNU Affero General Public License v3.0 — see LICENSE.
In plain English:
- Free for personal, hobbyist, and internal commercial use
- Modifications must be shared under AGPL if you distribute or run as a network service
- Original copyright notices must be preserved
- No royalties owed; no warranty provided
For commercial licensing without AGPL obligations, join the Discord and PM the mods.









