Nova AI Assistant¶
Nova is Eight.ly's built-in AI that manages your server through natural language. Ask it to list containers, check storage health, create VMs, or explain system status — Nova figures out what you're really asking, goes and looks at the box's real state, and answers in plain language.
Where to find it: Sidebar > Nova
What Nova can do¶
Nova has 41 tools organized across six categories:
| Category | Example tools |
|---|---|
| Docker | List containers, inspect, start/stop/restart, view logs, pull images |
| Storage | Pool status, drive health, SMART data, SnapRAID sync status |
| VMs | List VMs, create, start/stop, snapshots, resource usage |
| LXC | List containers, lifecycle actions (start/stop/restart) |
| File Sharing | List SMB shares, list NFS exports |
| System | CPU/memory/disk usage, uptime, network interfaces, firewall rules, health overview, installed Nova models, App Store search, timezone |
Example queries¶
Docker
- "What containers are running?"
- "Show me the logs for the plex container"
- "Restart the nginx container"
- "How much memory is Jellyfin using?"
- "Pull the latest image for homeassistant"
Storage
- "How much disk space is left?"
- "Show me the SMART status for /dev/sda"
- "Is my SnapRAID array in sync?"
- "Which drive has the most errors?"
- "What's the health of my storage pool?"
System
- "What's using the most CPU right now?"
- "Show me network interfaces and their IPs"
- "How long has the server been up?"
- "What's the system temperature?"
- "Give me a health overview of the system"
VMs and LXC
- "Create a new VM with 4 cores and 8GB RAM"
- "List all VMs and their status"
- "How much memory is my Ubuntu VM using?"
- "Take a snapshot of the debian-dev VM"
- "Show me LXC container resource usage"
Models¶
Nova pairs a fixed tool router with a voice you pick. The router figures out which tool to run; the voice turns the result into a natural reply. You only ever choose the voice — the router installs automatically alongside it.
The tool router (installed automatically)¶
| Model | Role |
|---|---|
| Nova Router 1.5B (Qwen 2.5-Coder 1.5B) | Decides which tool to call for whatever voice you pick. Hidden internal component, auto-installed with any voice, never chosen on its own. |
Before the router even runs, a fast built-in intent classifier (plain code, not a model) decides whether a query needs a tool at all. General-knowledge and conversational queries skip the router entirely and go straight to the voice.
Voices¶
Pick one voice. Each one installs the Nova Router 1.5B alongside it automatically.
| Voice | Base | Notes |
|---|---|---|
| Nova Talker 2B | Gemma 2 2B | Recommended default. Tiny and fast (1.6 GB), runs on any CPU or GPU. |
| Nova Talker 4B | Qwen 3 4B | Richer answers than the 2B, still fits an ~8 GB GPU. |
| Nova Talker 12B | Gemma 4 12B (QAT q4) | Premium, far smarter replies. Experimental, GPU only — needs ~8 GB VRAM. |
Model comparison¶
| Voice | Parameters | Disk Usage | Min RAM | Best for |
|---|---|---|---|---|
| Nova Talker 2B | 2B | ~1.6 GB | 4 GB | The default — fast, accurate, runs anywhere |
| Nova Talker 4B | 4B | ~2.4 GB | 6 GB | Richer answers on modest hardware |
| Nova Talker 12B | 12B | ~7.0 GB | 8 GB + ~8 GB VRAM | Best quality, GPU-only (experimental) |
| Nova Router 1.5B | 1.5B | ~1.6 GB | 4 GB | The tool router — installed automatically, not chosen |
You only install a voice
Installing any voice also pulls the Nova Router 1.5B automatically — they work in tandem behind the scenes. The Nova Talker 2B is the recommended default: it uses little RAM and runs on any CPU or GPU.
Installing models¶
Click the model button in the Nova header (or press Cmd+K) to download and manage models. Models download directly as GGUF files — the talkers and router come from Eight.ly's own Hugging Face account, and everything runs locally once downloaded; nothing is re-fetched per query.
- Models are stored in
/var/lib/eightly/nova/models/ - Download progress is shown in real-time on the Models page
- You can delete unused models to reclaim disk space
- Only one voice can be active at a time — switching voices takes a few seconds as the new model loads into memory
Architecture¶
graph LR
A[User Query] --> B[Intent Classifier - Go]
B -->|no_tool| C[Voice - Nova Talker]
B -->|tool/maybe| D[Nova Router 1.5B]
D --> E[Tool Execution]
E --> F[Result Humanization]
F --> C
C --> G[Response] - Your query hits the intent classifier — fast built-in matching, not a model
- If no tool is needed, it goes straight to your chosen voice (Nova Talker)
- If a tool is needed, the Nova Router 1.5B selects and calls the right tool
- The tool result is humanized and passed to your voice for a natural response
Multi-Modal Input¶
Nova accepts more than text — attach images and documents to your queries.
Image attachments¶
Click the paperclip icon in the composer and select Image. Nova encodes the image as base64 and passes it to Ollama's vision pipeline. Useful for:
- "What's in this screenshot?" — paste error screenshots for diagnosis
- "Read this label" — photograph a drive label or hardware serial number
Image size limit: 12 MB.
Document attachments¶
Attach PDF, DOCX, RTF, TXT, Markdown, CSV, JSON, YAML, or log files. Nova extracts the text server-side and inlines it into the prompt:
- Plain text formats (TXT, MD, CSV, JSON, YAML, LOG) are read directly, no extraction needed.
- Primary for everything else: Apache Tika, if running as a sidecar — supports DOC, ODT, EPUB, spreadsheets, and 1,400+ formats.
- Fallback:
pdftotextandpandocfor PDF/DOCX/RTF (installed by default). Legacy.docfiles need Tika — there's no local fallback for that one.
Document size limit: 50 MB. Attached files show as pills with thumbnails and a remove button.
Running Tika for full format support
For the widest document format support, deploy Apache Tika from the App Store or run it manually:
docker run -d -p 9998:9998 apache/tika:latest
Ephemeral mode¶
Click the ghost icon in the composer to enable ephemeral mode. Ephemeral chats are not saved to the server — useful for one-off questions you don't need in your history.
Export to Markdown¶
Click the export button on any chat to download the conversation as a Markdown file.
Chat Management¶
- Chat history — open the history drawer with the sidebar button (or Cmd+/)
- New chat — Cmd+N starts a fresh conversation
- Model picker — Cmd+K switches between installed models
- Close — Esc closes the current panel
Streaming responses¶
Nova streams responses in real-time using NDJSON. You'll see the response build word by word. Tool calls show inline activity cards with:
- The tool being called
- Warnings for mutating tools
- Hover-only tok/s performance stats
Advanced Usage¶
Nova maintains conversation context within a session, so you can ask follow-up questions:
- "What containers are running?" ... "Which one is using the most memory?" ... "Restart that one"
- "Show me disk usage" ... "Which filesystem is that on?" ... "What's the SMART status for that drive?"
Nova resolves references like "that one" and "it" from the conversation history. Start a new chat (click the + icon) to reset context if Nova seems confused.
Safety¶
Mutating tools (actions that change state like deleting containers or modifying storage) are blocked by default. When Nova detects a destructive request, it returns UI guidance instead of executing the action — telling you where to go in the dashboard to perform the action manually.
This prevents accidental data loss from ambiguous queries while still letting Nova be useful for read-only operations and system monitoring.
Feedback¶
Every Nova response carries a feedback control — mark a reply helpful or not, and it's appended to nova-feedback.jsonl on the server (/var/lib/eightly/nova/feedback/). This local log is what informs future tuning of Nova's routing and voices; nothing is sent off-box.
Memory¶
Click Memory in the Nova header to see what Nova remembers about you — short facts it's picked up in conversation ("remember that my media VM is called plex-vm") or that you've typed in directly. Add a note, delete one, or clear everything. This is separate from chat history: memory is what Nova carries into every new conversation, not a record of past chats.
Chat history vs. the audit log¶
Two distinct records — don't confuse them:
- Chat history — open the drawer with the sidebar button in the Nova header, or Cmd+/. It's your conversation record — past chats, ready to reopen or export. (Ephemeral chats are never saved here.)
- The audit log is the system-wide audit trail — every login, container/VM change, share and storage mutation, and every tool call Nova makes, with its arguments and outcome (including a mutating call it refused to run). Find it at Settings > Security > Audit Log. This is the record to consult for "what changed and who did it."
Troubleshooting¶
Model won't download¶
- Check that your server has internet access (
ping huggingface.cofrom the terminal) — models download directly from Hugging Face - Verify you have enough free disk space for the model (see the comparison table above)
- If behind a corporate proxy, the download may need proxy configuration
Slow responses¶
- Check which voice is loaded — larger voices (Nova Talker 12B) are slower and need a GPU
- Monitor CPU/RAM usage during queries. If the system is swapping, the model is too large for your RAM
- The first query after a model load is always slower (cold start). Subsequent queries are faster
Tool call failures¶
- Nova may select the wrong tool if your query is ambiguous. Rephrase with more specifics (e.g., "list Docker containers" instead of "list containers" if you have both Docker and LXC)
- If a tool returns an error, Nova will show the error message. Check that the underlying service (Docker, libvirt, etc.) is running
- Reopen the conversation from chat history to review what tool was called and what it returned