NevoFlux
Configuration

config.toml

Where the agent's config file lives, its full schema, and a complete example.

Most settings you change in the UI are stored in a single TOML file, config.toml. You can edit it by hand, and the Settings UI writes to it for you.

Where it lives

PlatformPath
Linux~/.config/nevoflux/config.toml
macOS~/Library/Application Support/nevoflux/config.toml (falls back to ~/.config/nevoflux/config.toml if that exists)
Windows%APPDATA%\nevoflux\config.toml — e.g. C:\Users\<you>\AppData\Roaming\nevoflux\config.toml

The file is created with defaults the first time the agent runs. Every field is optional — anything you omit uses its default.

Hand edits require a restart. Changes you make through the Settings UI are applied live. If you edit config.toml by hand, restart NevoFlux so the agent reloads it.

config.toml is not the nevoflux config CLI. The nevoflux config get/set commands read and write a separate internal key/value store, not this file. Edit config.toml directly (or use the Settings UI) to change model/agent behavior.

Sections

SectionPurpose
[llm]Active provider and shared generation settings
[llm.<provider>]Per-provider key, model, base URL
[daemon]Background process: ports, timeouts, concurrency
[daemon.session]Session limits and cleanup
[daemon.context]Context window, history, compression
[daemon.subagent]Sub-agent concurrency and limits
[storage]Local SQLite storage
[logging]Log level and output
[auth]Command auto-approval and sensitive-file patterns
[learning]Self-learning pipeline
[embedding]Embedding model for search
[knowledge_base] / [knowledge_base.brain]GBrain knowledge base (details)
[tts.*]Text-to-speech / transcription engines

Key fields

[llm]

FieldTypeDefaultMeaning
providerstringThe active provider, e.g. "anthropic"
max_tokensint32768Max tokens per response
temperaturefloat0.7Sampling temperature
timeout_secsint120Request timeout
max_retriesint3Retry count

[llm.<provider>]

FieldTypeMeaning
api_keystringProvider API key (or use an env var — see Providers)
modelstringModel id; defaults to the provider's default
base_urlstringOverride the API endpoint (proxies / compatible servers)
context_windowintOverride the model's context size
use_streamingboolStream responses (default on; ollama is off)

A complete example

[llm]
provider = "anthropic"
max_tokens = 32768
temperature = 0.7
timeout_secs = 120
max_retries = 3

[llm.anthropic]
# Prefer the ANTHROPIC_API_KEY env var over storing the key here.
api_key = "sk-ant-..."
model = "claude-sonnet-4-20250514"
# base_url = "https://api.anthropic.com"   # optional
# context_window = 200000                  # optional

[llm.openai]
model = "gpt-4o-mini"
# base_url = "https://my-openai-compatible-host/v1"

[llm.ollama]
model = "llama3.2"
base_url = "http://localhost:11434"
use_streaming = false

[daemon]
idle_timeout_secs = 1800
keep_alive_for_mcp = true

[daemon.context]
enable_compression = true
compression_threshold_percent = 80
keep_recent_messages = 6

[storage]
max_size_mb = 1024
wal_mode = true

[logging]
level = "info"
stdout = true

[embedding]
provider = "fastembed"
model = "multilingual-e5-small"
enabled = true

[knowledge_base]
enabled = true

[auth]
workspace_auto_allow = true
allowed_commands = ["cargo *", "git *", "npm *", "just *"]

Treat config.toml as secret. It can contain API keys. NevoFlux does not use an OS keychain — keys live in this file or in environment variables.

On this page