A local AI terminal assistant powered by Ollama. Streams responses token by token, renders markdown, and stays out of your way.
- Python 3.11+
- Ollama running locally
pip install ollama rich --break-system-packages
chmod +x ~/nova/nova.py
echo 'alias nova="python ~/nova/nova.py"' >> ~/.zshrc
echo 'alias a="python ~/nova/nova.py"' >> ~/.zshrc
source ~/.zshrcnova launch with the default profile
nova -p coder launch with the coder profile
nova -m llama3 override the model on startup
| Command | Description |
|---|---|
/help |
show all commands |
/model <name> |
switch Ollama model mid-session |
/profile <name> |
load a profile (clears history) |
/profiles |
list available profiles |
/models |
list locally installed Ollama models |
/image <path> |
attach an image to the next message (vision models) |
/file <path> |
read a file and inject its contents into context |
/clear |
clear conversation history |
/status |
show current model and profile |
/exit |
quit |
For /file, Nova checks the context/ directory first, so you can drop frequently used files there and reference them by name.
Profiles are defined in config.toml. Each one has a model and a system_prompt that gets layered on top of the global base_system_prompt. Switching profiles with /profile clears the conversation history.
Built-in profiles: default, coder, debug, math, ml, sysinfo
Adding a new profile is just a new [profiles.name] block in config.toml.
config.toml controls the default profile, history limit, base system prompt, and all profiles. Everything is meant to be edited freely.