Newer
Older
navi-1 / docs / config.md
@Eugene Sukhodolskiy Eugene Sukhodolskiy on 14 Apr 3 KB Add backend documentation

Configuration

All configuration is loaded from .env via pydantic-settings (navi/config.py). The global settings object is imported everywhere as from navi.config import settings.

LLM

Variable Type Default Description
OLLAMA_HOST str http://localhost:11434 Ollama server URL
OLLAMA_DEFAULT_MODEL str gemma4:e2b-it-q8_0 Default model (can be overridden per profile)
OLLAMA_NUM_CTX int 65536 Context window size in tokens
OLLAMA_THINK bool true Enable extended reasoning (thinking)
OPENAI_API_KEY str "" OpenAI API key (if using OpenAI backend)
ANTHROPIC_API_KEY str "" Anthropic API key (if using Anthropic backend)

Security / Sandboxing

Variable Type Default Description
FS_ALLOWED_PATHS str "*" Comma-separated paths the filesystem tool can access. "*" = no restriction
TERMINAL_ALLOWED_COMMANDS str "*" Comma-separated allowed executables for terminal. "*" = allow all
SSH_HOSTS_FILE str ssh_hosts.json Path to JSON file with named SSH connections

settings.fs_allowed_paths_list and settings.terminal_allowed_commands_list are computed properties that parse the comma-separated strings into lists.

Database

Variable Type Default Description
DB_PATH str navi.db SQLite database file path

Logging

Variable Type Default Description
LOG_LEVEL str INFO Python logging level (DEBUG, INFO, WARNING, ERROR)

Tools

Variable Type Default Description
TOOLS_DIR str tools Directory for user-defined tools (auto-discovered at startup)

Session files

Variable Type Default Description
SESSION_FILES_DIR str session_files Directory for uploaded session files
SESSION_FILES_MAX_SIZE_MB int 200 Max upload size per file in megabytes
SESSION_FILES_TTL_HOURS int 24 Hours before session file directories are cleaned up

Context compression

Variable Type Default Description
CONTEXT_COMPRESSION_ENABLED bool true Enable/disable automatic context compression
CONTEXT_COMPRESSION_THRESHOLD float 0.80 Trigger compression at this fraction of OLLAMA_NUM_CTX
CONTEXT_KEEP_RECENT int 10 Number of recent conversation turns to keep verbatim
CONTEXT_SUMMARY_TEMPERATURE float 0.3 Temperature for the summarization LLM call

Persona

Variable Type Default Description
NAVI_PERSONA str "" Global personality prompt prepended to every profile's system prompt
NAVI_PERSONA_FILE str "" Path to a .txt file containing the persona (preferred over inline NAVI_PERSONA)

Recommended: use NAVI_PERSONA_FILE=persona.txt rather than inlining the persona in .env, because multi-line values don't parse reliably in .env files.

The _load_persona_from_file validator reads the file on startup if NAVI_PERSONA is empty and NAVI_PERSONA_FILE is set.

Example .env

OLLAMA_HOST=http://localhost:11434
OLLAMA_DEFAULT_MODEL=gemma4:e2b-it-q8_0
OLLAMA_NUM_CTX=65536
OLLAMA_THINK=true

FS_ALLOWED_PATHS=*
TERMINAL_ALLOWED_COMMANDS=*

DB_PATH=navi.db
LOG_LEVEL=INFO
TOOLS_DIR=tools

CONTEXT_COMPRESSION_ENABLED=true
CONTEXT_COMPRESSION_THRESHOLD=0.80
CONTEXT_KEEP_RECENT=10

NAVI_PERSONA_FILE=persona.txt