nrvnad is the daemon server that loads an LLM model and processes inference jobs from a workspace directory.
Usage
Interactive Mode
Runnrvnad without arguments to launch the interactive dashboard:
- Available workspaces with job status (queued, done, failed)
- Available GGUF models in the models directory
- Interactive selection prompts
Arguments
Path to GGUF model file or model name to search for in the models directory.
Directory path for job storage and processing. Will be created if it doesn’t exist.
Number of concurrent workers (default: 4, range: 1-64).
Options
Path to vision projection model (mmproj) for multimodal inference. Auto-detected if available.
Number of concurrent workers to run (1-64).
Specify workspace path via flag instead of positional argument.
Display help message and interactive dashboard.
Display version number.
Environment Variables
Custom directory for GGUF models. Defaults to
./models or auto-detected relative to binary location.Log level: ERROR, WARN, INFO, DEBUG, TRACE (default: INFO in server mode, ERROR in interactive mode).
Sampling temperature. Auto-set based on model type if not provided:
- Code models: 0.3
- Reasoning models (DeepSeek, R1): 0.6
Examples
Start daemon with specific model
Start with 8 workers
Start with vision model
Using flags
Model name search
You can provide a partial model name andnrvnad will search the models directory:
.gguf file containing “qwen” in the models directory.
Behavior
Model Resolution
- If the provided path exists, uses it directly
- Otherwise searches
NRVNA_MODELS_DIRfor.gguffiles matching the provided string - Excludes mmproj files from model search
- Returns first alphabetically sorted match
MMProj Auto-Detection
When a model is loaded,nrvnad automatically searches for matching mmproj files:
- Looks in the same directory as the model
- Matches based on model filename stem
- Prioritizes exact matches
Workspace Structure
The daemon expects/creates this structure:PID Management
The daemon writes its PID to<workspace>/.nrvnad.pid on startup and removes it on clean shutdown.
Signal Handling
The daemon handlesSIGINT and SIGTERM for graceful shutdown: