Español
Documentación
Configuración

Config

Usando la configuración JSON de OpenCode.

Puedes configurar OpenCode usando un archivo de configuración JSON.


Formato

OpenCode admite los formatos JSON y JSONC (JSON con comentarios).

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "autoupdate": true,
  "server": {
    "port": 4096,
  },
}

Ubicaciones

Puedes colocar tu configuración en distintas ubicaciones y tienen un orden de precedencia diferente.

Nota: Los archivos de configuración se fusionan entre sí, no se reemplazan.

Los archivos de configuración se fusionan entre sí, no se reemplazan. La configuración de las siguientes ubicaciones se combina. Las configuraciones posteriores anulan a las anteriores solo en las claves en conflicto. La configuración no conflictiva de todas las fuentes se conserva.

Por ejemplo, si tu configuración global establece autoupdate: true y tu configuración del proyecto establece model: "anthropic/claude-sonnet-4-5", la configuración final incluirá ambos ajustes.


Orden de precedencia

Las fuentes de configuración se cargan en este orden (las fuentes posteriores anulan a las anteriores):

  1. Configuración remota (desde .well-known/opencode ) - valores predeterminados de la organización
  2. Configuración global ( ~/.config/opencode/opencode.json ) - preferencias del usuario
  3. Configuración personalizada (variable de entorno OPENCODE_CONFIG) - anulaciones personalizadas
  4. Configuración del proyecto ( opencode.json en el proyecto) - ajustes específicos del proyecto
  5. Directorios .opencode - agentes, comandos, plugins
  6. Configuración en línea (variable de entorno OPENCODE_CONFIG_CONTENT) - anulaciones en tiempo de ejecución
  7. Archivos de configuración administrados ( /Library/Application Support/opencode/ en macOS) - controlados por el administrador
  8. Preferencias administradas de macOS ( .mobileconfig vía MDM) - máxima prioridad, no anulable por el usuario

Esto significa que las configuraciones del proyecto pueden anular los valores predeterminados globales, y las configuraciones globales pueden anular los valores predeterminados remotos de la organización. Los ajustes administrados anulan todo.

Nota: Los directorios .opencode y ~/.config/opencode usan nombres en plural para los subdirectorios: agents/, commands/, modes/, plugins/, skills/, tools/ y themes/. Los nombres en singular (p. ej., agent/) también son compatibles por retrocompatibilidad.


Remota

Las organizaciones pueden proporcionar una configuración predeterminada mediante el endpoint .well-known/opencode. Esto se obtiene automáticamente cuando te autenticas con un proveedor que lo admite.

La configuración remota se carga primero, sirviendo como capa base. Todas las demás fuentes de configuración (global, proyecto) pueden anular estos valores predeterminados.

Por ejemplo, si tu organización proporciona servidores MCP que están deshabilitados de forma predeterminada:

Configuración remota desde .well-known/opencode
{
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": false
    }
  }
}

Puedes habilitar servidores específicos en tu configuración local:

opencode.json
{
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": true
    }
  }
}

Global

Coloca tu configuración global de OpenCode en ~/.config/opencode/opencode.json. Usa la configuración global para las preferencias de servidor/runtime a nivel de usuario, como proveedores, modelos y permisos.

Para los ajustes específicos de la TUI, usa ~/.config/opencode/tui.json.

La configuración global anula los valores predeterminados remotos de la organización.


Por proyecto

Agrega opencode.json en la raíz de tu proyecto. La configuración del proyecto tiene la mayor precedencia entre los archivos de configuración estándar: anula tanto las configuraciones globales como las remotas.

Para los ajustes de TUI específicos del proyecto, agrega tui.json junto a él.

Consejo: Coloca la configuración específica del proyecto en la raíz de tu proyecto.

Cuando OpenCode se inicia, busca un archivo de configuración en el directorio actual o recorre hacia arriba hasta el directorio Git más cercano.

Esto también es seguro de incluir en Git y usa el mismo esquema que la configuración global.


Ruta personalizada

Especifica una ruta de archivo de configuración personalizada usando la variable de entorno OPENCODE_CONFIG.

export OPENCODE_CONFIG=/path/to/my/custom-config.json
opencode run "Hello world"

La configuración personalizada se carga entre las configuraciones global y del proyecto en el orden de precedencia.


Directorio personalizado

Especifica un directorio de configuración personalizado usando la variable de entorno OPENCODE_CONFIG_DIR. Este directorio se examinará en busca de agentes, comandos, modos y plugins igual que el directorio estándar .opencode, y debe seguir la misma estructura.

export OPENCODE_CONFIG_DIR=/path/to/my/config-directory
opencode run "Hello world"

El directorio personalizado se carga después de la configuración global y los directorios .opencode, por lo que puede anular sus ajustes.


Ajustes administrados

Las organizaciones pueden imponer una configuración que los usuarios no pueden anular. Los ajustes administrados se cargan en el nivel de máxima prioridad.

Basados en archivos

Coloca un archivo opencode.json u opencode.jsonc en el directorio de configuración administrada del sistema:

PlataformaRuta
macOS/Library/Application Support/opencode/
Linux/etc/opencode/
Windows%ProgramData%\opencode

Estos directorios requieren acceso de administrador/root para escribir, por lo que los usuarios no pueden modificarlos.

Preferencias administradas de macOS

En macOS, OpenCode lee las preferencias administradas del dominio de preferencias ai.opencode.managed. Despliega un .mobileconfig vía MDM (Jamf, Kandji, FleetDM) y los ajustes se aplican automáticamente.

OpenCode comprueba estas rutas:

  1. /Library/Managed Preferences/<user>/ai.opencode.managed.plist
  2. /Library/Managed Preferences/ai.opencode.managed.plist

Las claves del plist se mapean directamente a los campos de opencode.json. Las claves de metadatos de MDM (PayloadUUID, PayloadType, etc.) se eliminan automáticamente.

Crear un .mobileconfig

Usa el PayloadType ai.opencode.managed. Las claves de configuración de OpenCode van directamente en el dict del payload:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadContent</key>
  <array>
    <dict>
      <key>PayloadType</key>
      <string>ai.opencode.managed</string>
      <key>PayloadIdentifier</key>
      <string>com.example.opencode.config</string>
      <key>PayloadUUID</key>
      <string>GENERATE-YOUR-OWN-UUID</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
      <key>share</key>
      <string>disabled</string>
      <key>server</key>
      <dict>
        <key>hostname</key>
        <string>127.0.0.1</string>
      </dict>
      <key>permission</key>
      <dict>
        <key>*</key>
        <string>ask</string>
        <key>bash</key>
        <dict>
          <key>*</key>
          <string>ask</string>
          <key>rm -rf *</key>
          <string>deny</string>
        </dict>
      </dict>
    </dict>
  </array>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadIdentifier</key>
  <string>com.example.opencode</string>
  <key>PayloadUUID</key>
  <string>GENERATE-YOUR-OWN-UUID</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>

Genera UUID únicos con uuidgen. Personaliza los ajustes para que coincidan con los requisitos de tu organización.

Desplegar vía MDM

  • Jamf Pro: Computers > Configuration Profiles > Upload > delimita el alcance a los dispositivos objetivo o grupos inteligentes
  • FleetDM: agrega el .mobileconfig a tu repositorio gitops bajo mdm.macos_settings.custom_settings y ejecuta fleetctl apply

Verificar en un dispositivo

Haz doble clic en el .mobileconfig para instalarlo localmente y probarlo (aparece en System Settings > Privacy & Security > Profiles), luego ejecuta:

opencode debug config

Todas las claves de preferencias administradas aparecen en la configuración resuelta y no pueden ser anuladas por la configuración del usuario o del proyecto.


Esquema

El esquema de configuración de servidor/runtime se define en opencode.ai/config.json (opens in a new tab).

La configuración de la TUI usa opencode.ai/tui.json (opens in a new tab).

Tu editor debería poder validar y autocompletar según el esquema.


TUI

Usa un archivo tui.json (o tui.jsonc) dedicado para los ajustes específicos de la TUI.

tui.json
{
  "$schema": "https://opencode.ai/tui.json",
  "scroll_speed": 3,
  "scroll_acceleration": {
    "enabled": true
  },
  "diff_style": "auto",
  "mouse": true,
  "attention": {
    "enabled": true,
    "notifications": true,
    "sound": true,
    "volume": 0.4
  }
}

Usa OPENCODE_TUI_CONFIG para apuntar a un archivo de configuración de TUI personalizado.

Establece attention.enabled para activar las notificaciones de escritorio y los sonidos de la TUI. Consulta atención de la TUI.

Las claves heredadas theme, keybinds y tui en opencode.json están obsoletas y se migran automáticamente cuando es posible.


Servidor

Puedes configurar los ajustes del servidor para los comandos opencode serve y opencode web mediante la opción server.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "server": {
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true,
    "mdnsDomain": "myproject.local",
    "cors": ["http://localhost:5173"]
  }
}

Opciones disponibles:

  • port - Puerto en el que escuchar.
  • hostname - Hostname en el que escuchar. Cuando mdns está habilitado y no se establece ningún hostname, su valor predeterminado es 0.0.0.0 .
  • mdns - Habilita el descubrimiento de servicios mDNS. Esto permite que otros dispositivos de la red descubran tu servidor de OpenCode.
  • mdnsDomain - Nombre de dominio personalizado para el servicio mDNS. Su valor predeterminado es opencode.local . Útil para ejecutar múltiples instancias en la misma red.
  • cors - Orígenes adicionales que se permiten para CORS al usar el servidor HTTP desde un cliente basado en navegador. Los valores deben ser orígenes completos (esquema + host + puerto opcional), p. ej. https://app.example.com .

Más información sobre el servidor aquí.


Shell

Puedes configurar la shell usada para el terminal interactivo mediante la opción shell. Las shells compatibles también se usan para las llamadas a herramientas del agente.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "shell": "pwsh"
}

Si no se especifica, OpenCode descubrirá y usará automáticamente un valor predeterminado sensato según tu sistema operativo (p. ej. pwsh o cmd.exe en Windows, /bin/zsh o /bin/bash en macOS/Linux). Puedes proporcionar una ruta absoluta o un nombre corto.


Herramientas

Puedes administrar las herramientas que un LLM puede usar mediante la opción tools.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "tools": {
    "write": false,
    "bash": false
  }
}

Más información sobre las herramientas aquí.


Modelos

Puedes configurar los proveedores y modelos que quieras usar en tu configuración de OpenCode mediante las opciones provider, model y small_model.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {},
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5"
}

La opción small_model configura un modelo separado para tareas ligeras como la generación de títulos. De forma predeterminada, OpenCode intenta usar un modelo más económico si hay uno disponible de tu proveedor; de lo contrario, recurre a tu modelo principal.

Las opciones del proveedor pueden incluir timeout, chunkTimeout y setCacheKey:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "timeout": 600000,
        "chunkTimeout": 30000,
        "setCacheKey": true
      }
    }
  }
}
  • timeout - Tiempo de espera de la solicitud en milisegundos (predeterminado: 300000). Establécelo en false para deshabilitarlo.
  • chunkTimeout - Tiempo de espera en milisegundos entre los fragmentos de respuesta en streaming. Si no llega ningún fragmento a tiempo, la solicitud se aborta.
  • setCacheKey - Garantiza que siempre se establezca una clave de caché para el proveedor designado.

También puedes configurar modelos locales. Más información.


Adjuntos de imagen

OpenCode normaliza los adjuntos de imagen antes de enviarlos al modelo. De forma predeterminada, las imágenes se redimensionan cuando superan los 2000x2000 píxeles o los 5242880 bytes en base64.

Configura los límites de adjuntos de imagen con la opción attachment.image:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "attachment": {
    "image": {
      "auto_resize": true,
      "max_width": 2000,
      "max_height": 2000,
      "max_base64_bytes": 5242880
    }
  }
}
  • auto_resize - Redimensiona las imágenes que superan los límites configurados antes de las solicitudes al proveedor. Establécelo en false para rechazar las imágenes de gran tamaño en su lugar.
  • max_width - Ancho máximo de la imagen en píxeles antes de redimensionar o rechazar.
  • max_height - Alto máximo de la imagen en píxeles antes de redimensionar o rechazar.
  • max_base64_bytes - Tamaño máximo del payload de imagen codificado. Este es el tamaño del payload en base64, no el tamaño del archivo original.

Si una imagen aún no cabe después de redimensionarla, OpenCode omite las imágenes de resultado de herramienta de gran tamaño o falla con un error de tamaño de imagen para las imágenes de gran tamaño proporcionadas por el usuario.


Opciones específicas del proveedor

Algunos proveedores admiten opciones de configuración adicionales más allá de los ajustes genéricos timeout y apiKey.

Amazon Bedrock

Amazon Bedrock admite configuración específica de AWS:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "amazon-bedrock": {
      "options": {
        "region": "us-east-1",
        "profile": "my-aws-profile",
        "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
      }
    }
  }
}
  • region - Región de AWS para Bedrock (predeterminado: la variable de entorno AWS_REGION o us-east-1 )
  • profile - Perfil de AWS con nombre de ~/.aws/credentials (predeterminado: la variable de entorno AWS_PROFILE )
  • endpoint - URL de endpoint personalizada para endpoints de VPC. Es un alias de la opción genérica baseURL usando terminología específica de AWS. Si se especifican ambos, endpoint tiene prioridad.

Nota: Los tokens de portador (AWS_BEARER_TOKEN_BEDROCK o /connect) tienen prioridad sobre la autenticación basada en perfil. Consulta precedencia de autenticación para más detalles.

Más información sobre la configuración de Amazon Bedrock.


Temas

Establece el tema de tu interfaz en tui.json.

tui.json
{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "tokyonight"
}

Más información aquí.


Agentes

Puedes configurar agentes especializados para tareas específicas mediante la opción agent.

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "agent": {
    "code-reviewer": {
      "description": "Reviews code for best practices and potential issues",
      "model": "anthropic/claude-sonnet-4-5",
      "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
      "tools": {
        // Disable file modification tools for review-only agent
        "write": false,
        "edit": false,
      },
    },
  },
}

También puedes definir agentes usando archivos markdown en ~/.config/opencode/agents/ o .opencode/agents/. Más información aquí.


Agente predeterminado

Puedes establecer el agente predeterminado mediante la opción default_agent. Esto determina qué agente se usa cuando no se especifica ninguno explícitamente.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "default_agent": "plan"
}

El agente predeterminado debe ser un agente primario (no un subagente). Puede ser un agente integrado como "build" o "plan", o un agente personalizado que hayas definido. Si el agente especificado no existe o es un subagente, OpenCode recurrirá a "build" con una advertencia.

Este ajuste se aplica en todas las interfaces: TUI, CLI (opencode run), aplicación de escritorio y GitHub Action.


Compartir

Puedes configurar la función compartir mediante la opción share.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "share": "manual"
}

Esto recibe:

  • "manual" - Permite compartir manualmente mediante comandos (predeterminado)
  • "auto" - Comparte automáticamente las nuevas conversaciones
  • "disabled" - Deshabilita completamente la función de compartir

De forma predeterminada, la función de compartir está en modo manual, donde necesitas compartir las conversaciones explícitamente usando el comando /share.


Comandos

Puedes configurar comandos personalizados para tareas repetitivas mediante la opción command.

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "command": {
    "test": {
      "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
      "description": "Run tests with coverage",
      "agent": "build",
      "model": "anthropic/claude-haiku-4-5",
    },
    "component": {
      "template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
      "description": "Create a new component",
    },
  },
}

También puedes definir comandos usando archivos markdown en ~/.config/opencode/commands/ o .opencode/commands/. Más información aquí.


Atajos de teclado

Personaliza los atajos de teclado de la TUI en tui.json con keybinds.

tui.json
{
  "$schema": "https://opencode.ai/tui.json",
  "keybinds": {
    "command_list": "ctrl+p"
  }
}

keybinds se fusiona con los valores predeterminados integrados, por lo que solo necesitas configurar los atajos que quieras cambiar.

Más información aquí.


Snapshot

OpenCode usa snapshots para rastrear los cambios en archivos durante las operaciones del agente, lo que te permite deshacer y revertir cambios dentro de una sesión. Los snapshots están habilitados de forma predeterminada.

Para repositorios grandes o proyectos con muchos submódulos, el sistema de snapshots puede causar una indexación lenta y un uso de disco significativo, ya que rastrea todos los cambios usando un repositorio git interno. Puedes deshabilitar los snapshots usando la opción snapshot.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "snapshot": false
}

Ten en cuenta que deshabilitar los snapshots significa que los cambios realizados por el agente no se pueden revertir desde la interfaz.


Autoupdate

OpenCode descargará automáticamente cualquier nueva actualización al iniciarse. Puedes deshabilitar esto con la opción autoupdate.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "autoupdate": false
}

Si no quieres actualizaciones pero quieres recibir una notificación cuando haya una nueva versión disponible, establece autoupdate en "notify". Ten en cuenta que esto solo funciona si no se instaló usando un gestor de paquetes como Homebrew.


Formateadores

Puedes habilitar y configurar formateadores de código mediante la opción formatter. Omítela para mantener los formateadores deshabilitados.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": true
}

Usa un objeto para mantener los integrados habilitados mientras configuras anulaciones o formateadores personalizados.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": {
    "prettier": {
      "disabled": true
    },
    "custom-prettier": {
      "command": ["npx", "prettier", "--write", "$FILE"],
      "environment": {
        "NODE_ENV": "development"
      },
      "extensions": [".js", ".ts", ".jsx", ".tsx"]
    }
  }
}

Más información sobre los formateadores aquí.


Servidores LSP

Puedes habilitar y configurar servidores LSP mediante la opción lsp. Omítela para mantener LSP deshabilitado.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "lsp": true
}

Usa un objeto para mantener los integrados habilitados mientras configuras anulaciones o servidores LSP personalizados.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "lsp": {
    "typescript": {
      "disabled": true
    }
  }
}

Más información sobre los servidores LSP aquí.


Permisos

De forma predeterminada, opencode permite todas las operaciones sin requerir aprobación explícita. Puedes cambiar esto usando la opción permission.

Por ejemplo, para asegurarte de que las herramientas edit y bash requieran la aprobación del usuario:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "ask",
    "bash": "ask"
  }
}

Más información sobre los permisos aquí.


Compaction

Puedes controlar el comportamiento de la compactación de contexto mediante la opción compaction.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 10000
  }
}
  • auto - Compacta automáticamente la sesión cuando el contexto está lleno (predeterminado: true ).
  • prune - Elimina las salidas de herramientas antiguas para ahorrar tokens (predeterminado: true ).
  • reserved - Búfer de tokens para la compactación. Deja suficiente ventana para evitar el desbordamiento durante la compactación.

Watcher

Puedes configurar los patrones de ignorado del observador de archivos mediante la opción watcher.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "watcher": {
    "ignore": ["node_modules/**", "dist/**", ".git/**"]
  }
}

Los patrones siguen la sintaxis glob. Úsalo para excluir directorios ruidosos del seguimiento de archivos.


Servidores MCP

Puedes configurar los servidores MCP que quieras usar mediante la opción mcp.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {}
}

Más información aquí.


Plugins

Los plugins extienden OpenCode con herramientas, hooks e integraciones personalizadas.

Coloca los archivos de plugins en .opencode/plugins/ o ~/.config/opencode/plugins/. También puedes cargar plugins desde npm mediante la opción plugin.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["opencode-helicone-session", "@my-org/custom-plugin"]
}

Más información aquí.


Instrucciones

Puedes configurar las instrucciones para el modelo que estás usando mediante la opción instructions.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}

Esto recibe un array de rutas y patrones glob a archivos de instrucciones. Más información sobre las reglas aquí.


Proveedores deshabilitados

Puedes deshabilitar los proveedores que se cargan automáticamente mediante la opción disabled_providers. Esto es útil cuando quieres evitar que ciertos proveedores se carguen incluso si sus credenciales están disponibles.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "disabled_providers": ["openai", "gemini"]
}

Nota: disabled_providers tiene prioridad sobre enabled_providers.

La opción disabled_providers acepta un array de IDs de proveedor. Cuando un proveedor está deshabilitado:

  • No se cargará incluso si hay variables de entorno establecidas.
  • No se cargará incluso si hay claves de API configuradas mediante el comando /connect.
  • Los modelos del proveedor no aparecerán en la lista de selección de modelos.

Proveedores habilitados

Puedes especificar una lista de permitidos de proveedores mediante la opción enabled_providers. Cuando se establece, solo se habilitarán los proveedores especificados y todos los demás se ignorarán.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "enabled_providers": ["anthropic", "openai"]
}

Esto es útil cuando quieres restringir OpenCode para que use solo proveedores específicos en lugar de deshabilitarlos uno por uno.

Nota: disabled_providers tiene prioridad sobre enabled_providers.

Si un proveedor aparece tanto en enabled_providers como en disabled_providers, disabled_providers tiene prioridad por retrocompatibilidad.


Experimental

La clave experimental contiene opciones que están en desarrollo activo.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "experimental": {}
}

Precaución: Las opciones experimentales no son estables. Pueden cambiar o eliminarse sin previo aviso.


Variables

Puedes usar la sustitución de variables en tus archivos de configuración para hacer referencia a variables de entorno y al contenido de archivos.


Variables de entorno

Usa {env:VARIABLE_NAME} para sustituir variables de entorno:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "{env:OPENCODE_MODEL}",
  "provider": {
    "anthropic": {
      "models": {},
      "options": {
        "apiKey": "{env:ANTHROPIC_API_KEY}"
      }
    }
  }
}

Si la variable de entorno no está establecida, se reemplazará por una cadena vacía.


Archivos

Usa {file:path/to/file} para sustituir el contenido de un archivo:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["./custom-instructions.md"],
  "provider": {
    "openai": {
      "options": {
        "apiKey": "{file:~/.secrets/openai-key}"
      }
    }
  }
}

Las rutas de archivo pueden ser:

  • Relativas al directorio del archivo de configuración
  • O rutas absolutas que comienzan con / o ~

Estas son útiles para:

  • Mantener datos sensibles como claves de API en archivos separados.
  • Incluir archivos de instrucciones grandes sin saturar tu configuración.
  • Compartir fragmentos de configuración comunes entre múltiples archivos de configuración.