Skip to main content
The user lists or switches models from the terminal; the agent uses the catalogue the CLI exposes. Discover which models you can use, what they cost, and whether they support tools or vision β€” all from the terminal.

Quick Start

As of PraisonAI 4.6.106 (PR #2549), ModelCatalogue is a first-class module of the standalone praisonai-code package. The models commands work without installing the full praisonai wrapper:
1

Browse all models

List every available model grouped by provider:
Filter to a single provider:
Search by name substring:
2

Inspect a model

Get full capabilities, limits, and cost for one model:
Sample output:
On a non-UTF-8 terminal (Windows cp1252, redirected pipes), the same command prints ASCII labels instead of emoji:
3

Validate a model ID

Check whether an ID is valid β€” and get suggestions on a typo:
Output on a typo:
Output on a valid ID:
On a non-UTF-8 terminal the same checks drop the emoji markers:
4

Refresh the catalogue

Rebuild the capability cache now, bypassing the 1 h TTL, so a newly released flagship is recognised without upgrading litellm:
Success output:
When litellm is not installed, the built-in table is shown and the cache is not rewritten:
models validate confirms the model is in LiteLLM’s chat/cost catalogue β€” it does not probe modality-specific backends. A model id can pass models validate and still fail inside VideoAgent or ImageAgent because the modality-specific backend is missing. VideoAgent surfaces this as a clear ValueError with supported alternatives (see Video Overview β†’ Supported models).

Agent-Centric Example

Use the catalogue to pick the right model for your agent before you run it:
YAML equivalent β€” invalid llm: values emit a warning at load time, and pairing tools: with a non-tool-calling model (like o1) triggers a compatibility warning:
YAML aliases defined under a top-level models: key are accepted even if they are not in the catalogue. This lets you point to custom or private deployments without triggering warnings.

How It Works

Data sources β€” priority order:

Encoding-aware Output

As of PraisonAI PR #3661, the models subcommands render ASCII labels on any terminal whose stdout cannot encode emoji (Windows cp1252/cp850, redirected pipes, minimal SSH sessions). UTF-8 terminals still get the emoji output shown above. The probe encodes "\U0001f527" in sys.stdout.encoding; a UnicodeEncodeError or LookupError triggers the ASCII fallback. The probe is automatic β€” there is no flag, environment variable, or config toggle. On legacy Windows consoles, opt back into emoji with chcp 65001. Extend downstream commands with the same probe:
Pick the output that fits where you run: When rich is not installed, models list renders a plain-text table via the same encoding-aware helper, so ASCII labels apply there too.

Commands Reference

praisonai models list

List available models, grouped by provider.
Examples:

praisonai models describe <model>

Show full metadata for one model, including capabilities, limits, and cost.
Examples:

praisonai models validate <model>

Validate a model ID. Exits with code 1 and shows close matches if the ID is unknown.
Examples:

praisonai models refresh

Rebuild the capability cache now, bypassing the 1 h TTL, so a newly released flagship model is recognised without upgrading litellm.
The on-disk cache is only rewritten when litellm data loaded successfully. If litellm is unavailable, the built-in fallback table is returned and no cache file is written β€” the command never claims a refresh that did not happen. Examples:
When to use which command:

Capabilities & Limits Reference

Every model in the catalogue exposes these fields:

Configuration Options

ModelCatalogue accepts two constructor arguments: Import paths:
Both paths resolve to the same class object; you don’t have to migrate existing code. The unit test test_c5_backward_compat.py::test_module_identity asserts praisonai.llm.catalogue is praisonai_code.llm.catalogue. Cache file location: ~/.praisonai/cache/models.json (honours PRAISONAI_HOME) Force refresh: prefer the dedicated command, which rebuilds the cache in place:
If litellm is not installed, delete the cache file and re-run any praisonai models command instead:
Python helpers: ModelCatalogue exposes three public helpers for the same ranking and refresh the CLI uses. The authoritative parameter list lives in the auto-generated SDK docs.

Validation Behaviour

  • YAML local aliases β€” if your YAML file defines model aliases under a top-level models: key, those aliases are accepted even when absent from the catalogue.
  • Tool-compatibility warnings β€” if an agent has tools: configured but its llm does not advertise supports_tools (e.g. o1, o1-mini), a warning is emitted at load time.
  • Opt-out β€” pass validate_model=False to resolve_llm_endpoint (or resolve_llm_endpoint_with_credentials) to skip validation entirely and make the call unconditionally.

Best Practices

The static fallback covers ~15 models. Installing litellm unlocks 100+ models with live pricing data:
The cache is valid for 1 hour. To pull the latest model list immediately:
The cache is rewritten only when litellm data loaded. Without litellm installed, delete the cache file and re-run a models command instead:
Parse the JSON output in scripts or pipelines to programmatically choose a model.
Before adding tools: to an agent, verify the model supports them:
Models like o1 and o1-mini do not support tool calling.

Offline / Fallback Behaviour

When litellm is not installed or the network is unavailable, the catalogue degrades gracefully to a curated static list covering:
  • OpenAI β€” gpt-4o, gpt-4o-mini, gpt-3.5-turbo, o1, o1-mini
  • Anthropic β€” claude-3-5-sonnet-latest, claude-3-5-haiku-latest, claude-3-opus-latest
  • Google β€” gemini-1.5-pro, gemini-1.5-flash, gemini-2.0-flash-exp
  • Groq β€” llama-3.3-70b-versatile, mixtral-8x7b-32768
  • Ollama β€” llama3.2 (requires Ollama running locally)
All three CLI commands (list, describe, validate) work against the static list without any external calls.

Standalone LLM Modules

All four LLM modules available without the wrapper package

AutoGen Config List

Build AutoGen config_list from the resolved endpoint

LLM Endpoint Config

Configure model and base URL via environment variables

Model Capabilities

Model capability flags and how to use them
C7 note: As of PR #2550, the tool-discovery pipeline (tool_resolver), safe loader (_safe_loader), framework probes (_framework_availability), and plugin registry (tool_registry) all live in praisonai_code β€” the same C7 arc that moved LLM config here. See Tool Discovery Order and Local Tools Loading.