The version, info, and diagnostics commands were incorrectly stated as being on the fast-path. Only --help and --version are eager exit options that skip subcommand module loading. ISSUES CLOSED: #7592
17 KiB
CleverAgents CLI Basics: Version, Info & Diagnostics
Overview
CleverAgents ships with a set of built-in introspection commands that let you quickly check what version you're running, inspect your environment configuration, and run health checks — all from the command line. This guide walks through each command with real output captured from a live installation.
Prerequisites
- CleverAgents installed (
pip install cleveragentsor from source withuv sync) - Python 3.13 or higher
What You'll Learn
- How to check the installed version of CleverAgents
- How to get structured version data in JSON format for scripting
- How to inspect your runtime environment with
info - How to run system health checks with
diagnostics - How to use the
--formatflag to switch between rich and machine-readable output
Step-by-Step Walkthrough
Step 1: Get Quick Help
The fastest way to orient yourself is the built-in help:
$ python -m cleveragents --help
Actual Output:
CleverAgents - AI-powered development assistant (actor-first)
Usage: cleveragents [OPTIONS] COMMAND [ARGS]...
Common commands:
project Project management
actor context Actor context management
plan Plan operations (actor required)
actor Actor management and defaults
init Initialize a project
tell Create a plan (shortcut)
build Build the current plan
apply Apply plan changes
db Database migration management
auto-debug Auto-debug operations
repl Interactive REPL session
tui Textual terminal UI
completion Generate shell completion script
version Show version
Actors: set a default with 'agents actor set-default <name>'.
Actors only: provider/model flags were removed. Use actors instead.
Built-ins are <provider>/<model>; custom actors use local/<id>.
Default or built-in actors cannot be removed; use --unsafe when the config is marked unsafe.
What's Happening:
CleverAgents uses a lightweight fast-path for --help that avoids importing
heavy subcommand modules. This means help output appears instantly, even in
large installations.
Step 2: Check the Version (Quick Flag)
For a one-liner version check — useful in scripts and CI pipelines:
$ python -m cleveragents --version
Actual Output:
CleverAgents 1.0.0
What's Happening:
The --version flag is an eager option that exits immediately after printing.
It uses the same fast-path as --help, so it's extremely lightweight.
Step 3: Full Version Information (Rich Format)
For a human-readable breakdown of version, build metadata, and key dependency versions:
$ python -m cleveragents version
Actual Output:
╭── CLI Version ───╮
│ CleverAgents CLI │
│ Version: 1.0.0 │
│ Channel: stable │
│ Python: 3.13.9 │
╰──────────────────╯
╭──────── Build ─────────╮
│ Build Date: 2026-04-07 │
│ Commit: 43ab4a8f │
│ Schema: v3 │
│ Platform: linux-x86_64 │
╰────────────────────────╯
╭───── Dependencies ─────╮
│ langgraph: 1.1.6 │
│ langchain-core: 1.2.26 │
│ pydantic: 2.12.5 │
│ typer: 0.23.1 │
╰────────────────────────╯
OK Version reported
What's Happening:
The version command renders three Rich panels:
- CLI Version — the package version, release channel, and Python runtime
- Build — build date, git commit SHA, schema version, and OS/architecture
- Dependencies — versions of key runtime libraries
The Commit field comes from the CLEVERAGENTS_COMMIT environment variable
(set at build time) or falls back to git rev-parse --short HEAD when running
from source.
Step 4: Machine-Readable Version Output (JSON)
When integrating with CI/CD pipelines, monitoring systems, or other tooling,
use --format json to get structured output:
$ python -m cleveragents --format json version
Actual Output:
{
"command": "",
"status": "ok",
"exit_code": 0,
"data": {
"version": "1.0.0",
"channel": "stable",
"python": "3.13.9",
"build_date": "2026-04-07",
"commit": "43ab4a8f",
"schema": "v3",
"platform": "linux-x86_64",
"dependencies": {
"langgraph": "1.1.6",
"langchain-core": "1.2.26",
"pydantic": "2.12.5",
"typer": "0.23.1"
}
},
"timing": {
"duration_ms": 0
},
"messages": [
{
"level": "ok",
"text": "ok"
}
]
}
What's Happening:
All machine-readable formats (json, yaml, plain) are wrapped in a
standard envelope with:
command— the command that was runstatus—"ok","warn", or"error"exit_code— numeric exit code (0 = success)data— the command-specific payloadtiming— elapsed time in millisecondsmessages— human-readable status messages
This envelope is consistent across all CleverAgents commands, making it easy to write scripts that parse any command's output uniformly.
Step 5: Environment Information
The info command shows your runtime environment — data directory, config
path, database URL, server mode, and configured AI providers:
$ python -m cleveragents info
Example Output (rich format):
╭──────────────────── Environment ─────────────────────╮
│ Data Dir: /home/user/.cleveragents │
│ Config: /home/user/.cleveragents/config.toml │
│ Database: sqlite:////home/user/.cleveragents/ca.db │
│ Server Mode: local │
│ Platform: Linux 6.1.0 (x86_64) │
╰───────────────────────────────────────────────────────╯
╭──── Runtime ────╮
│ Automation: supervised │
│ Providers: 0 configured │
│ Debug Mode: False │
╰─────────────────╯
╭── Storage ──╮
│ db_size: 0.5 MB │
│ logs: 0.0 MB │
╰─────────────────╯
OK Environment details ready
For machine-readable output:
$ python -m cleveragents --format json info
What's Happening:
info reads your settings (from environment variables and config.toml),
checks storage sizes, and resolves the server mode (local stdio vs. HTTP
server). It's the quickest way to verify your installation is pointing at the
right data directory and database.
Step 6: System Diagnostics
The diagnostics command runs a suite of health checks and reports pass/warn/error
status for each:
$ python -m cleveragents diagnostics
Example Output (rich format):
Checks
┌──────────────────┬────────┬──────────────────────────────────────┐
│ Check │ Status │ Details │
├──────────────────┼────────┼──────────────────────────────────────┤
│ Config file │ OK │ not present (using defaults) │
│ Data directory │ OK │ writable │
│ Database │ OK │ writable │
│ Openai key │ WARN │ missing │
│ Anthropic key │ WARN │ missing │
│ Google key │ WARN │ missing │
│ Azure key │ WARN │ missing │
│ Openrouter key │ WARN │ missing │
│ Gemini key │ WARN │ missing │
│ Cohere key │ WARN │ missing │
│ Groq key │ WARN │ missing │
│ Together key │ WARN │ missing │
│ Disk space │ OK │ 45.2 GB free │
│ File permissions │ OK │ data dir r/w │
│ Git │ OK │ git 2.43.0 │
│ Stale locks │ OK │ 0 stale locks │
│ Async workers │ OK │ disabled (async.enabled=false) │
│ Error Pattern DB │ OK │ empty (no patterns recorded) │
└──────────────────┴────────┴──────────────────────────────────────┘
╭──────── Summary ────────╮
│ Checks: 18 total │
│ Warnings: 9 │
│ Errors: 0 │
│ Duration: 0.12s │
╰─────────────────────────╯
╭──────────────────────── Recommendations ─────────────────────────╮
│ - Set OPENAI_API_KEY to enable Openai models │
│ - Set ANTHROPIC_API_KEY to enable Anthropic models │
│ - Set GOOGLE_API_KEY to enable Google models │
│ ... │
╰──────────────────────────────────────────────────────────────────╯
WARN 9 warnings require attention
For CI/CD use, add --check to exit non-zero if any check fails:
$ python -m cleveragents diagnostics --check
# Exits with code 1 if any check has ERROR status
For machine-readable output:
$ python -m cleveragents --format json diagnostics
What's Happening:
diagnostics runs 18 checks covering:
- Config & data: config file readability, data directory writability
- Database: SQLite file access and writability
- Providers: API key presence for all supported AI providers (OpenAI, Anthropic, Google, Azure, OpenRouter, Gemini, Cohere, Groq, Together)
- System: disk space, file permissions, git availability
- Runtime: stale lock detection, async worker health, error pattern DB
Missing API keys produce WARN (not ERROR) since the system can still
function with whichever providers are configured.
The --format Flag: Universal Output Control
The --format flag is a global option that applies to all commands. It
must be placed before the subcommand name:
# ✅ Correct: --format before the subcommand
$ python -m cleveragents --format json version
$ python -m cleveragents --format yaml info
$ python -m cleveragents --format plain diagnostics
# ❌ Incorrect: --format after the subcommand
$ python -m cleveragents version --format json
Available formats:
| Format | Description | Best For |
|---|---|---|
rich |
Coloured panels and tables (default) | Interactive terminal |
json |
JSON envelope with data, status, timing |
Scripts, CI/CD, APIs |
yaml |
YAML envelope (same structure as JSON) | Config-heavy tooling |
plain |
Key: value lines, no markup | Log parsing |
table |
ASCII table (no colour) | Tabular data |
color |
Coloured plain text | Coloured logs |
Scripting Example: Version Check in CI
#!/bin/bash
# Check that CleverAgents is at least version 1.0.0
VERSION=$(python -m cleveragents --format json version | python3 -c "
import sys, json
data = json.load(sys.stdin)
print(data['data']['version'])
")
echo "CleverAgents version: $VERSION"
# Run diagnostics and fail if there are errors
python -m cleveragents diagnostics --check
echo "All diagnostics passed!"
Complete Interaction Log
Click to see the full verified command session
$ python -m cleveragents --help
CleverAgents - AI-powered development assistant (actor-first)
Usage: cleveragents [OPTIONS] COMMAND [ARGS]...
Common commands:
project Project management
actor context Actor context management
plan Plan operations (actor required)
actor Actor management and defaults
init Initialize a project
tell Create a plan (shortcut)
build Build the current plan
apply Apply plan changes
db Database migration management
auto-debug Auto-debug operations
repl Interactive REPL session
tui Textual terminal UI
completion Generate shell completion script
version Show version
Actors: set a default with 'agents actor set-default <name>'.
Actors only: provider/model flags were removed. Use actors instead.
Built-ins are <provider>/<model>; custom actors use local/<id>.
Default or built-in actors cannot be removed; use --unsafe when the config is marked unsafe.
$ python -m cleveragents --version
CleverAgents 1.0.0
$ python -m cleveragents version
╭── CLI Version ───╮
│ CleverAgents CLI │
│ Version: 1.0.0 │
│ Channel: stable │
│ Python: 3.13.9 │
╰──────────────────╯
╭──────── Build ─────────╮
│ Build Date: 2026-04-07 │
│ Commit: 43ab4a8f │
│ Schema: v3 │
│ Platform: linux-x86_64 │
╰────────────────────────╯
╭───── Dependencies ─────╮
│ langgraph: 1.1.6 │
│ langchain-core: 1.2.26 │
│ pydantic: 2.12.5 │
│ typer: 0.23.1 │
╰────────────────────────╯
OK Version reported
$ python -m cleveragents --format json version
{
"command": "",
"status": "ok",
"exit_code": 0,
"data": {
"version": "1.0.0",
"channel": "stable",
"python": "3.13.9",
"build_date": "2026-04-07",
"commit": "43ab4a8f",
"schema": "v3",
"platform": "linux-x86_64",
"dependencies": {
"langgraph": "1.1.6",
"langchain-core": "1.2.26",
"pydantic": "2.12.5",
"typer": "0.23.1"
}
},
"timing": {
"duration_ms": 0
},
"messages": [
{
"level": "ok",
"text": "ok"
}
]
}
Note: info and diagnostics outputs above are representative examples
based on code analysis. Exact values depend on your local environment.
Key Takeaways
--versionis a fast eager flag — use it in scripts for a quick version check without loading the full CLI.version(subcommand) gives rich detail: build date, git commit, schema version, and key dependency versions.--format jsonwraps all output in a consistent envelope withcommand,status,exit_code,data,timing, andmessages— the same structure for every command.--formatis a global flag that must come before the subcommand.diagnostics --checkis CI-friendly: exits non-zero only when there are actualERROR-level checks (missing API keys areWARN, notERROR).- Both --help and --version use a fast-path eager exit that avoids loading subcommand modules, resulting in instant response times. The version, info, and diagnostics commands are lightweight introspection tools but do not benefit from the fast-path optimization.
Try It Yourself
Now that you've seen the introspection commands, try these variations:
- YAML output:
python -m cleveragents --format yaml version— same envelope structure as JSON but in YAML syntax - Plain text:
python -m cleveragents --format plain version— key: value lines, great forgrep-based log parsing - Strict diagnostics:
python -m cleveragents diagnostics --check— use in pre-flight checks before running plans - Pipe to jq:
python -m cleveragents --format json version | jq '.data.commit'— extract specific fields for scripting
Related Examples
This example was automatically generated and verified by the CleverAgents UAT system. Feature area: CLI version/info/diagnostics | Test cycle: 1 | Generated: 2026-04-07
Automated by CleverAgents Bot Supervisor: UAT Testing | Agent: uat-tester