NabaOS reads all configuration from environment variables. No
configuration file is required – sensible defaults are provided for every
optional variable.
Variable Type Default Description Example
NABA_LLM_API_KEYstring (none) API key for the primary LLM provider. Required for any operation that routes to an LLM (ask, start). sk-ant-api03-...
Variable Type Default Description Example
NABA_LLM_PROVIDERstring anthropicPrimary LLM provider. Options: anthropic, openai, gemini. openai
NABA_CHEAP_LLM_PROVIDERstring (same as primary) Provider for cheap model (Tier 3). anthropic
NABA_CHEAP_LLM_MODELstring (provider default) Cheap model name for Tier 3 routing. claude-haiku-4-5
NABA_EXPENSIVE_LLM_MODELstring (provider default) Expensive model name for Tier 4 routing. claude-opus-4-6
NABA_DAILY_BUDGET_USDfloat 10.0Maximum daily LLM spend in USD. The cost tracker enforces this limit. 25.0
NABA_PER_TASK_BUDGET_USDfloat (none) Maximum spend per individual task in USD. 2.0
Variable Type Default Description Example
NABA_DATA_DIRpath ~/.nabaosRoot directory for all persistent data: databases, plugins, agents, profiles. /opt/nabaos/data
NABA_MODEL_PATHpath models/setfit-w5h2Directory containing the ONNX model files (model.onnx, tokenizer, etc.). /opt/nabaos/models/setfit-w5h2
NABA_PLUGIN_DIRpath $NABA_DATA_DIR/pluginsDirectory where installed plugins are stored. /opt/nabaos/plugins
NABA_SUBPROCESS_CONFIGpath (none) Path to a YAML file defining subprocess abilities. Loaded at startup. ./config/subprocess.yaml
Variable Type Default Description Example
NABA_CONSTITUTION_PATHpath (none) Path to a custom constitution YAML file. If not set, the built-in default constitution is used (default_enforcement: allow). ./my-constitution.yaml
NABA_CONSTITUTION_TEMPLATEstring (none) Named template to use instead of a file. Options: default, content-creator, dev-assistant, full-autonomy, home-assistant, hr-assistant, research-assistant, trading. trading
Variable Type Default Description Example
NABA_TELEGRAM_BOT_TOKENstring (none) Telegram Bot API token. Required to start the Telegram bot. 7123456789:AAF...
NABA_SECURITY_BOT_TOKENstring (none) Separate Telegram bot token for security alerts. 7987654321:AAG...
NABA_ALERT_CHAT_IDstring (none) Telegram chat ID where security alerts are sent. -1001234567890
NABA_ALLOWED_CHAT_IDSstring (none) Comma-separated list of Telegram chat IDs allowed to interact with the bot. If not set, messages from unknown chat IDs are silently ignored. 12345678,87654321
Variable Type Default Description Example
NABA_TELEGRAM_2FAstring (none) 2FA method for Telegram bot. Options: totp, password. totp
NABA_TOTP_SECRETstring (none) Base32-encoded TOTP secret. Generated by nabaos config security 2fa totp. JBSWY3DPEHPK3PXP
NABA_2FA_PASSWORD_HASHstring (none) Argon2 hash of the 2FA password. Generated by nabaos config security 2fa password. $argon2id$v=19$m=19456...
Variable Type Default Description Example
NABA_DISCORD_BOT_TOKENstring (none) Discord bot token from the Developer Portal. Enables outbound-only Discord integration. MTIzNDU2Nzg5MDEy.GAbcDE...
Variable Type Default Description Example
NABA_SLACK_BOT_TOKENstring (none) Slack bot token. xoxb-...
NABA_SLACK_CHANNELstring (none) Default Slack channel for notifications. #alerts
Variable Type Default Description Example
NABA_WHATSAPP_TOKENstring (none) WhatsApp Business API token. EAAx...
Variable Type Default Description Example
NABA_EMAIL_SMTP_HOSTstring (none) SMTP server host for outbound email. smtp.gmail.com
NABA_EMAIL_SMTP_PORTinteger 587SMTP server port. 465
NABA_EMAIL_USERNAMEstring (none) SMTP username. agent@example.com
NABA_EMAIL_PASSWORDstring (none) SMTP password. app-password
Variable Type Default Description Example
NABA_WEB_PASSWORDstring (none) Password for web dashboard authentication. If not set, the web dashboard is disabled. my-secure-password
NABA_WEB_BINDstring 127.0.0.1:8919Bind address for the web dashboard server. 0.0.0.0:9000
NABA_WEB_SESSION_TTLinteger 86400Web session time-to-live in seconds (default: 24 hours). 3600
Variable Type Default Description Example
NABA_VAULT_PASSPHRASEstring (none) Passphrase for the encrypted secret vault. If not set, the CLI prompts interactively. my-vault-passphrase
Variable Type Default Description Example
NABA_VOICE_MODEstring (none) Enable voice input mode. whisper
NABA_MEDIA_DIRpath $NABA_DATA_DIR/mediaDirectory for media file storage. /opt/nabaos/media
Variable Type Default Description Example
NABA_CONTAINER_POOL_SIZEinteger 3Number of pre-warmed containers. 5
NABA_ENCRYPTION_KEY_FILEpath (none) Path to LUKS key file. /etc/nabaos/key
Variable Type Default Description Example
NABA_GOOGLE_CLIENT_IDstring (none) Google OAuth client ID. 123456.apps.googleusercontent.com
NABA_GOOGLE_CLIENT_SECRETstring (none) Google OAuth client secret. GOCSPX-...
NABA_NOTION_TOKENstring (none) Notion integration token. ntn_...
Variable Type Default Description Example
RUST_LOGstring infoStandard Rust logging filter. Uses tracing_subscriber::EnvFilter syntax. Supports module-level filters. nabaos=debug,tower_http=info
Environment variables take precedence over built-in defaults. CLI flags
(--data-dir, --model-dir) take precedence over environment variables.
The smallest viable configuration for local classification (no LLM calls):
# No env vars needed -- defaults are sufficient
nabaos admin classify "check my email"
For the full pipeline with LLM routing:
export NABA_LLM_API_KEY="sk-ant-api03-..."
nabaos ask "summarize today's news"
For production server mode:
export NABA_LLM_API_KEY="sk-ant-api03-..."
export NABA_TELEGRAM_BOT_TOKEN="7123456789:AAF..."
export NABA_WEB_PASSWORD="secure-dashboard-pw"
export NABA_VAULT_PASSPHRASE="vault-pw"
export NABA_CONSTITUTION_PATH="./constitution.yaml"
export NABA_DAILY_BUDGET_USD="15.0"
nabaos start