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

# CLI

> Gestione recursos de Avala desde su terminal

El CLI de Avala le permite listar datasets, crear exportaciones, gestionar almacenamiento en la nube y más — directamente desde la línea de comandos.

## Instalación

<CodeGroup>
  ```bash Recommended theme={null}
  curl -fsSL https://avala.ai/install.sh | bash
  ```

  ```bash pip theme={null}
  pip install avala[cli]
  ```
</CodeGroup>

El script de instalación detecta su versión de Python, instala `avala[cli]` a través de pip y verifica la configuración. Requiere Python 3.9+.

Esto instala el comando `avala` junto con [Click](https://click.palletsprojects.com/) y [Rich](https://rich.readthedocs.io/) para salida formateada en terminal.

## Autenticación

Configure su API key como variable de entorno (recomendado):

```bash theme={null}
export AVALA_API_KEY="avk_your_api_key"
```

O pásela como flag en cualquier comando:

```bash theme={null}
avala --api-key avk_your_api_key datasets list
```

Para configurar credenciales de forma interactiva:

```bash theme={null}
avala configure
```

Esto le guía a través de la entrada de su API key y URL base, luego imprime las sentencias `export` para agregar a su perfil de shell.

## Opciones globales

| Opción            | Descripción                                                                                                           |
| ----------------- | --------------------------------------------------------------------------------------------------------------------- |
| `--api-key TEXT`  | API key de Avala (o configure la variable de entorno `AVALA_API_KEY`).                                                |
| `--base-url TEXT` | URL base de la API (o configure la variable de entorno `AVALA_BASE_URL`). Por defecto: `https://api.avala.ai/api/v1`. |
| `--help`          | Mostrar ayuda para cualquier comando.                                                                                 |

## Comandos

### datasets

```bash theme={null}
# List all datasets
avala datasets list

# Limit results
avala datasets list --limit 10

# Get a specific dataset
avala datasets get <uid>
```

**Opciones de `list`:**

| Opción            | Descripción                             |
| ----------------- | --------------------------------------- |
| `--limit INTEGER` | Número máximo de resultados a devolver. |

**Campos de salida de `get`:** UID, Name, Slug, Items, Type, Created, Updated.

***

### projects

```bash theme={null}
# List all projects
avala projects list

# Get a specific project
avala projects get <uid>
```

**Opciones de `list`:**

| Opción            | Descripción                             |
| ----------------- | --------------------------------------- |
| `--limit INTEGER` | Número máximo de resultados a devolver. |

**Campos de salida de `get`:** UID, Name, Status, Created, Updated.

***

### tasks

```bash theme={null}
# List all tasks
avala tasks list

# Limit results
avala tasks list --limit 50

# Get a specific task
avala tasks get <uid>
```

**Opciones de `list`:**

| Opción            | Descripción                             |
| ----------------- | --------------------------------------- |
| `--limit INTEGER` | Número máximo de resultados a devolver. |

**Campos de salida de `get`:** UID, Name, Type, Status, Project, Created, Updated.

***

### exports

```bash theme={null}
# List all exports
avala exports list

# Get export details
avala exports get <uid>

# Create a new export
avala exports create --project <uid>
avala exports create --dataset <uid>
```

**Opciones de `create`:**

| Opción           | Descripción                  |
| ---------------- | ---------------------------- |
| `--dataset TEXT` | UID del dataset a exportar.  |
| `--project TEXT` | UID del proyecto a exportar. |

***

### storage-configs

Gestione conexiones de almacenamiento en la nube (AWS S3, Google Cloud Storage).

```bash theme={null}
# List storage configurations
avala storage-configs list

# Add an S3 bucket
avala storage-configs create \
  --name "Production S3" \
  --provider aws_s3 \
  --s3-bucket-name my-bucket \
  --s3-bucket-region us-west-1 \
  --s3-access-key-id $AWS_ACCESS_KEY_ID \
  --s3-secret-access-key $AWS_SECRET_ACCESS_KEY

# Add a GCS bucket
avala storage-configs create \
  --name "Production GCS" \
  --provider gc_storage \
  --gc-bucket-name my-gcs-bucket \
  --gc-auth-json '{"type":"service_account",...}'

# Test a storage connection
avala storage-configs test <uid>

# Delete a storage config (prompts for confirmation)
avala storage-configs delete <uid>
```

**Opciones de `create`:**

| Opción              | Descripción                                                 |
| ------------------- | ----------------------------------------------------------- |
| `--name TEXT`       | Nombre para la configuración de almacenamiento (requerido). |
| `--provider CHOICE` | `aws_s3` o `gc_storage` (requerido).                        |

**Opciones de AWS S3:**

| Opción                        | Descripción                       |
| ----------------------------- | --------------------------------- |
| `--s3-bucket-name TEXT`       | Nombre del bucket S3.             |
| `--s3-bucket-region TEXT`     | Región de AWS (ej., `us-west-1`). |
| `--s3-bucket-prefix TEXT`     | Prefijo de clave de objeto.       |
| `--s3-access-key-id TEXT`     | ID de clave de acceso de AWS.     |
| `--s3-secret-access-key TEXT` | Clave de acceso secreta de AWS.   |

**Opciones de Google Cloud Storage:**

| Opción                  | Descripción                              |
| ----------------------- | ---------------------------------------- |
| `--gc-bucket-name TEXT` | Nombre del bucket GCS.                   |
| `--gc-prefix TEXT`      | Prefijo de clave de objeto.              |
| `--gc-auth-json TEXT`   | Credenciales JSON de cuenta de servicio. |

***

### agents

Gestione agentes de automatización.

```bash theme={null}
# List agents
avala agents list

# Get agent details
avala agents get <uid>

# Create an agent
avala agents create \
  --name "QA Bot" \
  --events "task.completed,result.submitted" \
  --callback-url https://example.com/hook

# Delete an agent (prompts for confirmation)
avala agents delete <uid>

# List executions for an agent
avala agents executions <uid>

# Test an agent
avala agents test <uid>
```

**Opciones de `create`:**

| Opción                | Descripción                                          |
| --------------------- | ---------------------------------------------------- |
| `--name TEXT`         | Nombre del agente (requerido).                       |
| `--events TEXT`       | Lista de tipos de eventos separados por comas.       |
| `--callback-url TEXT` | URL de callback del webhook (HTTPS).                 |
| `--description TEXT`  | Descripción del agente.                              |
| `--project TEXT`      | UID del proyecto para limitar el alcance del agente. |
| `--task-types TEXT`   | Lista de tipos de tarea separados por comas.         |

**Opciones de `list`:**

| Opción            | Descripción                             |
| ----------------- | --------------------------------------- |
| `--limit INTEGER` | Número máximo de resultados a devolver. |

**Opciones de `executions`:**

| Opción            | Descripción                             |
| ----------------- | --------------------------------------- |
| `--limit INTEGER` | Número máximo de resultados a devolver. |

***

### webhooks

Gestione suscripciones de webhooks.

```bash theme={null}
# List webhooks
avala webhooks list

# Get webhook details
avala webhooks get <uid>

# Create a webhook
avala webhooks create \
  --target-url https://example.com/webhook \
  --events "task.completed,export.ready"

# Delete a webhook (prompts for confirmation)
avala webhooks delete <uid>

# Test a webhook
avala webhooks test <uid>

# List webhook deliveries
avala webhooks deliveries
```

**Opciones de `create`:**

| Opción              | Descripción                                                   |
| ------------------- | ------------------------------------------------------------- |
| `--target-url TEXT` | URL de destino del webhook, HTTPS (requerido).                |
| `--events TEXT`     | Lista de tipos de eventos separados por comas (requerido).    |
| `--secret TEXT`     | Secreto de firma HMAC (generado automáticamente si se omite). |

**Opciones de `list` / `deliveries`:**

| Opción            | Descripción                             |
| ----------------- | --------------------------------------- |
| `--limit INTEGER` | Número máximo de resultados a devolver. |

***

### quality-targets

Gestione objetivos de calidad para proyectos.

```bash theme={null}
# List quality targets for a project
avala quality-targets list --project <uid>

# Get a specific quality target
avala quality-targets get --project <uid> <target_uid>

# Create a quality target
avala quality-targets create \
  --project <uid> \
  --name "Accuracy Target" \
  --metric accuracy \
  --threshold 0.95 \
  --operator gte \
  --severity critical

# Delete a quality target (prompts for confirmation)
avala quality-targets delete --project <uid> <target_uid>

# Evaluate all quality targets for a project
avala quality-targets evaluate --project <uid>
```

**Opciones de `create`:**

| Opción              | Descripción                                         |
| ------------------- | --------------------------------------------------- |
| `--project TEXT`    | UID del proyecto (requerido).                       |
| `--name TEXT`       | Nombre del objetivo (requerido).                    |
| `--metric TEXT`     | Métrica a monitorear (requerido).                   |
| `--threshold FLOAT` | Valor umbral (requerido).                           |
| `--operator TEXT`   | Operador de comparación (`gt`, `lt`, `gte`, `lte`). |
| `--severity CHOICE` | Severidad de la alerta: `warning` o `critical`.     |

**Opciones de `list`:**

| Opción            | Descripción                             |
| ----------------- | --------------------------------------- |
| `--project TEXT`  | UID del proyecto (requerido).           |
| `--limit INTEGER` | Número máximo de resultados a devolver. |

***

### consensus

Gestione puntuación de consenso para proyectos.

```bash theme={null}
# Get consensus summary for a project
avala consensus summary --project <uid>

# List consensus scores
avala consensus scores --project <uid>

# Compute consensus scores
avala consensus compute --project <uid>

# View or update consensus config
avala consensus config --project <uid>
avala consensus config --project <uid> --iou-threshold 0.7 --min-annotations 3
```

***

### inference-providers

Gestione proveedores de inferencia.

```bash theme={null}
# List inference providers
avala inference-providers list

# Get provider details
avala inference-providers get <uid>

# Create a provider
avala inference-providers create \
  --name "My SageMaker" \
  --provider-type sagemaker \
  --config '{"endpoint": "my-endpoint", "region": "us-east-1"}'

# Delete a provider (prompts for confirmation)
avala inference-providers delete <uid>

# Test provider connection
avala inference-providers test <uid>
```

***

### auto-label

Gestione trabajos de auto-etiquetado.

```bash theme={null}
# List auto-label jobs
avala auto-label list

# Filter by project
avala auto-label list --project <uid>

# Get job details
avala auto-label get <uid>

# Create an auto-label job
avala auto-label create \
  --project <uid> \
  --model-type sam3 \
  --confidence-threshold 0.85 \
  --labels "car,truck"

# Cancel a running job (prompts for confirmation)
avala auto-label cancel <uid>
```

***

### fleet

<Info>
  Los comandos de flota están en vista previa. Los comandos descritos aquí pueden cambiar.
</Info>

Gestione dispositivos de flota, grabaciones, eventos, reglas y alertas.

```bash theme={null}
# List online devices
avala fleet devices list --status online

# Register a new device
avala fleet devices register --name "robot-arm-01" --type manipulator --firmware "2.4.1"

# List recordings for a device
avala fleet recordings list --device dev_abc123 --since 7d

# Create a timeline event
avala fleet events create --recording rec_abc123 --type anomaly --label "Gripper force spike"

# List recording rules
avala fleet rules list

# List active alerts
avala fleet alerts list --status open
```

***

### configure

Asistente de configuración interactiva para credenciales del CLI.

```bash theme={null}
avala configure
```

Le solicita su API key y URL base, luego muestra los comandos `export` para agregar a su perfil de shell (`~/.bashrc`, `~/.zshrc`, etc.).

## Ejemplos

### Listar datasets y exportar un proyecto

```bash theme={null}
# See what datasets you have
avala datasets list

# Export annotations from a project
avala exports create --project proj_abc123

# Check export status
avala exports get exp_xyz789
```

### Configurar almacenamiento en la nube

```bash theme={null}
# Connect an S3 bucket
avala storage-configs create \
  --name "Training Data" \
  --provider aws_s3 \
  --s3-bucket-name ml-training-data \
  --s3-bucket-region us-east-1 \
  --s3-access-key-id $AWS_ACCESS_KEY_ID \
  --s3-secret-access-key $AWS_SECRET_ACCESS_KEY

# Verify the connection works
avala storage-configs test sc_abc123
```

### Uso con CI/CD

```bash theme={null}
# In your CI pipeline
export AVALA_API_KEY="${AVALA_API_KEY}"

# Trigger an export and capture the UID
avala exports create --project proj_abc123
```

## Variables de entorno

| Variable         | Descripción                          | Valor por defecto             |
| ---------------- | ------------------------------------ | ----------------------------- |
| `AVALA_API_KEY`  | Su API key de Avala.                 | Requerido                     |
| `AVALA_BASE_URL` | Sobrescritura de URL base de la API. | `https://api.avala.ai/api/v1` |

## Formato de salida

El CLI usa [Rich](https://rich.readthedocs.io/) para salida formateada:

* **Comandos de lista** muestran resultados en tablas formateadas.
* **Comandos de obtención** muestran una vista detallada de clave-valor.
* **Comandos de crear/eliminar** imprimen mensajes de confirmación.

Los colores y el formato se desactivan automáticamente cuando la salida se redirige o canaliza.

<Note>
  El CLI aún no soporta flags `--output json` o `--format`. Toda la salida está formateada para legibilidad en terminal. Para salida procesable por máquinas, use el [Python SDK](/docs/es/sdks/python) o la [REST API](/docs/sdks/rest-api) directamente.
</Note>
