> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-mintlify-d2fddb8a.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude Code

> Configura Claude Code CLI per instradare le richieste a Anthropic Claude Opus e Sonnet tramite Venice, per un'inferenza privata e pay-per-use con agenti di coding.

[Claude Code](https://docs.anthropic.com/en/docs/claude-code) è lo strumento CLI di Anthropic per il coding agentico. Questa guida ti mostra come eseguirlo tramite Venice AI per l'accesso pay-per-token a Claude Opus 4.5/4.6 e Sonnet 4.5/4.6.

<CardGroup cols={3}>
  <Card title="Paga per token" icon="coins">
    Nessun abbonamento. Paghi solo per ciò che usi
  </Card>

  <Card title="Modelli Claude" icon="microchip">
    Accedi a Opus 4.5/4.6 e Sonnet 4.5/4.6 tramite Venice
  </Card>

  <Card title="Prompt caching" icon="bolt">
    Il caching di Venice funziona insieme a Claude Code
  </Card>
</CardGroup>

## Perché serve un router

Claude Code si connette direttamente all'API di Anthropic per impostazione predefinita. Per usarlo con Venice, hai bisogno di [claude-code-router](https://github.com/musistudio/claude-code-router), un proxy locale open source che:

<Steps>
  <Step title="Intercetta" icon="hand">
    Cattura le richieste in uscita di Claude Code prima che raggiungano Anthropic
  </Step>

  <Step title="Trasforma" icon="arrows-rotate">
    Converte il formato della richiesta e mappa gli ID dei modelli (es. `claude-opus-4-5`)
  </Step>

  <Step title="Reindirizza" icon="route">
    Inoltra le richieste a Venice su `api.venice.ai/api/v1/chat/completions`
  </Step>
</Steps>

***

## Prerequisiti

<CardGroup cols={3}>
  <Card title="Account Venice" icon="user" href="https://venice.ai/settings/api">
    Con crediti API
  </Card>

  <Card title="Node.js" icon="node-js" href="https://nodejs.org/">
    v18 o superiore
  </Card>

  <Card title="Claude Code" icon="terminal" href="https://docs.anthropic.com/en/docs/claude-code">
    Installato via npm
  </Card>
</CardGroup>

***

## Configurazione

<Steps>
  <Step title="Installa Claude Code">
    Se non l'hai già fatto, installa la CLI Claude Code di Anthropic:

    ```bash theme={null}
    npm install -g @anthropic-ai/claude-code
    ```
  </Step>

  <Step title="Installa il router">
    ```bash theme={null}
    npm install -g @musistudio/claude-code-router
    ```
  </Step>

  <Step title="Ottieni la tua API key">
    Genera una chiave da [venice.ai/settings/api](https://venice.ai/settings/api). La incollerai direttamente nel file di configurazione nel prossimo passaggio.
  </Step>

  <Step title="Crea la configurazione">
    Crea la directory di configurazione:

    ```bash theme={null}
    mkdir -p ~/.claude-code-router
    ```

    Quindi crea `~/.claude-code-router/config.json` con il tuo editor preferito:

    ```bash theme={null}
    # Usando nano
    nano ~/.claude-code-router/config.json

    # O usando VS Code
    code ~/.claude-code-router/config.json
    ```

    Incolla la seguente configurazione:

    ```json theme={null}
    {
      "APIKEY": "",
      "LOG": true,
      "LOG_LEVEL": "info",
      "API_TIMEOUT_MS": 600000,
      "HOST": "127.0.0.1",
      "Providers": [
        {
          "name": "venice",
          "api_base_url": "https://api.venice.ai/api/v1/chat/completions",
          "api_key": "your-venice-api-key-here",
          "models": [
            "claude-opus-4-5",
            "claude-sonnet-4-5",
            "claude-opus-4-6",
            "claude-opus-4-6-fast",
            "claude-sonnet-4-6"
          ],
          "transformer": {
            "use": ["anthropic"]
          }
        }
      ],
      "Router": {
        "default": "venice,claude-opus-4-5",
        "think": "venice,claude-opus-4-5",
        "background": "venice,claude-opus-4-5",
        "longContext": "venice,claude-opus-4-5",
        "longContextThreshold": 100000
      }
    }
    ```

    <Note>
      Se modifichi `config.json` mentre il router è in esecuzione, riavvialo con `ccr restart` per applicare le modifiche.
    </Note>
  </Step>

  <Step title="Avvio">
    Avvia il router, poi Claude Code:

    ```bash theme={null}
    ccr start
    ccr code
    ```

    Oppure usa il metodo di attivazione:

    ```bash theme={null}
    eval "$(ccr activate)" && claude
    ```
  </Step>
</Steps>

***

## Modelli supportati

| Modello              | ID Venice              | Ideale per                                            |
| -------------------- | ---------------------- | ----------------------------------------------------- |
| Claude Opus 4.5      | `claude-opus-4-5`      | Ragionamento complesso, refactor di grandi dimensioni |
| Claude Sonnet 4.5    | `claude-sonnet-4-5`    | Iterazione veloce, coding quotidiano                  |
| Claude Opus 4.6      | `claude-opus-4-6`      | Ragionamento complesso, refactor di grandi dimensioni |
| Claude Opus 4.6 Fast | `claude-opus-4-6-fast` | Ragionamento complesso con latenza inferiore          |
| Claude Sonnet 4.6    | `claude-sonnet-4-6`    | Iterazione veloce, coding quotidiano                  |

<Info>
  Claude Code è ottimizzato per i modelli Claude. Sebbene altri modelli disponibili tramite Venice (GPT, DeepSeek, Grok, ecc.) possano funzionare, non possiamo garantire un'esperienza equivalente poiché Claude Code si basa su funzionalità specifiche di Claude come l'extended thinking. Per altri modelli, considera l'uso dell'[API standard di Venice](/api-reference/endpoint/chat/completions).
</Info>

***

## Funzionalità del router

Il router fornisce diverse funzionalità utili oltre al routing di base:

<AccordionGroup>
  <Accordion title="Cambia modello al volo">
    Usa il comando `/model` all'interno di Claude Code per cambiare modello senza riavviare:

    ```
    /model venice,claude-sonnet-4-5
    ```

    Utile quando vuoi Opus per compiti complessi e Sonnet per iterazioni veloci.
  </Accordion>

  <Accordion title="Configurazione visiva con modalità UI">
    Preferisci una GUI? Avvia l'editor di configurazione web:

    ```bash theme={null}
    ccr ui
    ```

    Questo apre un'interfaccia browser per modificare il tuo `config.json` senza toccare direttamente il file.
  </Accordion>

  <Accordion title="Scenari del router spiegati">
    La sezione di configurazione `Router` controlla quale modello gestisce diversi tipi di compito:

    | Scenario      | Quando viene usato                                                  |
    | ------------- | ------------------------------------------------------------------- |
    | `default`     | Richieste generali                                                  |
    | `think`       | Compiti ad alto contenuto di ragionamento (Plan Mode)               |
    | `background`  | Operazioni in background                                            |
    | `longContext` | Quando il contesto supera la soglia `longContextThreshold` in token |

    Puoi instradare scenari diversi verso modelli diversi. Ad esempio, usa Sonnet per i compiti in background per risparmiare sui costi.
  </Accordion>

  <Accordion title="Debug con i log">
    Se qualcosa non funziona, controlla i log:

    ```bash theme={null}
    # Log del server (HTTP, chiamate API)
    ~/.claude-code-router/logs/ccr-*.log

    # Log dell'applicazione (decisioni di routing)
    ~/.claude-code-router/claude-code-router.log
    ```

    Imposta `"LOG_LEVEL": "debug"` nella tua configurazione per un output più verboso.
  </Accordion>
</AccordionGroup>

***

## Comportamento della cache

Il [prompt caching](/guides/features/prompt-caching) di Venice funziona insieme ai marker di cache nativi di Claude Code. Venice rileva automaticamente quando Claude Code invia campi `cache_control` e adatta di conseguenza la sua strategia di caching.

| Scenario                     | TTL della cache | Chi controlla        |
| ---------------------------- | --------------- | -------------------- |
| Default (consigliato)        | 5 minuti        | Claude Code + Venice |
| Con transformer `cleancache` | 1 ora           | Solo Venice          |

<AccordionGroup>
  <Accordion title="Quando NON usare cleancache (la maggior parte degli utenti)">
    La configurazione predefinita consente a entrambi i sistemi di cooperare:

    * Claude Code invia i suoi marker `cache_control` nativi
    * Venice aggiunge il caching attorno con un TTL di 5 minuti
    * Entrambi i sistemi condividono il limite di 4 blocchi di cache

    Funziona bene per sessioni di coding attive in cui fai richieste frequenti.
  </Accordion>

  <Accordion title="Quando usare cleancache">
    Aggiungi `cleancache` al transformer se:

    * Stai raggiungendo gli errori del limite di 4 blocchi di cache
    * Sperimenti comportamenti strani della cache
    * Preferisci il TTL di 1 ora di Venice per sessioni più lunghe

    ```json theme={null}
    "transformer": {
      "use": ["anthropic", "cleancache"]
    }
    ```

    Questo rimuove i marker di cache di Claude Code, dando a Venice il pieno controllo con un TTL più lungo.
  </Accordion>
</AccordionGroup>

***

## Risorse

<CardGroup cols={2}>
  <Card title="Documentazione API Venice" icon="book" href="/api-reference/api-spec">
    Riferimento completo dell'API
  </Card>

  <Card title="claude-code-router" icon="github" href="https://github.com/musistudio/claude-code-router">
    Codice sorgente e issue
  </Card>
</CardGroup>
