> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Provider Registry CLI

> CLI commands for managing LLM providers in PraisonAI TypeScript

# Provider Registry CLI

The PraisonAI TypeScript CLI provides commands to list and inspect registered LLM providers.

## Commands

### List Providers

List all registered LLM providers:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts providers list
```

**Output:**

```
Registered LLM Providers

  Built-in:
    ✅ openai 🔑
    ✅ anthropic 🔑
    ✅ google 🔑

  Custom:
    ✅ cloudflare

Register custom providers with registerProvider():
  import { registerProvider } from "praisonai";
  registerProvider("cloudflare", CloudflareProvider);

Set API keys via environment variables:
  OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY
```

**Options:**

* `--verbose, -v` - Show available models for each provider
* `--json` - Output in JSON format

**Verbose output:**

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts providers list --verbose
```

```
Registered LLM Providers

  Built-in:
    ✅ openai 🔑
        - gpt-4o
        - gpt-4o-mini
        - gpt-4-turbo
        - gpt-4
        - gpt-3.5-turbo
    ✅ anthropic 🔑
        - claude-sonnet-4-20250514
        - claude-3-5-sonnet-20241022
        - claude-3-opus-20240229
        - claude-3-haiku-20240307
    ✅ google 🔑
        - gemini-2.0-flash
        - gemini-1.5-pro
        - gemini-1.5-flash
```

**JSON output:**

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts providers list --json
```

```json theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
{
  "success": true,
  "data": {
    "providers": [
      {
        "name": "openai",
        "registered": true,
        "available": true,
        "has_api_key": true,
        "is_builtin": true
      },
      {
        "name": "anthropic",
        "registered": true,
        "available": true,
        "has_api_key": true,
        "is_builtin": true
      },
      {
        "name": "google",
        "registered": true,
        "available": true,
        "has_api_key": true,
        "is_builtin": true
      }
    ],
    "total": 3,
    "builtin_count": 3,
    "custom_count": 0
  }
}
```

### Provider Info

Get detailed information about a specific provider:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts providers info openai
```

**Output:**

```
Provider: openai
  Registered: ✅ Yes
  Available: ✅ Yes
  Type: Built-in
  API Key: 🔑 Set

  Models:
    - gpt-4o
    - gpt-4o-mini
    - gpt-4-turbo
    - gpt-4
    - gpt-3.5-turbo
```

**JSON output:**

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts providers info openai --json
```

```json theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
{
  "success": true,
  "data": {
    "name": "openai",
    "registered": true,
    "available": true,
    "is_builtin": true,
    "has_api_key": true,
    "models": ["gpt-4o", "gpt-4o-mini", "gpt-4-turbo", "gpt-4", "gpt-3.5-turbo"]
  }
}
```

## Using Custom Providers with CLI

Custom providers must be registered programmatically before using the CLI. Create a setup script:

```typescript theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
// setup-providers.ts
import { registerProvider } from 'praisonai';
import { CloudflareProvider } from './providers/cloudflare';

registerProvider('cloudflare', CloudflareProvider);
```

Then import it before running CLI commands:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Using ts-node
ts-node -r ./setup-providers.ts node_modules/.bin/praisonai-ts providers list
```

Or in your application entry point:

```typescript theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
// index.ts
import './setup-providers';
import { runCLI } from 'praisonai';

runCLI();
```

## Environment Variables

Set API keys for built-in providers:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# OpenAI
export OPENAI_API_KEY=sk-...

# Anthropic
export ANTHROPIC_API_KEY=sk-ant-...

# Google/Gemini
export GOOGLE_API_KEY=AIza...
```

For custom providers, the CLI checks for `{PROVIDER_NAME}_API_KEY`:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Custom provider
export CLOUDFLARE_API_KEY=cf-...
```

## Chat with Custom Provider

Once registered, use custom providers with the chat command:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts chat --model cloudflare/workers-ai "Hello, world!"
```

## Troubleshooting

### Provider Not Found

```
Error: Unknown provider: 'cloudflare'. Available providers: openai, anthropic, google.
```

**Solution:** Register the provider before using it:

```typescript theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
import { registerProvider } from 'praisonai';
registerProvider('cloudflare', CloudflareProvider);
```

### API Key Not Set

```
Provider: cloudflare
  Available: ❌ No
  API Key: ⚠️ Not set
```

**Solution:** Set the environment variable:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
export CLOUDFLARE_API_KEY=your-api-key
```

### Provider Not Available

A provider may be registered but not available if:

1. API key is not set
2. Required dependencies are not installed
3. Network connectivity issues

Check provider status:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts providers info cloudflare
```
