A fully local, privacy-first LLM workbench powered by llama.cpp - desktop GUI, terminal CLI, and an experimentation layer.
NativeLab is a desktop and terminal client for running large language models entirely on your machine. It wraps llama.cpp, running Ollama models, optional Hugging Face Transformers models, and API backends behind a polished PyQt6 GUI and a Claude-Code-style terminal CLI, with first-class support for multi-model pipelines, document references, long-document summarization, and a brand-new Labs experimentation layer.
pip install nativelab
nativelab # GUI
nativelab --cli # terminal control center (setup, chat, models, labs, integrations)| ‹ | ![]() |
› |
| ‹ | ![]() |
› |
| ‹ | ![]() |
› |
| ‹ | ![]() |
› |
| ‹ | ![]() |
› |
| ‹ | ![]() |
› |
| ‹ | ![]() |
› |
| ‹ | ![]() |
› |
- 🖥️ Desktop GUI - Chat, model library, visual pipeline builder, MCP, Download tab, Labs, theming.
- ⌨️ Terminal CLI -
nativelab --cliopens a full terminal control center for chat, local/API models, skills, Labs, saved pipelines, integrations, endpoint serving,@fileembedding, slash commands, and linting. - 🧪 Labs - A dedicated experimentation layer with a shared endpoint API. New lab features get engine status, model swap, context change, and LLM calls for free.
- 🔌 Integrations - Local JSON endpoint, route browser, and saved Discord/WhatsApp bot connector profiles.
- 🔗 Visual Pipeline Builder - 20 node types (model, transform, branch, loop, custom Python), live execution log, save/load.
- 🌐 Backend mixing - Local GGUF, running Ollama models, optional Hugging Face Transformers models, OpenAI-compatible APIs, and Anthropic endpoints share the same app state.
- 🔐 Hugging Face login - One-click browser login for gated/private repos, with access-token paste as an advanced fallback.
- ⚡ Parallel + pipeline mode - Run reasoning + coding engines simultaneously and chain them automatically.
- 🧠 Auto family detection - 20+ model families recognised from filename; correct prompt template applied.
- 📦 Downloaders - Pick popular presets or custom IDs for GGUFs, full HF Transformers snapshots, Ollama models, and llama.cpp binaries without leaving the app.
See changelog.txt for the latest release notes and docs/architecture.md for the layered design.
The docs are split into short, focused files so you can jump straight to what you need.
| Page | What's inside |
|---|---|
| docs/README.md | Documentation index with one-line summaries. |
| docs/installation.md | Install, llama.cpp setup, first-time workspace. |
| docs/cli.md | nativelab --cli - quick reference + link to the beginner guide. |
| docs/features.md | Full feature catalogue; latest release notes are in changelog.txt. |
| docs/architecture.md | Layered architecture, project structure, data flow. |
| docs/labs.md | The Labs experimentation layer + how to add a feature. |
| docs/integrations.md | Integration endpoint routes, local HTTP bridge, Discord and WhatsApp bot connectors. |
| docs/models.md | Model registry, families, quantization, API models. |
| docs/workflows.md | Pipelines, references, summarization, MCP, model/runtime downloads. |
| docs/ui.md | GUI tour, theming, shortcuts, data persistence. |
| docs/troubleshooting.md | Common errors and their fixes. |
Beginner-friendly walkthroughs:
- 🆕 Never used a terminal LLM tool? Start with nativelab/cli/cli_guide.md.
- 🆕 Want to add a lab feature? Read docs/labs.md.
pip install nativelab
nativelabThe first launch opens the desktop app. Use the Download tab to install llama.cpp binaries, grab a GGUF model, pull an Ollama model from an already-running Ollama daemon, or download a full HF Transformers snapshot. For gated/private Hugging Face repos, sign in from Settings > Accounts > Hugging Face > Login with Hugging Face first, then accept or request access on the repo page if Hugging Face still returns 403.
pip install nativelab
nativelab --cliThe CLI runs an interactive wizard the first time:
- Verifies
llama-server/llama-cliare present (or guides you to install them). - Lets you pick or download a GGUF model from HuggingFace.
- Asks for a context size with sensible defaults.
- Opens the terminal control center with Chat, Models, API Models, Skills, Labs, Pipelines, Integrations, Status, and Setup.
nativelab --cli models list
nativelab --cli api-models list
nativelab --cli skills chat-on
nativelab --cli endpoint /snapshot --json
nativelab --cli chat
Full beginner walkthrough: nativelab/cli/cli_guide.md.
The nativelab/labs/ package is a sandbox for new features. Every lab panel receives a single LabEndpoints instance and uses it for all engine interaction:
from nativelab.labs import LabEndpoints
# Read state
endpoints.status_text # "🟢 Server :8612"
endpoints.model_path # "/abs/path/to/mistral-7b.Q4_K_M.gguf"
endpoints.snapshot() # {model_name, ctx_value, server_port, …}
# Synchronous LLM call - auto-routes API > server > CLI
endpoints.call_llm(messages=[...], system_prompt="…")
# Reverse routing - ask the host app to change state
endpoints.request_load_model("/path/to/other.gguf")
endpoints.request_context(8192)
endpoints.request_unload()Add a lab feature by dropping nativelab/labs/<feature>.py with a QWidget panel that has LAB_NAME, LAB_ICON, and a set_endpoints(...) method, then appending it to LAB_FEATURES. Full guide in docs/labs.md.
- Python 3.10+
- PyQt6 (installed automatically as a dependency)
- llama.cpp binaries -
llama-server/llama-cli. The GUI's Download tab installs these for you, or you can drop them in./llama/bin/. - Optional:
psutil(RAM monitor),PyPDF2(PDF summarization),pyflakes/flake8/pylint(CLI lint). - Optional HF backend:
pip install -e ".[hf]"for Transformers, Torch, safetensors, Accelerate, SentencePiece, and Pillow.
Detailed instructions in docs/installation.md.
Issues and PRs welcome. See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
For security disclosures, see SECURITY.md.
AGPL v3 - see LICENSE. NativeLab depends on llama.cpp (MIT) and PyQt6 (GPL/commercial).
Built for people who want their LLMs local, fast, and under their own control.
Install from PyPI · GitHub · Docs · Issues







