---
title: Scripting e automazione con la CLI
url: https://platform.claude.com/docs/it/cli-sdks-libraries/cli/scripting
description: Gestisci le risorse API come file sotto controllo di versione con ant apply, concatena i comandi della CLI ant negli script, opera sulle risorse da Claude Code e autentica le chiamate curl con le credenziali della CLI.
---

Questa pagina tratta i flussi di lavoro orientati alle attività basati sulla CLI `ant`. Per i flag sottostanti e le opzioni di output, consulta [Usare la CLI](https://platform.claude.com/docs/it/cli-sdks-libraries/cli/using).

## Controllo di versione delle risorse API

Per conservare agenti, ambienti e altre risorse di Claude Managed Agents come file nel tuo repository, consulta [Gestire le risorse come codice con ant apply](https://platform.claude.com/docs/it/cli-sdks-libraries/cli/apply).

### Eseguire l'agente applicato dalla shell

Una volta che un agente e un ambiente esistono, puoi gestire una sessione dalla shell:

<Steps>
  <Step title="Avvia una sessione">
    Passa gli ID dell'agente e dell'ambiente al comando di creazione della sessione. Dopo `ant apply`, leggili da `claude-lock.json`: ogni voce sotto `resources` ha un `id` e, per il progetto in [Gestire le risorse come codice con ant apply](https://platform.claude.com/docs/it/cli-sdks-libraries/cli/apply), le voci sono `./agents/summarizer.md` e `./environments/cloud.yaml`.

    ```bash
    ant beta:sessions create \
      --agent agent_011CYm1BLqPXpQRk5khsSXrs \
      --environment-id env_01595EKxaaTTGwwY3kyXdtbs \
      --title "Summarization task"
    ```

    ```json Output
    {
      "id": "session_01JZCh78XvmxJjiXVy3oSi7K",
      "status": "running"
      /* ... */
    }
    ```
  </Step>

  <Step title="Invia un messaggio utente">
    Copia l'`id` della sessione dall'output precedente in `--session-id`:

    ```bash
    ant beta:sessions:events send \
      --session-id session_01JZCh78XvmxJjiXVy3oSi7K \
      --event '{type: user.message, content: [{type: text, text: "Summarize the benefits of type safety in one sentence."}]}'
    ```
  </Step>

  <Step title="Leggi la conversazione">
    Una volta che l'agente ha risposto, elenca gli eventi. `--transform` viene eseguito su ciascun evento elencato, quindi questo comando stampa in ordine il testo di ogni messaggio. `--format auto` sostituisce l'esploratore interattivo che i comandi di elenco aprono per impostazione predefinita in un terminale:

    ```bash
    ant beta:sessions:events list \
      --session-id session_01JZCh78XvmxJjiXVy3oSi7K \
      --transform 'content.0.text' \
      --raw-output \
      --format auto
    ```

    ```text Output wrap
    Summarize the benefits of type safety in one sentence.
    Type safety catches errors at compile time rather than runtime, reducing bugs, improving code clarity, enabling better tooling support, and making codebases easier to maintain and refactor with confidence.
    ```

    <Tip>
      Per osservare una sessione mentre è in esecuzione, usa `ant beta:sessions:events stream --session-id session_01JZCh78XvmxJjiXVy3oSi7K --format jsonl`, che scrive ogni evento su stdout non appena arriva. Senza `--format`, un terminale apre invece l'esploratore interattivo.
    </Tip>
  </Step>
</Steps>

## Pattern di scripting

La CLI è progettata per integrarsi con gli strumenti standard della shell.

### Concatena l'output di un elenco in un secondo comando

`--transform id --raw-output` su un endpoint di elenco emette un ID semplice per riga, quindi strumenti standard come `head` e `xargs` si applicano direttamente. Cattura il primo risultato, quindi passalo a un comando successivo:

```bash
FIRST_AGENT=$(ant beta:agents list --transform id --raw-output | head -1)

ant beta:agents:versions list \
  --agent-id "$FIRST_AGENT" \
  --transform "{version,created_at}" --format jsonl
```

### Ispeziona gli errori

I flag `--transform-error` e `--format-error` applicano lo stesso filtraggio alle risposte di errore. `--raw-output` non si applica agli errori, quindi usa `--format-error yaml` per ottenere uno scalare senza virgolette. Estrai solo il messaggio di errore:

```bash
ant beta:agents retrieve --agent-id bogus \
  --transform-error error.message --format-error yaml 2>&1
```

```text Output wrap
GET "https://api.anthropic.com/v1/agents/bogus?beta=true": 404 Not Found
Agent not found.
```

## Usa la CLI da Claude Code

[Claude Code](https://code.claude.com/docs/it/overview) può usare la CLI `ant` senza configurazione aggiuntiva. Con la CLI installata e autenticata, puoi chiedere a Claude Code di operare direttamente sulle tue risorse API. Ad esempio:

* "Elenca le mie sessioni agente recenti e riassumi quali hanno generato errori."
* "Carica ogni PDF in `./reports` nella Files API e stampa gli ID risultanti."
* "Recupera gli eventi della sessione `session_01...` e dimmi dove l'agente si è bloccato."

Claude Code invoca `ant` tramite la shell, analizza l'output strutturato e ragiona sui risultati (non è richiesto alcun codice di integrazione personalizzato).

## Autentica le richieste curl con le credenziali della CLI

Gli script che chiamano l'API con `curl` o un altro client HTTP possono usare le credenziali memorizzate da [`ant auth login`](https://platform.claude.com/docs/it/cli-sdks-libraries/cli/quickstart#authentication) invece di una "API key" (chiave API) statica. Il token di accesso OAuth va nell'header `Authorization` come bearer token; l'header `x-api-key` è solo per le chiavi API statiche.

`ant auth print-credentials --access-token` stampa il token di accesso del profilo attivo, aggiornandolo prima se è scaduto o prossimo alla scadenza:

```bash cURL
curl https://api.anthropic.com/v1/messages \
  -H "Authorization: Bearer $(ant auth print-credentials --access-token)" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5-5",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "hi"}]
  }'
```

<Note>
  Mantieni `ANTHROPIC_API_KEY` e `ANTHROPIC_AUTH_TOKEN` non impostate quando lavori da un login della CLI. Ciascuna delle due variabili ha la precedenza sul login per i comandi `ant` (consulta [Precedenza delle credenziali](https://platform.claude.com/docs/it/manage-claude/wif-reference#credential-precedence)) e può instradarli silenziosamente verso un'organizzazione o un workspace diversi.
</Note>

Esegui [`ant auth status`](https://platform.claude.com/docs/it/cli-sdks-libraries/cli/authentication#check-authentication-status) per confermare a quale organizzazione e workspace hai effettuato l'accesso; ti avvisa quando una variabile d'ambiente sta sovrascrivendo il tuo login.
