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

> Configure o CLI do Claude Code para rotear requisições do Anthropic Claude Opus e Sonnet pela Venice, obtendo inferência privada de agente de codificação baseada em uso.

O [Claude Code](https://docs.anthropic.com/en/docs/claude-code) é a ferramenta CLI da Anthropic para codificação agêntica. Este guia mostra como executá-lo via Venice AI para acesso por token (pay-per-token) aos modelos Claude Opus 4.5/4.6 e Sonnet 4.5/4.6.

<CardGroup cols={3}>
  <Card title="Pagamento por token" icon="coins">
    Sem assinatura. Pague apenas pelo que usar
  </Card>

  <Card title="Modelos Claude" icon="microchip">
    Acesse Opus 4.5/4.6 e Sonnet 4.5/4.6 através da Venice
  </Card>

  <Card title="Prompt caching" icon="bolt">
    O cache da Venice funciona em conjunto com o Claude Code
  </Card>
</CardGroup>

## Por que você precisa de um router

Por padrão, o Claude Code conecta-se diretamente à API da Anthropic. Para usá-lo com a Venice, você precisa do [claude-code-router](https://github.com/musistudio/claude-code-router), um proxy local de código aberto que:

<Steps>
  <Step title="Intercepta" icon="hand">
    Captura as requisições de saída do Claude Code antes que cheguem à Anthropic
  </Step>

  <Step title="Transforma" icon="arrows-rotate">
    Converte o formato da requisição e mapeia os IDs de modelo (por exemplo, `claude-opus-4-5`)
  </Step>

  <Step title="Redireciona" icon="route">
    Encaminha as requisições para a Venice em `api.venice.ai/api/v1/chat/completions`
  </Step>
</Steps>

***

## Pré-requisitos

<CardGroup cols={3}>
  <Card title="Conta Venice" icon="user" href="https://venice.ai/settings/api">
    Com créditos de API
  </Card>

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

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

***

## Configuração

<Steps>
  <Step title="Instale o Claude Code">
    Se ainda não instalou, instale o CLI Claude Code da Anthropic:

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

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

  <Step title="Obtenha sua chave de API">
    Gere uma chave em [venice.ai/settings/api](https://venice.ai/settings/api). Você a colará diretamente no arquivo de configuração na próxima etapa.
  </Step>

  <Step title="Crie a configuração">
    Crie o diretório de configuração:

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

    Em seguida, crie `~/.claude-code-router/config.json` com seu editor preferido:

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

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

    Cole a seguinte configuração:

    ```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 você modificar `config.json` enquanto o router está em execução, reinicie-o com `ccr restart` para aplicar as mudanças.
    </Note>
  </Step>

  <Step title="Inicie">
    Inicie o router e, em seguida, o Claude Code:

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

    Ou use o método de ativação:

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

***

## Modelos suportados

| Modelo               | ID na Venice           | Melhor para                               |
| -------------------- | ---------------------- | ----------------------------------------- |
| Claude Opus 4.5      | `claude-opus-4-5`      | Raciocínio complexo, grandes refatorações |
| Claude Sonnet 4.5    | `claude-sonnet-4-5`    | Iteração rápida, codificação do dia a dia |
| Claude Opus 4.6      | `claude-opus-4-6`      | Raciocínio complexo, grandes refatorações |
| Claude Opus 4.6 Fast | `claude-opus-4-6-fast` | Raciocínio complexo com menor latência    |
| Claude Sonnet 4.6    | `claude-sonnet-4-6`    | Iteração rápida, codificação do dia a dia |

<Info>
  O Claude Code é otimizado para modelos Claude. Embora outros modelos disponíveis na Venice (GPT, DeepSeek, Grok, etc.) possam funcionar, não podemos garantir uma experiência equivalente, já que o Claude Code depende de recursos específicos do Claude, como extended thinking. Para outros modelos, considere usar a [API padrão](/api-reference/endpoint/chat/completions) da Venice.
</Info>

***

## Recursos do router

O router oferece vários recursos úteis além do roteamento básico:

<AccordionGroup>
  <Accordion title="Trocar modelos rapidamente">
    Use o comando `/model` dentro do Claude Code para trocar de modelo sem reiniciar:

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

    Útil quando você quer o Opus para tarefas complexas e o Sonnet para iterações rápidas.
  </Accordion>

  <Accordion title="Configuração visual com modo UI">
    Prefere uma GUI? Inicie o editor de configuração baseado em web:

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

    Isso abre uma interface no navegador para editar seu `config.json` sem tocar diretamente no arquivo.
  </Accordion>

  <Accordion title="Cenários do router explicados">
    A seção `Router` da configuração controla qual modelo lida com cada tipo de tarefa:

    | Cenário       | Quando é usado                                         |
    | ------------- | ------------------------------------------------------ |
    | `default`     | Requisições gerais                                     |
    | `think`       | Tarefas pesadas em raciocínio (Plan Mode)              |
    | `background`  | Operações em segundo plano                             |
    | `longContext` | Quando o contexto excede `longContextThreshold` tokens |

    Você pode rotear cenários diferentes para modelos diferentes. Por exemplo, use Sonnet para tarefas em segundo plano para economizar custos.
  </Accordion>

  <Accordion title="Depurando com logs">
    Se algo não estiver funcionando, verifique os logs:

    ```bash theme={null}
    # Logs do servidor (HTTP, chamadas de API)
    ~/.claude-code-router/logs/ccr-*.log

    # Logs da aplicação (decisões de roteamento)
    ~/.claude-code-router/claude-code-router.log
    ```

    Defina `"LOG_LEVEL": "debug"` na sua configuração para saída mais detalhada.
  </Accordion>
</AccordionGroup>

***

## Comportamento de cache

O [prompt caching](/guides/features/prompt-caching) da Venice funciona em conjunto com os marcadores de cache nativos do Claude Code. A Venice detecta automaticamente quando o Claude Code envia campos `cache_control` e ajusta sua estratégia de cache de acordo.

| Cenário                      | TTL do cache | Quem controla        |
| ---------------------------- | ------------ | -------------------- |
| Padrão (recomendado)         | 5 minutos    | Claude Code + Venice |
| Com transformer `cleancache` | 1 hora       | Apenas Venice        |

<AccordionGroup>
  <Accordion title="Quando NÃO usar cleancache (maioria dos usuários)">
    A configuração padrão permite que ambos os sistemas cooperem:

    * O Claude Code envia seus marcadores nativos `cache_control`
    * A Venice adiciona cache ao redor deles com um TTL de 5 minutos
    * Ambos os sistemas compartilham o limite de 4 blocos de cache

    Isso funciona bem para sessões ativas de codificação onde você faz requisições frequentes.
  </Accordion>

  <Accordion title="Quando usar cleancache">
    Adicione `cleancache` ao transformer se você:

    * Estiver recebendo erros do limite de 4 blocos de cache
    * Tiver comportamento estranho de cache
    * Preferir o TTL de 1 hora da Venice para sessões mais longas

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

    Isso remove os marcadores de cache do Claude Code, dando à Venice controle total com um TTL mais longo.
  </Accordion>
</AccordionGroup>

***

## Recursos

<CardGroup cols={2}>
  <Card title="Documentação da API Venice" icon="book" href="/api-reference/api-spec">
    Referência completa da API
  </Card>

  <Card title="claude-code-router" icon="github" href="https://github.com/musistudio/claude-code-router">
    Código-fonte e issues
  </Card>
</CardGroup>
