.praisonai/config.yaml wires your project’s full agent runtime — model, MCP servers, permissions — for every praisonai run in the directory.
Quick Start
Run anywhere in the project
How It Works
The resolver deep-merges five layers (highest wins):| Layer | Source | Precedence |
|---|---|---|
| 1 | Built-in defaults | Lowest |
| 2 | ~/.praisonai/config.yaml (global) | |
| 3 | .praisonai/config.yaml (project, walk-up) | |
| 4 | Environment variables | |
| 5 | CLI flags | Highest |
Configuration Schema
mcp.servers.<name>
| Key | Type | Default | Description |
|---|---|---|---|
command | list[str] or str | — | Local (stdio) server launch command. List form preferred. |
args | list[str] | [] | Extra args appended to command. |
env | dict[str, str] | {} | Env vars for the server process. Values containing , are skipped on the command-string CLI path. |
enabled | bool | true | Set false to declare-but-not-wire a server. |
type | "remote" | — | Marks a remote server; skipped by the run command-string path. |
url | str | — | Remote endpoint; presence implies remote. |
Only one enabled local (stdio) server is wired through
praisonai run. If multiple enabled local servers are declared, a warning is emitted and the first is used. Remote servers (type: remote or a url field) are skipped by the run path but still work for other integrations.permissions
Two equivalent forms:
Structured (rule list):
| Key | Type | Default | Description |
|---|---|---|---|
default | "allow" | "deny" | "ask" | — | Fallback action when no rule matches. Equivalent to "*": <default> in flat form. |
rules | list[{pattern, action}] | [] | Structured rule list. action must be allow, deny, or ask. Invalid actions are silently dropped. |
<pattern> | "allow" | "deny" | "ask" | — | Flat shorthand. Can be combined with rules and default. |
Precedence
--mcp, if present, replaces the config MCP server entirely.--allow/--deny/--permissionsare merged on top of config rules — CLI wins per-pattern.--permission-defaultsets the fallback action, overridingpermissions.defaultfrom config.
Common Patterns
Pin a model + a single MCP server
CI-safe defaults
Mix with CLI flags
Config gives the base; flags override per-run:Declare-but-not-wire a server
Best Practices
Commit .praisonai/config.yaml for team alignment
Commit .praisonai/config.yaml for team alignment
Checked-in config ensures every teammate and CI runner uses the same model, MCP servers, and permission defaults automatically.
Keep secrets out of env in config
Keep secrets out of env in config
mcp.servers.<x>.env is fine for non-secret config values (paths, flags). For API tokens, use shell environment variables — they are read by the server process at runtime without being stored in YAML.Use praisonai config show --sources to debug
Use praisonai config show --sources to debug
When behaviour is unexpected,
praisonai config show --sources prints exactly which layer won for each key.Prefer the structured rules form when ordering matters
Prefer the structured rules form when ordering matters
The
rules: list is evaluated in order; priority fields are respected. The flat mapping form is convenient for simple deny lists but gives no ordering guarantees.Related
CLI Configuration
Full cascade reference for the praisonai CLI config layers
Declarative Permissions
All surfaces for pre-declaring allow/deny rules
MCP Transports
Remote MCP server configuration
Config CLI Reference
praisonai config subcommand reference
