Skip to main content

NativeLab AI framework

Project description

NativeLab

NativeLab

A fully local, privacy-first LLM workbench powered by llama.cpp - desktop GUI, terminal CLI, and an experimentation layer.

PyPI version PyPI downloads Python License: AGPL v3 Platform Powered by llama.cpp GitHub stars GitHub PRs Last commit Issues Contributors GitHub clones PyPI Downloads


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)

App screenshots

NativeLab light mode chat workspace
Light chat workspace
NativeLab dark mode chat workspace
Dark mode
NativeLab Dev workspace with labs and tools
Dev workspace
NativeLab visual pipeline builder
Pipeline builder
NativeLab server and model controls
Server controls
NativeLab skill management tab
Skills
NativeLab appearance and theme controls
Appearance
NativeLab app screenshot
NativeLab UI

✨ Highlights

  • 🖥️ Desktop GUI - Chat, model library, visual pipeline builder, MCP, Download tab, Labs, theming.
  • ⌨️ Terminal CLI - nativelab --cli opens a full terminal control center for chat, local/API models, skills, Labs, saved pipelines, integrations, endpoint serving, @file embedding, 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, shipped example presets, resizable sidebars, AI-assisted pipeline generation, native-accelerated graph helpers, 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.


📚 Documentation

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/pipeline-builder.md Visual pipeline builder, AI Builder, examples, JSON schema, native pipeline core.
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:


⚡ Quick start

GUI

pip install nativelab
nativelab

The 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. The HF Transformers downloader includes an in-app library installer for the optional Transformers runtime packages. 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.

CLI

pip install nativelab
nativelab --cli

The CLI runs an interactive wizard the first time:

  1. Verifies llama-server / llama-cli are present (or guides you to install them).
  2. Lets you pick or download a GGUF model from HuggingFace.
  3. Asks for a context size with sensible defaults.
  4. 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.


🧪 Labs - the experimentation layer

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.


🛠️ Requirements

  • 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), pypdf (PDF summarization), pyflakes / flake8 / pylint (CLI lint).
  • Optional HF backend: use the HF Transformers downloader's Install Libraries action, or install the displayed Transformers/Torch/safetensors/Accelerate/SentencePiece/Pillow command manually.

Detailed instructions in docs/installation.md.


🤝 Contributing

Issues and PRs welcome. See CONTRIBUTING.md and CODE_OF_CONDUCT.md.

For security disclosures, see SECURITY.md.


📜 License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nativelab-0.3.7.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nativelab-0.3.7-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file nativelab-0.3.7.tar.gz.

File metadata

  • Download URL: nativelab-0.3.7.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nativelab-0.3.7.tar.gz
Algorithm Hash digest
SHA256 8dc5a6e634eba15c20cd881d283b72f39469d4cd4fc92e6b95b0bb6e1f14f4d4
MD5 9b556c29c06a0bc3a7a35c7c543cfbc0
BLAKE2b-256 f0122e9fe286c57fd863f61011b305e4efec31fc385901742a7014a874d2e08f

See more details on using hashes here.

File details

Details for the file nativelab-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: nativelab-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nativelab-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 75bf67bbf679b86cf56ac9ed7d772f084ec1369b195f3021d1e90c2ebf452fb8
MD5 3275ee0bcd40741c573f89e5ea17740d
BLAKE2b-256 84305495749adf7484dc44ca00728b9448dd3a1325695ce7b6051dc35540143c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page