Skip to main content

Basic Commands

Full-Report Root Flags

Running praisonai doctor with no subcommand runs the full multi-category setup report.
When the report contains warnings or failures, praisonai doctor prints a numbered “Next steps:” section listing the recommended remediation for each issue. Hidden when no issues exist, and suppressed under --quiet.

Subcommand Reference

Environment Checks

Configuration Checks

Bot Config Checks

praisonai doctor validates bot.yaml and gateway.yaml via load_and_validate_gateway_yaml against the unified GatewayConfigSchema (BotYamlSchema is an alias). Common failures and fixes:
Single-bot (platform + token), multi-channel (agents + channels), and BotOS (platforms:) YAML shapes all validate against the same schema. See Gateway Config Migration.

Gateway Doctor Checks

Run individual gateway checks:

Config version check

praisonai gateway doctor also inspects the config_version stamp in gateway.yaml. When the stamp is missing or stale, it reports drift and points at --fix:
In --json output this sets config_version to "out-of-date". A stamp newer than this build supports — or a malformed one (true, "1", 1.0) — is refused, never migrated: config_version becomes "unsupported" and config_version_error carries the message. Doctor never downgrades a config a newer build wrote. praisonai gateway doctor --fix migrates an out-of-date gateway.yaml forward: it applies the safe config migrations, stamps config_version, and rewrites the file atomically (tmpfile + fsync + os.replace), so an interrupted --fix cannot truncate the file. This is in addition to the existing weak-gateway.auth_token repair. --fix --dry-run previews with config: would … lines and writes nothing. See Gateway Config Migration › Doctor-driven migration.

Extending gateway doctor

Tool and channel packages can register their own checks via the praisonai.health_checks entry point, and they run alongside the built-ins. See Extensible Gateway Doctor for the plugin author guide.
  • Third-party checks appear next to the built-ins in --list-checks and JSON output.
  • --fix also runs plugin repairs, with the same --dry-run preview behaviour.
  • The loopback weak-token warning is routed to stderr, so --json stdout stays a single parseable JSON document.
  • --json output carries a top-level health block (checksRun / repaired / validated / results).
  • The exit code is 1 whenever any residual error finding remains — built-in or plugin.

Environment Deep Check — Optional Dependencies

Expected output shape (available / missing / broken / slow buckets):
See Optional Dependencies Check for the full four-bucket table, per-package timeout formula, and CI gating examples.

Packaging Checks

Diagnose Windows daemon and entry-point issues (python -m praisonai vs the praisonai console script):
Run praisonai doctor packaging on Windows before registering PraisonAI as a scheduled task or NSSM service — misconfigured entry points are the most common cause of “daemon starts but immediately exits”.

Tools Checks

Database Checks

MCP Checks

Observability Checks

Skills Checks

Sample requirements output:

Auto-Remediation (doctor fix)

doctor fix runs safe auto-remediation for common setup issues. Phase-1 scope: migrate deprecated cli_backend YAML configuration.
--execute modifies files on disk. A .bak backup is created alongside the original unless --no-backup is passed.

Runtime Migration Checks

Detect and migrate legacy cli_backend YAML fields to models.default.runtime. See Runtime Config Migration for the full guide.

Auto-Remediation (doctor fix)

praisonai doctor fix runs safe auto-remediation for common setup issues — dry-run by default, no changes without --execute. Phase-1 scope: migrating deprecated cli_backend YAML configuration. This does not yet fix all possible issues.
  • Dry-run by default; --execute applies changes.
  • A .bak backup is created on --execute unless --no-backup.
  • --file/-f targets a specific YAML; otherwise searches cwd.
  • --quiet/-q suppresses non-essential output.
See also: Runtime Config Migration — describes the cli_backendruntime mapping that fix currently automates.

Runtime Preflight Checks

Validate team YAML for runtime compatibility, handoffs, and installed frameworks without LLM calls. See Runtime Preflight for the full guide.
Exit codes: 0 — no issues; 1 — issues detected or team file missing; 2 — internal error.

Docker Checks

LLM Provider Checks

Memory Store Checks

Metadata Store Checks

Memory Checks

Permissions Checks

Network Checks

Performance Checks

CI Mode

Self-Test

Global Flags

Status Symbols

The text formatter automatically picks symbols that match your terminal encoding.
Detection runs once when the formatter starts. UTF-8 terminals always use the Unicode symbols. Anything else (Windows default consoles, legacy cp1252/cp437, etc.) automatically falls back to ASCII so praisonai doctor never crashes with UnicodeEncodeError.
Use --json for machine-readable output that does not depend on terminal encoding.

Output Examples

Text Output

JSON Output

List Checks Output

CI/CD Integration

GitHub Actions

Exit Code Handling

Troubleshooting

Common Issues

Windows Unicode / encoding errors

As of v4.x, praisonai doctor auto-detects your terminal encoding and falls back to ASCII status symbols ([OK] [!] [X] [-]) on non-UTF-8 consoles, so the historical UnicodeEncodeError: 'charmap' codec crash on Windows cmd.exe / PowerShell no longer happens. If you prefer Unicode output on Windows, run one of:
Or use Windows Terminal / a UTF-8 capable shell. For machine-readable output that does not depend on terminal encoding, use --json.