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

> Avala-Ressourcen von Ihrem Terminal aus verwalten

Das Avala CLI ermöglicht es Ihnen, Datensätze aufzulisten, Exporte zu erstellen, Cloud-Speicher zu verwalten und mehr — direkt von der Kommandozeile.

## Installation

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

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

Das Installationsskript erkennt Ihre Python-Version, installiert `avala[cli]` über pip und überprüft die Einrichtung. Erfordert Python 3.9+.

Dies installiert den Befehl `avala` zusammen mit [Click](https://click.palletsprojects.com/) und [Rich](https://rich.readthedocs.io/) für formatierte Terminalausgabe.

## Authentifizierung

Setzen Sie Ihren API Key als Umgebungsvariable (empfohlen):

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

Oder übergeben Sie ihn als Flag bei jedem Befehl:

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

Für die interaktive Einrichtung der Zugangsdaten:

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

Dies führt Sie durch die Eingabe Ihres API Keys und der Basis-URL und gibt dann die `export`-Befehle aus, die Sie Ihrem Shell-Profil hinzufügen können.

## Globale Optionen

| Option            | Beschreibung                                                                                             |
| ----------------- | -------------------------------------------------------------------------------------------------------- |
| `--api-key TEXT`  | Avala API Key (oder Umgebungsvariable `AVALA_API_KEY` setzen).                                           |
| `--base-url TEXT` | API-Basis-URL (oder Umgebungsvariable `AVALA_BASE_URL` setzen). Standard: `https://api.avala.ai/api/v1`. |
| `--help`          | Hilfe für jeden Befehl anzeigen.                                                                         |

## Befehle

### datasets

```bash theme={null}
# Alle Datensätze auflisten
avala datasets list

# Ergebnisse begrenzen
avala datasets list --limit 10

# Bestimmten Datensatz abrufen
avala datasets get <uid>
```

**`list`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

**`get`-Ausgabefelder:** UID, Name, Slug, Elemente, Typ, Erstellt, Aktualisiert.

***

### projects

```bash theme={null}
# Alle Projekte auflisten
avala projects list

# Bestimmtes Projekt abrufen
avala projects get <uid>
```

**`list`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

**`get`-Ausgabefelder:** UID, Name, Status, Erstellt, Aktualisiert.

***

### tasks

```bash theme={null}
# Alle Aufgaben auflisten
avala tasks list

# Ergebnisse begrenzen
avala tasks list --limit 50

# Bestimmte Aufgabe abrufen
avala tasks get <uid>
```

**`list`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

**`get`-Ausgabefelder:** UID, Name, Typ, Status, Projekt, Erstellt, Aktualisiert.

***

### exports

```bash theme={null}
# Alle Exporte auflisten
avala exports list

# Export-Details abrufen
avala exports get <uid>

# Neuen Export erstellen
avala exports create --project <uid>
avala exports create --dataset <uid>
```

**`create`-Optionen:**

| Option           | Beschreibung                   |
| ---------------- | ------------------------------ |
| `--dataset TEXT` | Datensatz-UID zum Exportieren. |
| `--project TEXT` | Projekt-UID zum Exportieren.   |

***

### storage-configs

Cloud-Speicherverbindungen verwalten (AWS S3, Google Cloud Storage).

```bash theme={null}
# Speicherkonfigurationen auflisten
avala storage-configs list

# S3-Bucket hinzufügen
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

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

# Speicherverbindung testen
avala storage-configs test <uid>

# Speicherkonfiguration löschen (mit Bestätigung)
avala storage-configs delete <uid>
```

**`create`-Optionen:**

| Option              | Beschreibung                                       |
| ------------------- | -------------------------------------------------- |
| `--name TEXT`       | Name für die Speicherkonfiguration (erforderlich). |
| `--provider CHOICE` | `aws_s3` oder `gc_storage` (erforderlich).         |

**AWS S3-Optionen:**

| Option                        | Beschreibung                    |
| ----------------------------- | ------------------------------- |
| `--s3-bucket-name TEXT`       | S3-Bucket-Name.                 |
| `--s3-bucket-region TEXT`     | AWS-Region (z. B. `us-west-1`). |
| `--s3-bucket-prefix TEXT`     | Objekt-Key-Präfix.              |
| `--s3-access-key-id TEXT`     | AWS Access Key ID.              |
| `--s3-secret-access-key TEXT` | AWS Secret Access Key.          |

**Google Cloud Storage-Optionen:**

| Option                  | Beschreibung                       |
| ----------------------- | ---------------------------------- |
| `--gc-bucket-name TEXT` | GCS-Bucket-Name.                   |
| `--gc-prefix TEXT`      | Objekt-Key-Präfix.                 |
| `--gc-auth-json TEXT`   | Service-Account-JSON-Zugangsdaten. |

***

### agents

Automatisierungs-Agents verwalten.

```bash theme={null}
# Agents auflisten
avala agents list

# Agent-Details abrufen
avala agents get <uid>

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

# Agent löschen (mit Bestätigung)
avala agents delete <uid>

# Ausführungen eines Agents auflisten
avala agents executions <uid>

# Agent testen
avala agents test <uid>
```

**`create`-Optionen:**

| Option                | Beschreibung                              |
| --------------------- | ----------------------------------------- |
| `--name TEXT`         | Agent-Name (erforderlich).                |
| `--events TEXT`       | Kommagetrennte Liste von Event-Typen.     |
| `--callback-url TEXT` | Webhook-Callback-URL (HTTPS).             |
| `--description TEXT`  | Agent-Beschreibung.                       |
| `--project TEXT`      | Projekt-UID zur Einschränkung des Agents. |
| `--task-types TEXT`   | Kommagetrennte Liste von Aufgabentypen.   |

**`list`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

**`executions`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

***

### webhooks

Webhook-Abonnements verwalten.

```bash theme={null}
# Webhooks auflisten
avala webhooks list

# Webhook-Details abrufen
avala webhooks get <uid>

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

# Webhook löschen (mit Bestätigung)
avala webhooks delete <uid>

# Webhook testen
avala webhooks test <uid>

# Webhook-Zustellungen auflisten
avala webhooks deliveries
```

**`create`-Optionen:**

| Option              | Beschreibung                                                      |
| ------------------- | ----------------------------------------------------------------- |
| `--target-url TEXT` | Webhook-Ziel-URL, HTTPS (erforderlich).                           |
| `--events TEXT`     | Kommagetrennte Liste von Event-Typen (erforderlich).              |
| `--secret TEXT`     | HMAC-Signaturgeheimnis (automatisch generiert, wenn ausgelassen). |

**`list` / `deliveries`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

***

### quality-targets

Qualitätsziele für Projekte verwalten.

```bash theme={null}
# Qualitätsziele für ein Projekt auflisten
avala quality-targets list --project <uid>

# Bestimmtes Qualitätsziel abrufen
avala quality-targets get --project <uid> <target_uid>

# Qualitätsziel erstellen
avala quality-targets create \
  --project <uid> \
  --name "Accuracy Target" \
  --metric accuracy \
  --threshold 0.95 \
  --operator gte \
  --severity critical

# Qualitätsziel löschen (mit Bestätigung)
avala quality-targets delete --project <uid> <target_uid>

# Alle Qualitätsziele für ein Projekt auswerten
avala quality-targets evaluate --project <uid>
```

**`create`-Optionen:**

| Option              | Beschreibung                                   |
| ------------------- | ---------------------------------------------- |
| `--project TEXT`    | Projekt-UID (erforderlich).                    |
| `--name TEXT`       | Zielname (erforderlich).                       |
| `--metric TEXT`     | Zu überwachende Metrik (erforderlich).         |
| `--threshold FLOAT` | Schwellenwert (erforderlich).                  |
| `--operator TEXT`   | Vergleichsoperator (`gt`, `lt`, `gte`, `lte`). |
| `--severity CHOICE` | Warnungsschwere: `warning` oder `critical`.    |

**`list`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--project TEXT`  | Projekt-UID (erforderlich).                  |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

***

### consensus

Konsensbewertung für Projekte verwalten.

```bash theme={null}
# Konsenszusammenfassung für ein Projekt abrufen
avala consensus summary --project <uid>

# Konsenswerte auflisten
avala consensus scores --project <uid>

# Konsenswerte berechnen
avala consensus compute --project <uid>

# Konsenskonfiguration ansehen oder aktualisieren
avala consensus config --project <uid>
avala consensus config --project <uid> --iou-threshold 0.7 --min-annotations 3
```

**`summary` / `scores` / `compute`-Optionen:**

| Option           | Beschreibung                |
| ---------------- | --------------------------- |
| `--project TEXT` | Projekt-UID (erforderlich). |

**`scores`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

**`config`-Optionen (übergeben Sie welche zum Aktualisieren, lassen Sie alle weg zum Anzeigen):**

| Option                        | Beschreibung                               |
| ----------------------------- | ------------------------------------------ |
| `--project TEXT`              | Projekt-UID (erforderlich).                |
| `--iou-threshold FLOAT`       | IoU-Schwellenwert (0,0-1,0).               |
| `--min-agreement-ratio FLOAT` | Mindest-Übereinstimmungsquote (0,0-1,0).   |
| `--min-annotations INTEGER`   | Mindestanzahl erforderlicher Annotationen. |

***

### inference-providers

Inferenz-Provider verwalten.

```bash theme={null}
# Inferenz-Provider auflisten
avala inference-providers list

# Provider-Details abrufen
avala inference-providers get <uid>

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

# Provider löschen (mit Bestätigung)
avala inference-providers delete <uid>

# Provider-Verbindung testen
avala inference-providers test <uid>
```

**`create`-Optionen:**

| Option                   | Beschreibung                                           |
| ------------------------ | ------------------------------------------------------ |
| `--name TEXT`            | Provider-Name (erforderlich).                          |
| `--provider-type CHOICE` | `http` oder `sagemaker` (erforderlich).                |
| `--config TEXT`          | Provider-Konfiguration als JSON-String (erforderlich). |
| `--description TEXT`     | Provider-Beschreibung.                                 |
| `--project TEXT`         | Projekt-UID zur Einschränkung des Providers.           |

**`list`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

***

### auto-label

Auto-Label-Jobs verwalten.

```bash theme={null}
# Auto-Label-Jobs auflisten
avala auto-label list

# Nach Projekt filtern
avala auto-label list --project <uid>

# Job-Details abrufen
avala auto-label get <uid>

# Auto-Label-Job erstellen
avala auto-label create \
  --project <uid> \
  --model-type sam3 \
  --confidence-threshold 0.85 \
  --labels "car,truck"

# Laufenden Job abbrechen (mit Bestätigung)
avala auto-label cancel <uid>
```

**`create`-Optionen:**

| Option                         | Beschreibung                                      |
| ------------------------------ | ------------------------------------------------- |
| `--project TEXT`               | Projekt-UID (erforderlich).                       |
| `--model-type CHOICE`          | Inferenzmodell: `sam3` oder `yolo`.               |
| `--confidence-threshold FLOAT` | Mindestkonfidenz (0,0-1,0).                       |
| `--labels TEXT`                | Kommagetrennte Liste von Labels zum Filtern.      |
| `--dry-run`                    | Inferenz ausführen, ohne Ergebnisse zu speichern. |

**`list`-Optionen:**

| Option            | Beschreibung                                 |
| ----------------- | -------------------------------------------- |
| `--project TEXT`  | Nach Projekt-UID filtern.                    |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse. |

***

### fleet

<Info>
  Fleet-Befehle sind in der Vorschau. Die hier beschriebenen Befehle können sich ändern.
</Info>

Flottengeräte, Aufnahmen, Events, Regeln und Warnungen verwalten.

```bash theme={null}
# Online-Geräte auflisten
avala fleet devices list --status online

# Neues Gerät registrieren
avala fleet devices register --name "robot-arm-01" --type manipulator --firmware "2.4.1"

# Aufnahmen für ein Gerät auflisten
avala fleet recordings list --device dev_abc123 --since 7d

# Zeitleisten-Event erstellen
avala fleet events create --recording rec_abc123 --type anomaly --label "Gripper force spike"

# Aufnahmeregeln auflisten
avala fleet rules list

# Aktive Warnungen auflisten
avala fleet alerts list --status open
```

**`devices list`-Optionen:**

| Option            | Beschreibung                                             |
| ----------------- | -------------------------------------------------------- |
| `--status CHOICE` | Nach Status filtern: `online`, `offline`, `maintenance`. |
| `--type TEXT`     | Nach Gerätetyp filtern.                                  |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse.             |

**`recordings list`-Optionen:**

| Option            | Beschreibung                                                                  |
| ----------------- | ----------------------------------------------------------------------------- |
| `--device TEXT`   | Nach Geräte-UID filtern.                                                      |
| `--since TEXT`    | Aufnahmen der letzten N Tage (z. B. `7d`, `30d`).                             |
| `--status CHOICE` | Nach Status filtern: `uploading`, `processing`, `ready`, `error`, `archived`. |
| `--limit INTEGER` | Maximale Anzahl zurückzugebender Ergebnisse.                                  |

**`alerts list`-Optionen:**

| Option              | Beschreibung                                                      |
| ------------------- | ----------------------------------------------------------------- |
| `--status CHOICE`   | Nach Status filtern: `open`, `acknowledged`, `resolved`.          |
| `--severity CHOICE` | Nach Schweregrad filtern: `info`, `warning`, `error`, `critical`. |
| `--limit INTEGER`   | Maximale Anzahl zurückzugebender Ergebnisse.                      |

***

### configure

Interaktiver Einrichtungsassistent für CLI-Zugangsdaten.

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

Fragt nach Ihrem API Key und der Basis-URL und gibt dann die `export`-Befehle aus, die Sie Ihrem Shell-Profil (`~/.bashrc`, `~/.zshrc` usw.) hinzufügen können.

## Beispiele

### Datensätze auflisten und ein Projekt exportieren

```bash theme={null}
# Verfügbare Datensätze anzeigen
avala datasets list

# Annotationen aus einem Projekt exportieren
avala exports create --project proj_abc123

# Exportstatus prüfen
avala exports get exp_xyz789
```

### Cloud-Speicher einrichten

```bash theme={null}
# S3-Bucket verbinden
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

# Verbindung prüfen
avala storage-configs test sc_abc123
```

### Verwendung mit CI/CD

```bash theme={null}
# In Ihrer CI-Pipeline
export AVALA_API_KEY="${AVALA_API_KEY}"

# Export auslösen und UID erfassen
avala exports create --project proj_abc123
```

## Umgebungsvariablen

| Variable         | Beschreibung            | Standard                      |
| ---------------- | ----------------------- | ----------------------------- |
| `AVALA_API_KEY`  | Ihr Avala API Key.      | Erforderlich                  |
| `AVALA_BASE_URL` | API-Basis-URL-Override. | `https://api.avala.ai/api/v1` |

## Ausgabeformat

Das CLI verwendet [Rich](https://rich.readthedocs.io/) für formatierte Ausgabe:

* **Listen-Befehle** zeigen Ergebnisse in formatierten Tabellen an.
* **Get-Befehle** zeigen eine Schlüssel-Wert-Detailansicht an.
* **Create/Delete-Befehle** geben Bestätigungsnachrichten aus.

Farben und Formatierung werden automatisch deaktiviert, wenn die Ausgabe weitergeleitet oder umgeleitet wird.

<Note>
  Das CLI unterstützt noch keine `--output json` oder `--format` Flags. Alle Ausgaben sind für die Lesbarkeit im Terminal formatiert. Für maschinenlesbare Ausgabe verwenden Sie direkt das [Python SDK](/docs/de/sdks/python) oder die [REST API](/docs/sdks/rest-api).
</Note>
