Configuration
Configure providers, router, search, channels, memory, and permissions.
Configuration lives in a TOML file and is resolved from a fixed order of locations. Secrets are passed as environment variable names, never inline.
First-run setup
budgetai onboard # full interactive wizard
budgetai onboard --if-needed # safe to re-run; does nothing if set up
budgetai onboard --minimal # provider only
budgetai onboard status # show every section, change nothingChange one section
budgetai configure provider --provider openai --model gpt-4o --api-key-env OPENAI_API_KEY
budgetai configure router --router recommended
budgetai configure search --search-provider brave --api-key-env BRAVE_SEARCH_API_KEY
budgetai configure channelsSections: provider, router, channels, search, image-generation,
memory-embedding.
Example file
[provider]
name = "openrouter"
model = "auto"
api_key_env = "OPENROUTER_API_KEY"
[router]
strategy = "recommended"
[memory]
embedding = "onnx-local"
[auth]
mode = "token"Environment variables
Runtime settings use the BUDGETAI_* convention with nested sections as
BUDGETAI_SECTION__FIELD:
export BUDGETAI_ROUTER__STRATEGY=llm_judgeSecret values set as environment variables always take precedence over anything in a config file.