Quick Start
1
Inline YAML via PRAISONAI_CONFIG_CONTENT
Pass the whole config as an inline blob β ideal for Docker and CI where no file exists:
2
Explicit path via PRAISONAI_CONFIG
Point at a specific config file instead of the discovered global/project files:
3
Interpolate secrets and files
Values support
${VAR}, {env:VAR}, and {file:...} so secrets stay out of the blob:How It Works
Both JSON and YAML parse throughyaml.safe_load, then interpolation runs before the blob joins the resolution ladder.
Both variables fill the user-config layer β the same slot the discovered global/project file would occupy. When either is set, no global or project file is read for that layer.
Precedence
Higher layers win. The env-config sources sit in the user-config layer, below per-key env vars and CLI flags.
Within the user-config layer, inline content beats an explicit path, which beats global-file discovery, which beats project-file discovery:
When the blob is invalid JSON/YAML, or
PRAISONAI_CONFIG points at a missing file, the resolver warns and falls back to normal file discovery. Behaviour is unchanged when neither variable is set.Common Patterns
Docker / Kubernetes secret mount
Mount the config as a secret and export it β nothing is written to the image:GitHub Actions runner
Ship one variable to the job; no~/.praisonai/ needs to exist:
Ephemeral container with no writable home
Inline content avoids any filesystem write on a read-only container:User Interaction Flow
A team lead ships one environment variable to the CI container. The runner has no~/.praisonai/ and never writes one β the resolver reads PRAISONAI_CONFIG_CONTENT, interpolates any ${VAR} secrets from the jobβs environment, and runs the agent with the teamβs model and output settings. Removing the variable restores default file discovery with no code change.
PRAISONAI_AUTH_CONTENT is the credentials-only sibling. Use it to inject the auth layer the same way, so a single CI secret set can supply both config and credentials with nothing on disk.Best Practices
Keep secrets out of the blob
Keep secrets out of the blob
Reference secrets with
${VAR} or {file:/run/secrets/...} instead of pasting them inline, so the config blob stays safe to log.Prefer inline content for stateless runners
Prefer inline content for stateless runners
PRAISONAI_CONFIG_CONTENT needs no writable filesystem, making it ideal for read-only containers and ephemeral CI.Use explicit paths for mounted volumes
Use explicit paths for mounted volumes
When a config file is already mounted,
PRAISONAI_CONFIG points at it directly and skips global/project discovery.Rely on graceful fallback
Rely on graceful fallback
An invalid blob or missing path warns and falls back to file discovery, so a typo never hard-fails a run.
Related
OutputConfig
Control agent output verbosity and formatting
XDG Paths
Where config, data, state, and cache live

