> ## 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

> Gérez les ressources Avala depuis votre terminal

Le CLI Avala vous permet de lister les jeux de données, créer des exports, gérer le stockage cloud et plus encore — directement depuis la ligne de commande.

## Installation

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

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

Le script d'installation detecte votre version de Python, installe `avala[cli]` via pip et verifie la configuration. Necessite Python 3.9+.

Ceci installe la commande `avala` ainsi que [Click](https://click.palletsprojects.com/) et [Rich](https://rich.readthedocs.io/) pour un affichage formate dans le terminal.

## Authentification

Définissez votre clé API comme variable d'environnement (recommandé) :

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

Ou passez-la comme option sur n'importe quelle commande :

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

Pour configurer les identifiants de manière interactive :

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

Ceci vous guide dans la saisie de votre clé API et de l'URL de base, puis affiche les instructions `export` à ajouter à votre profil shell.

## Options globales

| Option            | Description                                                                                                      |
| ----------------- | ---------------------------------------------------------------------------------------------------------------- |
| `--api-key TEXT`  | Clé API Avala (ou définissez la variable d'env `AVALA_API_KEY`).                                                 |
| `--base-url TEXT` | URL de base de l'API (ou définissez la variable d'env `AVALA_BASE_URL`). Défaut : `https://api.avala.ai/api/v1`. |
| `--help`          | Affiche l'aide pour n'importe quelle commande.                                                                   |

## Commandes

### 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>
```

**Options de `list` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

**Champs de sortie 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>
```

**Options de `list` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

**Champs de sortie 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>
```

**Options de `list` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

**Champs de sortie 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>
```

**Options de `create` :**

| Option           | Description                       |
| ---------------- | --------------------------------- |
| `--dataset TEXT` | UID du jeu de données à exporter. |
| `--project TEXT` | UID du projet à exporter.         |

***

### storage-configs

Gérez les connexions de stockage cloud (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>
```

**Options de `create` :**

| Option              | Description                                   |
| ------------------- | --------------------------------------------- |
| `--name TEXT`       | Nom de la configuration de stockage (requis). |
| `--provider CHOICE` | `aws_s3` ou `gc_storage` (requis).            |

**Options AWS S3 :**

| Option                        | Description                        |
| ----------------------------- | ---------------------------------- |
| `--s3-bucket-name TEXT`       | Nom du bucket S3.                  |
| `--s3-bucket-region TEXT`     | Région AWS (par ex., `us-west-1`). |
| `--s3-bucket-prefix TEXT`     | Préfixe de clé d'objet.            |
| `--s3-access-key-id TEXT`     | ID de clé d'accès AWS.             |
| `--s3-secret-access-key TEXT` | Clé d'accès secrète AWS.           |

**Options Google Cloud Storage :**

| Option                  | Description                             |
| ----------------------- | --------------------------------------- |
| `--gc-bucket-name TEXT` | Nom du bucket GCS.                      |
| `--gc-prefix TEXT`      | Préfixe de clé d'objet.                 |
| `--gc-auth-json TEXT`   | Identifiants JSON du compte de service. |

***

### agents

Gérez les agents d'automatisation.

```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>
```

**Options de `create` :**

| Option                | Description                                           |
| --------------------- | ----------------------------------------------------- |
| `--name TEXT`         | Nom de l'agent (requis).                              |
| `--events TEXT`       | Liste de types d'événements séparés par des virgules. |
| `--callback-url TEXT` | URL de callback webhook (HTTPS).                      |
| `--description TEXT`  | Description de l'agent.                               |
| `--project TEXT`      | UID du projet pour limiter la portée de l'agent.      |
| `--task-types TEXT`   | Liste de types de tâches séparés par des virgules.    |

**Options de `list` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

**Options de `executions` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

***

### webhooks

Gérez les abonnements webhook.

```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
```

**Options de `create` :**

| Option              | Description                                                    |
| ------------------- | -------------------------------------------------------------- |
| `--target-url TEXT` | URL cible du webhook, HTTPS (requis).                          |
| `--events TEXT`     | Liste de types d'événements séparés par des virgules (requis). |
| `--secret TEXT`     | Secret de signature HMAC (généré automatiquement si omis).     |

**Options de `list` / `deliveries` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

***

### quality-targets

Gérez les objectifs de qualité pour les projets.

```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>
```

**Options de `create` :**

| Option              | Description                                          |
| ------------------- | ---------------------------------------------------- |
| `--project TEXT`    | UID du projet (requis).                              |
| `--name TEXT`       | Nom de l'objectif (requis).                          |
| `--metric TEXT`     | Métrique à surveiller (requis).                      |
| `--threshold FLOAT` | Valeur de seuil (requis).                            |
| `--operator TEXT`   | Opérateur de comparaison (`gt`, `lt`, `gte`, `lte`). |
| `--severity CHOICE` | Sévérité de l'alerte : `warning` ou `critical`.      |

**Options de `list` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--project TEXT`  | UID du projet (requis).                  |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

***

### consensus

Gérez le scoring de consensus pour les projets.

```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
```

**Options de `summary` / `scores` / `compute` :**

| Option           | Description             |
| ---------------- | ----------------------- |
| `--project TEXT` | UID du projet (requis). |

**Options de `scores` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

**Options de `config` (passez n'importe lequel pour mettre à jour, omettez tous pour voir) :**

| Option                        | Description                            |
| ----------------------------- | -------------------------------------- |
| `--project TEXT`              | UID du projet (requis).                |
| `--iou-threshold FLOAT`       | Seuil IoU (0.0-1.0).                   |
| `--min-agreement-ratio FLOAT` | Ratio d'accord minimum (0.0-1.0).      |
| `--min-annotations INTEGER`   | Nombre minimum d'annotations requises. |

***

### inference-providers

Gérez les fournisseurs d'inférence.

```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>
```

**Options de `create` :**

| Option                   | Description                                           |
| ------------------------ | ----------------------------------------------------- |
| `--name TEXT`            | Nom du fournisseur (requis).                          |
| `--provider-type CHOICE` | `http` ou `sagemaker` (requis).                       |
| `--config TEXT`          | Configuration du fournisseur en chaîne JSON (requis). |
| `--description TEXT`     | Description du fournisseur.                           |
| `--project TEXT`         | UID du projet pour limiter la portée du fournisseur.  |

**Options de `list` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

***

### auto-label

Gérez les jobs d'auto-étiquetage.

```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>
```

**Options de `create` :**

| Option                         | Description                                             |
| ------------------------------ | ------------------------------------------------------- |
| `--project TEXT`               | UID du projet (requis).                                 |
| `--model-type CHOICE`          | Modèle d'inférence : `sam3` ou `yolo`.                  |
| `--confidence-threshold FLOAT` | Confiance minimum (0.0-1.0).                            |
| `--labels TEXT`                | Liste d'étiquettes séparées par des virgules à filtrer. |
| `--dry-run`                    | Exécuter l'inférence sans sauvegarder les résultats.    |

**Options de `list` :**

| Option            | Description                              |
| ----------------- | ---------------------------------------- |
| `--project TEXT`  | Filtrer par UID de projet.               |
| `--limit INTEGER` | Nombre maximum de résultats à retourner. |

***

### fleet

<Info>
  Les commandes fleet sont en aperçu. Les commandes décrites ici peuvent changer.
</Info>

Gérez les appareils de flotte, enregistrements, événements, règles et alertes.

```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
```

**Options de `devices list` :**

| Option            | Description                                              |
| ----------------- | -------------------------------------------------------- |
| `--status CHOICE` | Filtrer par statut : `online`, `offline`, `maintenance`. |
| `--type TEXT`     | Filtrer par type d'appareil.                             |
| `--limit INTEGER` | Nombre maximum de résultats à retourner.                 |

**Options de `recordings list` :**

| Option            | Description                                                                   |
| ----------------- | ----------------------------------------------------------------------------- |
| `--device TEXT`   | Filtrer par UID d'appareil.                                                   |
| `--since TEXT`    | Enregistrements des N derniers jours (par ex., `7d`, `30d`).                  |
| `--status CHOICE` | Filtrer par statut : `uploading`, `processing`, `ready`, `error`, `archived`. |
| `--limit INTEGER` | Nombre maximum de résultats à retourner.                                      |

**Options de `alerts list` :**

| Option              | Description                                                    |
| ------------------- | -------------------------------------------------------------- |
| `--status CHOICE`   | Filtrer par statut : `open`, `acknowledged`, `resolved`.       |
| `--severity CHOICE` | Filtrer par sévérité : `info`, `warning`, `error`, `critical`. |
| `--limit INTEGER`   | Nombre maximum de résultats à retourner.                       |

***

### configure

Assistant de configuration interactif pour les identifiants CLI.

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

Vous demande votre clé API et l'URL de base, puis affiche les commandes `export` à ajouter à votre profil shell (`~/.bashrc`, `~/.zshrc`, etc.).

## Exemples

### Lister les jeux de données et exporter un projet

```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
```

### Configurer le stockage cloud

```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
```

### Utilisation avec 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 d'environnement

| Variable         | Description                             | Défaut                        |
| ---------------- | --------------------------------------- | ----------------------------- |
| `AVALA_API_KEY`  | Votre clé API Avala.                    | Requis                        |
| `AVALA_BASE_URL` | Remplacement de l'URL de base de l'API. | `https://api.avala.ai/api/v1` |

## Format de sortie

Le CLI utilise [Rich](https://rich.readthedocs.io/) pour un affichage formaté :

* **Les commandes list** affichent les résultats dans des tableaux formatés.
* **Les commandes get** affichent une vue détaillée clé-valeur.
* **Les commandes create/delete** affichent des messages de confirmation.

Les couleurs et le formatage sont automatiquement désactivés lorsque la sortie est redirigée.

<Note>
  Le CLI ne supporte pas encore les options `--output json` ou `--format`. Toute la sortie est formatée pour la lisibilité dans le terminal. Pour une sortie lisible par machine, utilisez directement le [Python SDK](/docs/fr/sdks/python) ou la [REST API](/docs/sdks/rest-api).
</Note>
