> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venice.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Xcode

> Adicione a Venice como provedor de chat nas configurações de Intelligence do Xcode para usar modelos privados da Venice no assistente de código do Xcode no macOS.

O [Xcode](https://developer.apple.com/xcode/) inclui um assistente de código que pode responder perguntas sobre o seu projeto, escrever e refatorar código e corrigir erros. Além dos provedores integrados, o Xcode aceita qualquer provedor de chat compatível com a API Chat Completions, então você pode adicionar a Venice nas configurações de Intelligence do Xcode e usar modelos Venice nas conversas do assistente de código.

> **Assistente de código**
>
> Faça perguntas, gere código e refatore com modelos Venice

> **Conexão direta**
>
> O Xcode envia as requisições do seu Mac diretamente para a Venice

> **Escolha de privacidade**
>
> Escolha um modelo com o nível de privacidade de que o seu código precisa

***

## Pré-requisitos

* Uma chave de API Venice em [venice.ai/settings/api](https://venice.ai/settings/api?utm_source=venice-api-documentation)
* [Xcode](https://developer.apple.com/xcode/) 26.3 ou posterior (versões anteriores do Xcode 26 podem perder provedores de chat personalizados quando o Xcode é reiniciado)
* macOS Tahoe 26 ou posterior (o Xcode 27 requer macOS Tahoe 26.6 ou posterior e um Mac com Apple silicon)

***

## Configuração

**1. Obtenha sua chave de API Venice**

Gere uma chave em [venice.ai/settings/api](https://venice.ai/settings/api?utm_source=venice-api-documentation). Uma chave **Inference Only** é suficiente para o Xcode.

Considere criar uma chave dedicada com um **Epoch Consumption Limit**, para limitar quanto o Xcode gasta e revogar a chave sem afetar outros apps. Veja [Gerando uma chave de API](https://docs.venice.ai/pt-BR/guides/getting-started/generating-api-key.md).

**2. Abra as configurações de Intelligence**

No Xcode, escolha **Xcode > Settings** e selecione **Intelligence** na barra lateral.

**3. Adicione a Venice como provedor de chat**

Em **Chat**, clique em **Add a Chat Provider** e selecione **Internet Hosted**. Algumas versões do Xcode 26 chamam o botão de **Add a Model Provider**.

Insira os valores a seguir e clique em **Add**:

| Campo | Valor |
| - | - |
| URL | `https://api.venice.ai/api` |
| API Key | `Bearer your-venice-api-key` |
| API Key Header | `Authorization` |
| Description | `Venice` |

Mantenha a URL exatamente como mostrado, sem `/v1` e sem barra no final. O Xcode acrescenta `/v1/models` e `/v1/chat/completions` a ela, o que resulta nos endpoints padrão da Venice em `https://api.venice.ai/api/v1`.

O Xcode envia o campo **API Key** como o valor inteiro do header `Authorization`. Substitua `your-venice-api-key` pela sua chave e mantenha o prefixo `Bearer `.

**4. Escolha seus modelos**

Selecione o provedor Venice em **Chat**. O Xcode busca a lista de modelos na Venice. Ative os modelos que você deseja usar e marque com estrela os que você usa com mais frequência, para que apareçam no topo do menu de modelos.

A lista inclui todos os modelos de texto Venice, mas o assistente de código só funciona com modelos que suportam tool calling. Confira os [requisitos do modelo](#requisitos-do-modelo) antes de escolher, ou comece com `z-ai-glm-5-3-flash`.

**5. Inicie uma conversa**

Abra um projeto e clique no botão **Coding Assistant** ou pressione **Command-0**. Clique em **New Conversation** e escolha um modelo Venice em **Chat**. O texto de placeholder no campo de mensagem mostra qual modelo a conversa usa.

Envie um prompt curto para testar a conexão:

```txt theme={"system"}
Summarize what this project does in three bullet points.
```

***

## Verifique a configuração

Enviar o prompt de teste é a verificação real. Uma lista completa de modelos no Xcode não prova que sua chave funciona, porque o endpoint `GET /models` da Venice retorna o catálogo com ou sem uma chave válida. A Venice só verifica a chave quando você envia uma mensagem.

Se o prompt falhar, verifique sua chave de API fora do Xcode:

```bash theme={"system"}
curl https://api.venice.ai/api/v1/api_keys/rate_limits \
  -H "Authorization: Bearer $VENICE_API_KEY"
```

Este endpoint exige uma chave válida, então um `401` aqui indica um problema na chave, e não na configuração do Xcode. Se a chave funcionar, compare as configurações do provedor com a seção [Solução de problemas](#solução-de-problemas).

***

## Requisitos do modelo

> [!WARNING]
>
> **O modelo precisa suportar tool calling.** Nas conversas de chat, o Xcode fornece ao modelo ferramentas para pesquisar e editar o seu projeto, então um modelo sem tool calling não consegue lidar com as requisições do assistente de código.

O [catálogo de modelos de texto](https://docs.venice.ai/pt-BR/models/text.md) lista esse recurso como **Function Calling**, e a maioria dos modelos de texto Venice o suporta.

Idealmente, o modelo também deve ter uma janela de contexto de 200K tokens ou mais. O Xcode não tem configuração de janela de contexto para provedores de chat e, com **Project Context** ativado, uma requisição pode incluir muito código do projeto além das definições de ferramentas do Xcode.

Para listar os modelos Venice que atendem aos dois requisitos:

```bash theme={"system"}
curl -s https://api.venice.ai/api/v1/models \
  | jq -r '.data[] | select(.model_spec.capabilities.supportsFunctionCalling and .model_spec.availableContextTokens >= 200000) | .id'
```

***

## Escolhendo modelos

Estes modelos atendem aos dois requisitos:

| Caso de uso | Exemplo de ID de modelo |
| - | - |
| Programação | `deepseek-v4-pro-0813` |
| Menor custo | `z-ai-glm-5-3-flash` |
| Tarefas mais difíceis | `grok-4-7` |
| Capturas de tela e mockups com **Upload files** | `qwen-3-8-27b` |

Ao comparar outros modelos:

* [`GET /models/traits?type=text`](https://docs.venice.ai/pt-BR/api-reference/endpoint/models/traits) retorna as escolhas atuais da Venice, como `default_code` para programação.
* O **Project Context** deixa as requisições grandes, então o preço dos tokens de entrada importa mais do que o normal. Compare os preços no [catálogo de modelos de texto](https://docs.venice.ai/pt-BR/models/text.md).

A Venice aposenta e substitui modelos regularmente. Se um modelo parar de funcionar, confira [Descontinuações](https://docs.venice.ai/pt-BR/overview/deprecations.md) e mude para um modelo atual.

***

## Agentes

Os provedores de chat alimentam apenas as conversas de chat. Os agentes integrados do Xcode, como Claude Agent e Codex, e quaisquer agentes que você adicione pelo Agent Client Protocol (ACP) são configurados separadamente e não enviam requisições por um provedor de chat. Os agentes também têm acesso a mais recursos do Xcode do que o chat, como compilar e testar o seu app.

Para executar um agente com modelos Venice e acesso ao seu projeto do Xcode, configure um agente de terminal para a Venice e conecte-o ao servidor Model Context Protocol (MCP) que o Xcode 26.3 e posteriores fornecem:

**1. Permita agentes externos**

Nas configurações de Intelligence do Xcode, em **Model Context Protocol**, ative **Allow external agents to use Xcode tools**.

**2. Configure o agente com a Venice**

Siga o guia do [Codex CLI](https://docs.venice.ai/pt-BR/guides/integrations/codex-cli.md) ou do [Claude Code](https://docs.venice.ai/pt-BR/guides/integrations/claude-code.md).

**3. Conecte o agente ao Xcode**

Registre o servidor MCP do Xcode no agente:

```bash Codex CLI theme={"system"}
codex mcp add xcode -- xcrun mcpbridge
```

```bash Claude Code theme={"system"}
claude mcp add --transport stdio xcode -- xcrun mcpbridge
```

**4. Envie um prompt ao agente**

Abra primeiro o seu projeto no Xcode e depois envie um prompt ao agente no Terminal. O Xcode avisa quando o agente se conecta.

***

## Privacidade

O Xcode envia as requisições de chat do seu Mac diretamente para a Venice. O **Project Context** vem ativado por padrão nas conversas de chat, então o Xcode inclui código relevante e outros contextos do seu projeto em cada requisição. Para limitar o que o Xcode envia, desative o **Project Context** no campo de mensagem e referencie arquivos e símbolos explicitamente com `@`.

A Venice não armazena nem registra o conteúdo de prompts e respostas no seu proxy. O modelo que você escolhe determina o nível de privacidade em tempo de execução:

* Modelos **Private** usam infraestrutura com retenção zero de dados.
* Modelos **Anonymized** ocultam sua identidade do provedor upstream, mas esse provedor pode processar o seu código.
* Modelos **TEE**, com IDs de modelo `e2ee-`, rodam dentro de um enclave de hardware. O Xcode não consegue criptografar prompts no seu Mac, então esses modelos rodam no modo TEE, e não no modo com criptografia de ponta a ponta, quando você os usa a partir do Xcode.

Confira o rótulo de privacidade de cada modelo no [catálogo de modelos de texto](https://docs.venice.ai/pt-BR/models/text.md) e leia sobre a [privacidade da Venice](https://docs.venice.ai/pt-BR/overview/privacy.md) antes de enviar código proprietário.

***

## Solução de problemas

> **Erro 401 ou de autenticação**
>
> Confirme que o **API Key** é `Bearer ` seguido de uma chave Venice de [venice.ai/settings/api](https://venice.ai/settings/api?utm_source=venice-api-documentation), sem espaços extras. O Xcode carrega a lista de modelos mesmo com uma chave errada, porque essa lista é pública, então os erros de autenticação só aparecem quando você envia uma mensagem. Teste a chave com o comando em [Verifique a configuração](#verifique-a-configuração).

> **O Xcode não consegue carregar os modelos ou rejeita o provedor**
>
> Verifique se a URL é exatamente `https://api.venice.ai/api`. Uma URL terminada em `/v1` faz o Xcode requisitar `/api/v1/v1/models`, e uma barra no final produz `/api//v1/models`. A Venice retorna `404` para ambos. Adicione o provedor novamente com a URL corrigida.

> **Erros de endpoint ao enviar uma mensagem**
>
> Verifique se a conversa usa um modelo que suporta tool calling e, idealmente, tem uma janela de contexto de 200K tokens ou mais. O Xcode envia definições de ferramentas e contexto do projeto em cada requisição: um modelo sem tool calling não consegue lidar com elas, e um projeto grande pode estourar uma janela de contexto menor. Ative um modelo que atenda aos [requisitos do modelo](#requisitos-do-modelo) e inicie uma nova conversa com ele.

> **Erro 402 ou de pagamento necessário**
>
> A Venice retorna `402` em dois casos:
>
> * A requisição chegou à Venice sem um header `Authorization`. A Venice ignora outros headers, como `x-api-key`, e responde com um desafio de pagamento x402. Defina **API Key Header** como `Authorization`.
> * A chave atingiu seu limite de gastos, ou o seu saldo acabou. Veja [Solução de problemas de erros de limite de gastos](https://docs.venice.ai/pt-BR/guides/getting-started/generating-api-key.md#solução-de-problemas-com-erros-de-limite-de-gasto).

> **Modelo não encontrado**
>
> A Venice pode ter aposentado o modelo. Confira [Descontinuações](https://docs.venice.ai/pt-BR/overview/deprecations.md), escolha um modelo atual na lista de modelos do provedor e inicie uma nova conversa.

***

## Recursos

> **[Configurando o Coding Intelligence](https://developer.apple.com/documentation/xcode/setting-up-coding-intelligence)**
>
> Guia da Apple sobre agentes e provedores de chat no Xcode

> **[Escrevendo código com Intelligence](https://developer.apple.com/documentation/xcode/writing-code-with-intelligence-in-xcode)**
>
> Use o assistente de código, o contexto do projeto e o histórico

> **[Modelos de texto Venice](https://docs.venice.ai/pt-BR/models/text.md)**
>
> Navegue pelos IDs de modelo atuais, recursos e níveis de privacidade

> **[Gere uma chave de API](https://docs.venice.ai/pt-BR/guides/getting-started/generating-api-key.md)**
>
> Crie uma chave dedicada com limites de gastos


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.