lux / README.md
henrywangxf's picture
sync model card from c6fc451a9921b5d06668dffb174b4e056877e644
a495018 verified
---
license: apache-2.0
base_model: Qwen/Qwen3-1.7B
tags:
- linux
- sysadmin
- agent
- tool-use
- gguf
language:
- en
pipeline_tag: text-generation
---
# lux
Fine-tuned [Qwen3-1.7B](https://huggingface.co/Qwen/Qwen3-1.7B) for Linux system administration tool calls. Powers the slow path of the [lux CLI](https://github.com/henrywang/lux) β€” when the rule-based fast path can't classify a request, this model parses it into a structured tool invocation.
This repo ships the **raw GGUF weights + Modelfile**. If you want the full CLI experience (with luxd, ollama, pre-pulled weights, and a REPL), use [`henrywangxf/lux-portable`](https://huggingface.co/henrywangxf/lux-portable) instead.
## Usage
### With ollama (recommended)
```bash
ollama pull hf.co/henrywangxf/lux
ollama run hf.co/henrywangxf/lux "restart nginx"
```
Ollama reads the bundled `Modelfile` automatically β€” SYSTEM prompt, template, and sampling params come with the pull.
### With llama.cpp
```bash
wget https://huggingface.co/henrywangxf/lux/resolve/main/qwen3-1.7b.Q4_K_M.gguf
./llama-cli -m qwen3-1.7b.Q4_K_M.gguf -p "restart nginx"
```
You'll need to supply your own prompt template β€” see `Modelfile` in this repo for the one lux expects.
## What the model outputs
Trained to emit tool calls for lux's registry. Typical interaction:
```
user: my disk is almost full
model: {"tool": "check_disk_usage", "args": {}}
```
```
user: install firefox
model: {"tool": "install_flatpak", "args": {"app": "org.mozilla.firefox"}}
```
The full tool schema lives in [lux-tools](https://github.com/henrywang/lux/tree/main/crates/lux-tools). If you're using this model outside of lux, you'll need to parse these tool calls and dispatch them yourself.
## Training
- **Base:** [Qwen/Qwen3-1.7B](https://huggingface.co/Qwen/Qwen3-1.7B) (Apache 2.0)
- **Method:** LoRA fine-tuning on a curated set of Linux sysadmin tool-use traces
- **Quantization:** Q4_K_M (GGUF)
- **Recipe:** see [finetune/](https://github.com/henrywang/lux/tree/main/finetune) in the main repo
## Intended use
- Parsing natural-language sysadmin requests into structured tool calls
- Running locally on a laptop (β‰₯8 GB RAM is comfortable for Q4_K_M)
- Integrating with your own agent loop over lux's tool schema β€” or using lux directly
## Limitations
- **English only.**
- **Tuned for Fedora / RHEL-family systems** (dnf, systemd, firewalld). Other distros work for most tools but package-manager queries degrade.
- **Not a general-purpose chatbot** β€” asking unrelated questions produces garbage tool calls.
- **Small model, small context.** Multi-turn conversations longer than a handful of exchanges will drift; lux avoids this by keeping history trimmed.
- **Destructive actions are not gated by the model** β€” that's the job of the lux CLI, which asks for confirmation before running anything destructive. If you call the model directly, implement your own confirmation step.
## License
Apache-2.0, inherited from Qwen3-1.7B. Fine-tuning derived weights are redistributed under the same terms.
## Links
- Source: https://github.com/henrywang/lux
- Portable bundle: https://huggingface.co/henrywangxf/lux-portable
- Base model: https://huggingface.co/Qwen/Qwen3-1.7B
- Issues / feedback: https://github.com/henrywang/lux/issues