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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61c242a80cc6e33ec09c33253a5acb4425c83885c494153afc8832867a990701
|
|
| MD5 |
89587e73e82ba732ce7de5851088df9f
|
|
| BLAKE2b-256 |
2023c14cef998b7beb69de31ed077a9ba79bad4f5b8fb80c1aed79dc96440aca
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
088848489c13ca81ed84e02986c5206d317af36ffb2e10ccc19f2bc415e2fe70
|
|
| MD5 |
3cd8602d312e5392de5578330705e6fc
|
|
| BLAKE2b-256 |
b7684409cb7134e5934be6cca11c9791754e1457d83ded220214a126f77fbd39
|