Configuration Reference
Complete reference for thenao_config.yaml file. This page is auto-generated from the Pydantic models in cli/nao_core/config/.
Values wrapped in ${{ env('VAR') }} or {{ env('VAR') }} are resolved from environment variables at load time.
Resolving secrets
In addition toenv(), any value in nao_config.yaml can pull a secret from AWS Secrets Manager or Kubernetes Secrets, so deployments can keep credentials out of plain environment variables:
AWS payloads and nested fields
An AWS secret payload must be a JSON object (binary secrets are not supported). The field part is a dot-path, so nested keys are addressed with.:
aws and k8s resolvers require optional dependencies: install nao-core[aws-secrets] or nao-core[k8s-secrets]. Unlike env, which resolves missing variables to an empty string and warns, aws and k8s raise a clear error at load time when a secret or field cannot be resolved.
Top-level properties
Databases
All database configurations share these common fields:
Template values:
columns, preview, query_history, profiling, ai_summary
Patterns in include / exclude use glob syntax against schema.table (e.g. prod_*.*, analytics.dim_*).
PostgreSQL (type: postgres)
Snowflake (type: snowflake)
BigQuery (type: bigquery)
DuckDB (type: duckdb)
Databricks (type: databricks)
Microsoft SQL Server (type: mssql)
Amazon Redshift (type: redshift)
StarRocks (type: starrocks)
Trino (type: trino)
ClickHouse (type: clickhouse)
Unlike other database types, ClickHouse renders all available templates by default rather than the shared default set. System databases (
system, information_schema, INFORMATION_SCHEMA) are skipped unless explicitly listed in include.
Amazon Athena (type: athena)
RedshiftSSHTunnelConfig
Nested underssh_tunnel in a Redshift database entry.
LLM
Declaring the provider inline (
llm.provider, llm.api_key, β¦) still works but is deprecated. Run nao migrate to rewrite an existing file into the llm.providers shape.
ProviderConfig
One entry per provider underllm.providers.
ModelConfig
One entry per model underllm.providers[].models. Leave models empty to expose the providerβs built-in models.
ModelCosts
Nested undercosts in a model entry. Prices are in US dollars per million tokens.
Provider authentication
Default annotation models
Used forai_summary generation when annotation_model is not set.
Repos
Set exactly one of
url or local_path: supplying both, or neither, fails validation. branch cannot be combined with local_path.
include and exclude are applied to both source types. For a url repository the full repo is cloned first, then non-matching files are dropped, so the globs control what ends up in your context rather than what is fetched.
Notion
Slack
MCP
Skills
Test
Defaults fornao test. Every property is overridden by the matching command line flag.
ComparisonConfig
Nested undertest.comparison. Controls how results are compared to the expected data.
Example
JSON Schema
The raw JSON Schema is available atconfig-schema.json.