config.yaml is read or written to disk. Pairs with PRAISONAI_AUTH_CONTENT so one CI secret set provides auth and config for a stateless run.
Quick Start
1
Inline (YAML)
2
Inline (JSON)
3
Explicit path (PRAISONAI_CONFIG)
4
Auth + config in one env set (zero-disk CI)
Which one should I use?
Pick the source that matches where your config already lives.Precedence
The env-config layer occupies the same slot as the discovered global/project files, so higher layers still win. Key rules:PRAISONAI_CONFIG_CONTENT(inline) wins overPRAISONAI_CONFIG(path) — inline replaces the path layer entirely.- When either is set, no global/project
config.yamlon disk is read for the user-config layer. - Per-key env vars (
PRAISONAI_MODEL,OPENAI_API_BASE, …) and CLI flags still override the env blob. - Managed policy (
permissions,model_allowlist) is still enforced on top.
Configuration Options
Provenance
See which layer supplied each key with theenv-config: label.
Fallback & Warning Behaviour
Best Practices
🔒 Treat the blob as a secret
🔒 Treat the blob as a secret
It can contain provider URLs, tenant IDs, and deny rules. Inject only from a secrets manager; never commit it.
📦 Compose with PRAISONAI_AUTH_CONTENT
📦 Compose with PRAISONAI_AUTH_CONTENT
An auth blob plus a config blob together give a true zero-disk run — nothing touches
~/.praisonai.🧭 Use PRAISONAI_CONFIG for mounted volumes
🧭 Use PRAISONAI_CONFIG for mounted volumes
Kubernetes ConfigMaps mounted as files pair naturally with the explicit path variable.
🧪 Verify with praisonai config show --sources
🧪 Verify with praisonai config show --sources
The
env-config: label confirms the env layer won for each key.Related
CLI Configuration
The full layered precedence hierarchy.
Security Environment Variables
PRAISONAI_AUTH_CONTENT and other security env vars.Managed Config Layer
Org-enforced policy on top of every layer.
XDG Base Directories
Where PraisonAI writes its persistent state.

