Archivo de configuración de OpenCode

OpenCode utiliza el formato JSON para la configuración.

Podemos ver primero el archivo de configuración global~/.config/opencode/opencode.json:

touch ~/.config/opencode/opencode.json

que contiene el proveedor de modelos e información de configuración:

{
  // JSON Schema(用于编辑器校验和自动补全)
  "$schema": "https://opencode.ai/config.json",

  "provider": {
    // 自定义 Provider 名称(使用时:deepseek/xxx)
    "deepseek": {

      // 使用 OpenAI 兼容适配器(适用于 DeepSeek 这类兼容接口)
      "npm": "@ai-sdk/openai-compatible",

      "options": {
        // API 基础地址(必须是 OpenAI 兼容格式)
        "baseURL": "https://api.deepseek.com/v1",

        // API Key
        "apiKey": "sk-xxxx",

        // 是否强制设置缓存 key(提升缓存命中率,降低成本)
        "setCacheKey": true
      },

      "models": {
        // 本地模型别名(CLI/TUI 中使用:deepseek/Deepseek-v4)
        "Deepseek-v4": {
          // 实际调用的模型名称(API 层)
          "name": "deepseek-v4-pro"
        }
      }
    }
  }
}

Un ejemplo de configuración mínima viable

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "autoupdate": true,
  "theme": "default"
}

Elementos de configuración global comunes:

Elemento de configuración Tipo Descripción
model string Modelo principal predeterminado
small_model string Modelo de tareas ligeras (como generación de títulos)
autoupdate boolean / "notify" Política de actualización automática
theme string Tema de la interfaz de usuario
provider object Configuración del proveedor de modelos

Ejemplo de proveedor:

{
  "provider": {
    "anthropic": {
      "options": {
        "timeout": 600000,
        "setCacheKey": true
      }
    }
  }
}

Comprender el "mecanismo de fusión" de la configuración

La configuración de OpenCode no es de sobrescritura, sino defusión por capas。

Orden de carga (de menor a mayor)
Orden Fuente Descripción
1 Remoto.well-known/opencode Configuración predeterminada de la organización
2 Configuración global ~/.config/opencode/opencode.json
3 Ruta personalizada OPENCODE_CONFIG
4 Configuración del proyecto En el proyectoopencode.json
5 .opencode/Directorio Capacidad de extensión
6 Configuración en línea OPENCODE_CONFIG_CONTENT

Reglas de fusión

  • Campos sin conflicto: todos se conservan
  • Campos en conflicto: el último sobrescribe al primero

Ejemplo

Configuración global:

{
  "autoupdate": true
}

Configuración del proyecto:

{
  "model": "anthropic/claude-sonnet-4-5"
}

Resultado final:

{
  "autoupdate": true,
  "model": "anthropic/claude-sonnet-4-5"
}

Configuración del proyecto

Crear en el directorio raíz del proyecto:

opencode.json

Función:

  • Definir el comportamiento de IA específico del proyecto
  • Se puede enviar a Git
  • Sobrescribe la configuración global

Ejemplo: Configuración a nivel de proyecto
{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "tools": {
    "write": true,
    "bash": true
  }
}

Explicación detallada de los módulos de configuración principales

{
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5"
}

Modelo y Proveedor

{
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5"
}
Campo Descripción
model Modelo de tarea principal
small_model Modelo de tareas de bajo costo

Control de herramientas

{
  "tools": {
    "write": false,
    "bash": false
  }
}
Herramienta Función
write Escribir archivo
bash Ejecutar comando

Esto esla primera capa de control de seguridad。

Control de permisos

{
  "permission": {
    "edit": "ask",
    "bash": "ask"
  }
}
Valor Significado
allow Ejecución automática
ask Confirmar cada vez
deny Prohibido

Agente (capacidad principal)

{
  "agent": {
    "code-reviewer": {
      "description": "代码审查",
      "model": "anthropic/claude-sonnet-4-5",
      "prompt": "You are a code reviewer",
      "tools": {
        "write": false
      }
    }
  }
}

Esencia:Definir el rol + el alcance de capacidades para la IA

Comando (Prompt automatizado)

{
  "command": {
    "test": {
      "template": "Run tests and fix failures",
      "description": "运行测试"
    }
  }
}

Esencia:Sistema de plantillas de prompt

Configuración de TUI

{
  "tui": {
    "scroll_speed": 3,
    "scroll_acceleration": {
      "enabled": true
    },
    "diff_style": "auto"
  }
}

Configuración del servidor (API / Web)

{
  "server": {
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true
  }
}

Compresión de contexto (optimización de tokens)

{
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 10000
  }
}

Sistema de complementos

{
  "plugin": [
    "opencode-helicone-session",
    "@my-org/custom-plugin"
  ]
}

MCP (ecosistema de extensiones)

{
  "mcp": {}
}

Se utiliza para conectar herramientas externas (como Jira, bases de datos, etc.)

Sistema de instrucciones (reglas de IA)

{
  "instructions": [
    "CONTRIBUTING.md",
    "docs/*.md"
  ]
}

Control del proveedor

{
  "enabled_providers": ["anthropic"],
  "disabled_providers": ["openai"]
}

Prioridad:

disabled > enabled

Sistema de variables

Variables de entorno:

{
  "model": "{env:OPENCODE_MODEL}"
}

Referencia de archivos

{
  "apiKey": "{file:~/.secrets/key}"
}

Mecanismo de extensión de directorios

OpenCode no es solo configuración JSON, también admite extensión de directorios:

.opencode/
├── agents/
├── commands/
├── plugins/
├── tools/
├── themes/

Función:

  • Definir agente con Markdown
  • Comandos a nivel de archivo
  • Extensión de complementos

Configuración recomendada para comenzar

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5",
  "autoupdate": "notify",
  "tools": {
    "write": true,
    "bash": true
  },
  "permission": {
    "bash": "ask"
  },
  "compaction": {
    "auto": true,
    "prune": true
  }
}

Resumen (perspectiva de arquitectura)

La configuración de OpenCode se puede entender como una estructura de cuatro capas:

配置层(多级 merge)
    ↓
能力层(agent / tools / mcp)
    ↓
执行层(model / provider)
    ↓
交互层(tui / server / web)

En esencia, no es un simple archivo de configuración, sino un:

Centro de configuración de un sistema operativo de Agente de IA programable

Otras extensiones