Metadata-Version: 2.4
Name: novatrix
Version: 0.1.0
Summary: A local Qwen-powered AI assistant with persistent memory, PDF reading, web search, and extensible plugins.
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: huggingface_hub>=0.16.0
Requires-Dist: llama-cpp-python>=0.2.0
Requires-Dist: pypdf>=3.0.0
Requires-Dist: ddgs>=9.0.0

# Novatrix

Novatrix is a local Qwen-powered personal AI assistant with persistent memory, PDF reading, web search, and extensible plugins.

The package and distribution name is **`novatrix`**, and the user-facing AI assistant is named **Nova**.

## Installation

```bash
pip install novatrix
```

Then launch Nova using the single console command:

```bash
nova --chat
```

On first use, Nova downloads the quantized **Qwen3-4B Q4_K_M** GGUF model (~2.5 GB) from Hugging Face into your local Hugging Face cache directory. The model weights are cached automatically and are not bundled inside the Python package installation directory.

## Usage & Commands

```bash
nova --ask "What is 2+2?"
nova --think "Why is gravity related to time?"
nova --tchat
nova --chat
nova --new chat "Physics"
nova --open chat "Physics"
nova --list
nova --delete chat "Physics"
nova --search "latest AI developments"
nova --read_pdf "paper.pdf"
nova --summarise --pdf "paper.pdf"
```

### In-Chat Directives

Inside interactive chat (`--chat` or `--tchat`):

- **`@think`**: Enables reasoning mode for a message (e.g. `You > @think explain quantum entanglement`).
- **`@web`**: Explicitly requests a live web search for current information (e.g. `You > @web @think who won the latest game?`).

Without `@web`, Nova remains completely offline.

## Persistent Storage & Model Cache

- **Persistent Memory**: Conversation history is stored cleanly as JSON in a user-writable directory (`%APPDATA%\Nova\chats` on Windows, `~/.local/share/nova/chats` on Linux/macOS, or `$NOVA_DATA_DIR/chats`). Installing, updating, or uninstalling Novatrix does not delete your saved conversations.
- **Model Cache**: Model weights are stored in standard Hugging Face cache (`~/.cache/huggingface/hub/`).

## Plugin System

Novatrix includes an extensible plugin architecture. See [NOVA_PLUGIN_SPEC.md](NOVA_PLUGIN_SPEC.md) for details on writing custom plugins.

## License

This repository does not currently include a license file. Please add an appropriate license before publishing to PyPI.
