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

> Añade Venice como proveedor de chat en los ajustes de Intelligence de Xcode para usar modelos privados de Venice en el asistente de programación de Xcode en macOS.

[Xcode](https://developer.apple.com/xcode/) incluye un asistente de programación que puede responder preguntas sobre tu proyecto, escribir y refactorizar código y corregir errores. Además de sus proveedores integrados, Xcode acepta cualquier proveedor de chat compatible con la Chat Completions API, así que puedes añadir Venice en los ajustes de Intelligence de Xcode y usar modelos de Venice en las conversaciones con el asistente de programación.

> **Asistente de programación**
>
> Haz preguntas, genera código y refactoriza con modelos de Venice

> **Conexión directa**
>
> Xcode envía las solicitudes desde tu Mac directamente a Venice

> **Elección de privacidad**
>
> Elige un modelo con el nivel de privacidad que necesita tu código

***

## Requisitos previos

* Una API key de Venice desde [venice.ai/settings/api](https://venice.ai/settings/api?utm_source=venice-api-documentation)
* [Xcode](https://developer.apple.com/xcode/) 26.3 o posterior (las versiones anteriores de Xcode 26 pueden perder los proveedores de chat personalizados cuando Xcode se reinicia)
* macOS Tahoe 26 o posterior (Xcode 27 requiere macOS Tahoe 26.6 o posterior y un Mac con Apple silicon)

***

## Configuración

**1. Obtén tu API key de Venice**

Genera una key desde [venice.ai/settings/api](https://venice.ai/settings/api?utm_source=venice-api-documentation). Una key **Inference Only** es suficiente para Xcode.

Considera crear una key dedicada con un **Epoch Consumption Limit**, para poder limitar lo que gasta Xcode y revocar la key sin afectar a otras apps. Consulta [Generar una API key](https://docs.venice.ai/es/guides/getting-started/generating-api-key.md).

**2. Abre los ajustes de Intelligence**

En Xcode, elige **Xcode > Settings** y selecciona **Intelligence** en la barra lateral.

**3. Añade Venice como proveedor de chat**

En **Chat**, haz clic en **Add a Chat Provider** y selecciona **Internet Hosted**. Algunas versiones de Xcode 26 llaman al botón **Add a Model Provider**.

Introduce los siguientes valores y haz clic en **Add**:

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

Mantén la URL exactamente como se muestra, sin `/v1` y sin barra final. Xcode le añade `/v1/models` y `/v1/chat/completions`, lo que da como resultado los endpoints estándar de Venice bajo `https://api.venice.ai/api/v1`.

Xcode envía el campo **API Key** como el valor completo de la cabecera `Authorization`. Sustituye `your-venice-api-key` por tu key y conserva el prefijo `Bearer `.

**4. Elige tus modelos**

Selecciona el proveedor Venice en **Chat**. Xcode obtiene la lista de modelos de Venice. Activa los modelos que quieras usar y marca con una estrella los que más uses para que aparezcan arriba en el menú de modelos.

La lista incluye todos los modelos de texto de Venice, pero el asistente de programación solo funciona con modelos que admiten tool calling. Revisa los [requisitos del modelo](#requisitos-del-modelo) antes de elegir, o empieza con `z-ai-glm-5-3-flash`.

**5. Inicia una conversación**

Abre un proyecto y haz clic en el botón **Coding Assistant** o pulsa **Command-0**. Haz clic en **New Conversation** y elige un modelo de Venice en **Chat**. El texto de marcador de posición en el campo de mensaje muestra qué modelo usa la conversación.

Envía un prompt corto para probar la conexión:

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

***

## Verificar la configuración

Enviar el prompt de prueba es la comprobación real. Que Xcode muestre la lista completa de modelos no demuestra que tu key funcione, porque el endpoint `GET /models` de Venice devuelve el catálogo con o sin una key válida. Venice solo comprueba la key cuando envías un mensaje.

Si el prompt falla, verifica tu API key fuera de Xcode:

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

Este endpoint requiere una key válida, así que un `401` aquí apunta a la key y no a la configuración de Xcode. Si la key funciona, compara los ajustes del proveedor con la sección [Solución de problemas](#solución-de-problemas).

***

## Requisitos del modelo

> [!WARNING]
>
> **El modelo debe admitir tool calling.** En las conversaciones de chat, Xcode proporciona al modelo herramientas para buscar y editar tu proyecto, por lo que un modelo sin tool calling no puede gestionar las solicitudes del asistente de programación.

El [catálogo de modelos de texto](https://docs.venice.ai/es/models/text.md) indica esta capacidad como **Function Calling**, y la mayoría de los modelos de texto de Venice la admiten.

Lo ideal es que el modelo tenga también una ventana de contexto de 200K tokens o más. Xcode no tiene ningún ajuste de ventana de contexto para los proveedores de chat y, con **Project Context** activado, una solicitud puede incluir mucho código del proyecto además de las definiciones de herramientas de Xcode.

Para listar los modelos de Venice que cumplen ambos 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'
```

***

## Elegir modelos

Estos modelos cumplen ambos requisitos:

| Caso de uso | ID de modelo de ejemplo |
| - | - |
| Programación | `deepseek-v4-pro-0813` |
| Menor coste | `z-ai-glm-5-3-flash` |
| Tareas más difíciles | `grok-4-7` |
| Capturas de pantalla y maquetas con **Upload files** | `qwen-3-8-27b` |

Al comparar otros modelos:

* [`GET /models/traits?type=text`](https://docs.venice.ai/es/api-reference/endpoint/models/traits) devuelve las recomendaciones actuales de Venice, como `default_code` para programación.
* **Project Context** hace que las solicitudes sean grandes, así que el precio de los tokens de entrada importa más de lo habitual. Compara precios en el [catálogo de modelos de texto](https://docs.venice.ai/es/models/text.md).

Venice retira y sustituye modelos con regularidad. Si un modelo deja de funcionar, consulta [Deprecations](https://docs.venice.ai/es/overview/deprecations.md) y cambia a uno actual.

***

## Agentes

Los proveedores de chat solo dan servicio a las conversaciones de chat. Los agentes integrados de Xcode, como Claude Agent y Codex, y cualquier agente que añadas mediante el Agent Client Protocol (ACP) se configuran por separado y no envían solicitudes a través de un proveedor de chat. Además, los agentes tienen acceso a más capacidades de Xcode que el chat, como compilar y probar tu app.

Para ejecutar un agente con modelos de Venice y acceso a tu proyecto de Xcode, configura un agente de terminal para Venice y conéctalo al servidor de Model Context Protocol (MCP) que proporcionan Xcode 26.3 y versiones posteriores:

**1. Permite agentes externos**

En los ajustes de Intelligence de Xcode, en **Model Context Protocol**, activa **Allow external agents to use Xcode tools**.

**2. Configura el agente con Venice**

Sigue la guía de [Codex CLI](https://docs.venice.ai/es/guides/integrations/codex-cli.md) o de [Claude Code](https://docs.venice.ai/es/guides/integrations/claude-code.md).

**3. Conecta el agente a Xcode**

Registra el servidor MCP de Xcode en el 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. Envía un prompt al agente**

Abre primero tu proyecto en Xcode y luego envía el prompt al agente en Terminal. Xcode te avisa cuando el agente se conecta.

***

## Privacidad

Xcode envía las solicitudes de chat desde tu Mac directamente a Venice. **Project Context** está activado por defecto en las conversaciones de chat, así que Xcode incluye en cada solicitud el código relevante y otro contexto de tu proyecto. Para limitar lo que envía Xcode, desactiva **Project Context** en el campo de mensaje y haz referencia a archivos y símbolos explícitamente con `@`.

Venice no almacena ni registra el contenido de los prompts y las respuestas en su proxy. El modelo que elijas determina el nivel de privacidad en tiempo de ejecución:

* Los modelos **Private** usan infraestructura sin retención de datos.
* Los modelos **Anonymized** ocultan tu identidad al proveedor upstream, pero ese proveedor puede procesar tu código.
* Los modelos **TEE**, con IDs de modelo `e2ee-`, se ejecutan dentro de un enclave de hardware. Xcode no puede cifrar los prompts en tu Mac, así que estos modelos se ejecutan en modo TEE y no en modo de cifrado de extremo a extremo cuando los usas desde Xcode.

Revisa la etiqueta de privacidad de cada modelo en el [catálogo de modelos de texto](https://docs.venice.ai/es/models/text.md) y lee [Privacidad en Venice](https://docs.venice.ai/es/overview/privacy.md) antes de enviar código propietario.

***

## Solución de problemas

> **Error 401 o de autenticación**
>
> Confirma que **API Key** es `Bearer ` seguido de una key de Venice obtenida en [venice.ai/settings/api](https://venice.ai/settings/api?utm_source=venice-api-documentation), sin espacios adicionales. Xcode carga la lista de modelos incluso con una key incorrecta, porque esa lista es pública, así que los errores de autenticación solo aparecen cuando envías un mensaje. Prueba la key con el comando de [Verificar la configuración](#verificar-la-configuración).

> **Xcode no puede cargar los modelos o rechaza el proveedor**
>
> Comprueba que la URL es exactamente `https://api.venice.ai/api`. Una URL que termina en `/v1` hace que Xcode solicite `/api/v1/v1/models`, y una barra final produce `/api//v1/models`. Venice devuelve `404` en ambos casos. Vuelve a añadir el proveedor con la URL corregida.

> **Errores del endpoint al enviar un mensaje**
>
> Comprueba que la conversación usa un modelo que admite tool calling y, idealmente, tiene una ventana de contexto de 200K tokens o más. Xcode envía definiciones de herramientas y contexto del proyecto con cada solicitud: un modelo sin tool calling no puede gestionarlas, y un proyecto grande puede desbordar una ventana de contexto más pequeña. Activa un modelo que cumpla los [requisitos del modelo](#requisitos-del-modelo) y luego inicia una nueva conversación con él.

> **Error 402 o de pago requerido**
>
> Venice devuelve `402` en dos casos:
>
> * La solicitud llegó a Venice sin una cabecera `Authorization`. Venice ignora otras cabeceras, como `x-api-key`, y responde con un desafío de pago x402. Establece **API Key Header** en `Authorization`.
> * La key alcanzó su límite de gasto o se agotó tu saldo. Consulta [Solución de errores de límite de gasto](https://docs.venice.ai/es/guides/getting-started/generating-api-key.md#solución-de-errores-de-límite-de-gasto).

> **Modelo no encontrado**
>
> Es posible que Venice haya retirado el modelo. Consulta [Deprecations](https://docs.venice.ai/es/overview/deprecations.md), elige un modelo actual de la lista de modelos del proveedor e inicia una nueva conversación.

***

## Recursos

> **[Setting Up Coding Intelligence](https://developer.apple.com/documentation/xcode/setting-up-coding-intelligence)**
>
> Guía de Apple sobre agentes y proveedores de chat en Xcode

> **[Writing Code with Intelligence](https://developer.apple.com/documentation/xcode/writing-code-with-intelligence-in-xcode)**
>
> Usa el asistente de programación, el contexto del proyecto y el historial

> **[Modelos de texto de Venice](https://docs.venice.ai/es/models/text.md)**
>
> Explora los IDs de modelo actuales, sus capacidades y niveles de privacidad

> **[Generar una API key](https://docs.venice.ai/es/guides/getting-started/generating-api-key.md)**
>
> Crea una key dedicada con límites de gasto


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