Skip to main content
Supply the entire user-config layer from an environment variable, so containers and CI runners need nothing written to disk.

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 through yaml.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

Reference secrets with ${VAR} or {file:/run/secrets/...} instead of pasting them inline, so the config blob stays safe to log.
PRAISONAI_CONFIG_CONTENT needs no writable filesystem, making it ideal for read-only containers and ephemeral CI.
When a config file is already mounted, PRAISONAI_CONFIG points at it directly and skips global/project discovery.
An invalid blob or missing path warns and falls back to file discovery, so a typo never hard-fails a run.

OutputConfig

Control agent output verbosity and formatting

XDG Paths

Where config, data, state, and cache live