Skip to main content

Local LLM chat assistant for Intel hardware via OpenVINO

Project description

 ███╗   ██╗ ███████╗ ██╗  ██╗ ██╗ ██╗
 ████╗  ██║ ██╔════╝ ╚██╗██╔╝ ██║ ██║
 ██╔██╗ ██║ █████╗    ╚███╔╝  ██║ ██║
 ██║╚██╗██║ ██╔══╝    ██╔██╗  ██║ ██║
 ██║ ╚████║ ███████╗ ██╔╝ ██╗ ██║ ███████╗
 ╚═╝  ╚═══╝ ╚══════╝ ╚═╝  ╚═╝ ╚═╝ ╚══════╝

A personal assistant that runs locally on your machine with a familiar CLI interface.

Reason for project existence

(Skip if you want, not necessary to read)

My laptop has a NPU and it does nothing. So, I did some research and I thought it would be a cool project to run a local llm that can do stuff locally (tool callls and what not), espcially with OpenClaw being a big hype rn, I decided to do it... and this is the result of it. Since, I have an Intel processor I went with OpenVino as the base (I plan to support all hardware and brands). But, from what I know this is the only way to run stuff of the NPU. Some people said stuff about Onnx runtime would work but I dont know. I have a lot of ideas to make this tool more use full. As of now it only tells time (lmao). I feel this project has a lot of potential. Let's see where this goes.

Features

  • Run LLMs locally on Intel NPU and GPU. (GPU not supported as of now but could theoritically work).
  • Native tool calling (Ex: date/time lookups, only tool as of now)
  • Rich terminal UI with streaming responses
  • Download and manage OpenVINO-optimized models
  • Configurable via TOML

Requirements

  • Linux (tested on Arch based system, should work on any distro)
  • Python 3.12+
  • Intel Core Ultra processor (Meteor Lake / Lunar Lake) for NPU support
  • Intel NPU driver
  • OpenVINO runtime (installed automatically via pip)

NPU driver setup

The Intel NPU driver is required to run models on the NPU. Without it, you can still run on CPU.

Arch Linux (AUR):

yay -S intel-npu-driver

or

paru -S intel-npu-driver

Ubuntu/Debian:

Download the latest .deb packages from the intel-npu-driver releases and install:

sudo dpkg -i intel-driver-compiler-npu_*.deb intel-fw-npu_*.deb intel-level-zero-npu_*.deb

Fedora:

Download the latest .rpm packages from the intel-npu-driver releases and install:

sudo rpm -i intel-driver-compiler-npu-*.rpm intel-fw-npu-*.rpm intel-level-zero-npu-*.rpm

After installing the driver, add your user to the render group to access the NPU device:

sudo usermod -aG render $USER

Log out and back in for the group change to take effect.

You can verify the NPU is available by running:

nexil devices

Installation

From PyPI:

pip install nexil

From GitHub:

pip install git+https://github.com/James-Crockett/nexil.git

Quick start

Download a model:

nexil download --model-id Qwen/Qwen/Qwen3-4B

Thinking models work better with this application, so I'd recommed it. Instruct models do work but not well with the tools.

Start the assistant:

nexil

Or launch the CLI chat directly:

nexil chat

Commands

Command Description
nexil Start the chat assistant
nexil chat Start CLI chat mode
nexil download Download a model
nexil models List installed models
nexil devices List available devices

Chat commands

Command Description
/help Show available commands
/model Switch model
/device Switch device
/clear Clear chat history
/quit Exit the assistant

Configuration

Config file: ~/.config/nexil/config.toml

model_path = "/path/to/model"
device = "NPU"

License

Apache 2.0 — see LICENSE for details.

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

nexil-0.1.2.tar.gz (92.5 kB view details)

Uploaded Source

Built Distribution

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

nexil-0.1.2-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file nexil-0.1.2.tar.gz.

File metadata

  • Download URL: nexil-0.1.2.tar.gz
  • Upload date:
  • Size: 92.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for nexil-0.1.2.tar.gz
Algorithm Hash digest
SHA256 61c242a80cc6e33ec09c33253a5acb4425c83885c494153afc8832867a990701
MD5 89587e73e82ba732ce7de5851088df9f
BLAKE2b-256 2023c14cef998b7beb69de31ed077a9ba79bad4f5b8fb80c1aed79dc96440aca

See more details on using hashes here.

File details

Details for the file nexil-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: nexil-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for nexil-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 088848489c13ca81ed84e02986c5206d317af36ffb2e10ccc19f2bc415e2fe70
MD5 3cd8602d312e5392de5578330705e6fc
BLAKE2b-256 b7684409cb7134e5934be6cca11c9791754e1457d83ded220214a126f77fbd39

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