# Diagnostics Check List `agents diagnostics` runs the checks listed below. Each check returns one of three statuses: **ok**, **warn**, or **error**. When the `--check` flag is passed the command exits with code 1 if any check reports `error`. --- ## Checks ### Config file Verifies that the configuration file (default `config.toml` or the path set via `CLEVERAGENTS_CONFIG_PATH`) exists and is readable. | Status | Condition | Remediation | |--------|-----------|-------------| | ok | File exists and is readable, or file is absent (defaults are used) | None required | | error | File exists but is not readable | Fix file permissions: `chmod 644 ` | ### Data directory Verifies that the data directory (from `Settings.data_dir`) exists and is writable. | Status | Condition | Remediation | |--------|-----------|-------------| | ok | Directory exists and is writable | None required | | warn | Directory does not exist | Create it: `mkdir -p ` | | error | Directory exists but is not writable | Fix permissions: `chmod 755 ` or change ownership | ### Database Verifies that the SQLite database file (or its parent directory for first-run) is accessible and writable. | Status | Condition | Remediation | |--------|-----------|-------------| | ok | DB file is writable, or parent dir is writable (first run) | None required | | ok | Non-SQLite database URL is configured | None required | | error | DB file exists but is locked or not writable | Close other processes using the DB, or fix permissions | | error | Parent directory is not writable | Fix parent directory permissions | ### Provider API keys Checks whether each supported LLM provider has its API key configured. One sub-check is emitted per provider. | Provider | Environment variable | Status when missing | |----------|---------------------|---------------------| | OpenAI | `OPENAI_API_KEY` | warn | | Anthropic | `ANTHROPIC_API_KEY` | warn | | Google | `GOOGLE_API_KEY` | warn | | Google Gemini | `GEMINI_API_KEY` | warn | | Hugging Face | `HF_TOKEN` | warn | | OpenRouter | `OPENROUTER_API_KEY` | warn | | Status | Condition | Remediation | |--------|-----------|-------------| | ok | API key is configured | None required | | warn | API key is not set | Set the environment variable to enable the provider | Missing provider keys are warnings, not errors, because the system can operate with any single provider configured. ### Disk space Checks available disk space on the volume containing the current working directory. | Status | Condition | Remediation | |--------|-----------|-------------| | ok | >= 1.0 GB free | None required | | warn | 0.5 -- 1.0 GB free | Free disk space or move data directory to a larger volume | | error | < 0.5 GB free | Immediately free disk space to avoid data corruption | ### File permissions Verifies read and write access to the data directory. | Status | Condition | Remediation | |--------|-----------|-------------| | ok | Data directory is readable and writable | None required | | warn | Data directory does not exist | Create it (see Data directory check) | | warn | Data directory is readable but not writable | Fix write permissions: `chmod u+w ` | | error | Data directory is not writable | Fix permissions or change ownership | ### Git Checks that the `git` binary is available on `PATH`. | Status | Condition | Remediation | |--------|-----------|-------------| | ok | `git --version` succeeds | None required | | error | `git` is not found or times out | Install git for version control integration | --- ## Summary counts The `summary` object in JSON/YAML output includes: | Field | Type | Description | |-------|------|-------------| | `total` | int | Total number of individual checks run | | `ok` | int | Checks that passed | | `warnings` | int | Checks with non-critical issues | | `errors` | int | Checks with critical issues | | `duration_s` | float | Wall-clock seconds for the full diagnostic run | ## Recommendations When a check returns `warn` or `error` and has an actionable fix, the recommendation is collected into the `recommendations` list in the output. Recommendations are ordered by check execution order. ## Using `--check` in CI ```bash # Fail the pipeline if any critical check errors agents diagnostics --check --format json ``` Exit code `0` means all checks passed (warnings are tolerated). Exit code `1` means at least one check reported `error`.