Saltearse al contenido

Modos

Modos diferentes para distintos casos de uso.

Los modos en OpenCode permiten personalizar el comportamiento, las herramientas y los prompts para distintos flujos de trabajo.

Vienen dos modos integrados: build y plan. Puedes personalizarlos o definir los tuyos en la configuración.

Puedes cambiar de modo durante una sesión o fijarlo en el archivo de configuración.


Modos integrados

OpenCode incluye dos modos básicos.


Build

build es el modo por defecto con todas las herramientas habilitadas. Es el modo estándar para desarrollo cuando necesitas acceso completo a operaciones sobre archivos y comandos del sistema.


Plan

plan es un modo restringido pensado para planificación y análisis. En este modo, por defecto se deshabilitan las herramientas siguientes:

  • write – no se pueden crear archivos nuevos
  • edit – no se pueden modificar archivos existentes
  • patch – no se pueden aplicar parches
  • bash – no se pueden ejecutar comandos de shell

Es útil cuando quieres que el modelo analice código, sugiera cambios o genere planes sin tocar tu repositorio.


Cambio de modo

Puedes cambiar de modo durante una sesión usando la tecla Tab o el atajo configurado como switch_mode.

Consulta también Formatters para la configuración del formateo de código.


Configuración

Históricamente los modos se configuraban con la clave mode en opencode.json. Hoy en día se recomienda usar agent, pero esta sección sigue siendo válida para proyectos que aún dependen de mode.

Configuración JSON

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mode": {
"build": {
"model": "anthropic/claude-sonnet-4-20250514",
"prompt": "{file:./prompts/build.txt}",
"tools": {
"write": true,
"edit": true,
"bash": true
}
},
"plan": {
"model": "anthropic/claude-haiku-4-20250514",
"tools": {
"write": false,
"edit": false,
"bash": false
}
}
}
}

Configuración mediante Markdown

También puedes definir modos usando archivos Markdown:

  • Global: ~/.config/opencode/mode/
  • Proyecto: .opencode/mode/
~/.config/opencode/mode/review.md
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
---
You are in code review mode. Focus on:
- Code quality and best practices
- Potential bugs and edge cases
- Performance implications
- Security considerations
Provide constructive feedback without making direct changes.

El nombre del archivo se convierte en el nombre del modo (por ejemplo, review.md define el modo review).


Modelo

model permite sobrescribir el modelo por defecto para un modo concreto. Es útil para usar modelos distintos optimizados para tareas diferentes (uno rápido para planificar, otro más potente para implementar).

opencode.json
{
"mode": {
"plan": {
"model": "anthropic/claude-haiku-4-20250514"
}
}
}

Temperatura

temperature controla el grado de creatividad y aleatoriedad de las respuestas. Valores bajos producen salidas más deterministas; valores altos, respuestas más creativas.

opencode.json
{
"mode": {
"plan": {
"temperature": 0.1
},
"creative": {
"temperature": 0.8
}
}
}

Rangos típicos:

  • 0.0–0.2: respuestas muy enfocadas y deterministas; ideal para análisis de código y planificación.
  • 0.3–0.5: equilibrio entre precisión y creatividad; bueno para desarrollo general.
  • 0.6–1.0: respuestas más creativas y variadas; útil para brainstorming.
opencode.json
{
"mode": {
"analyze": {
"temperature": 0.1,
"prompt": "{file:./prompts/analysis.txt}"
},
"build": {
"temperature": 0.3
},
"brainstorm": {
"temperature": 0.7,
"prompt": "{file:./prompts/creative.txt}"
}
}
}

Si no se especifica temperatura, OpenCode usa los valores por defecto del modelo (suele ser 0 para la mayoría, 0.55 para modelos Qwen).


Prompt

Puedes indicar un prompt de sistema específico para un modo con la opción prompt:

opencode.json
{
"mode": {
"review": {
"prompt": "{file:./prompts/code-review.txt}"
}
}
}

La ruta es relativa al archivo de configuración (tanto para la config global como para la del proyecto).


Herramientas

Con la clave tools puedes habilitar o deshabilitar herramientas por modo:

{
"mode": {
"readonly": {
"tools": {
"write": false,
"edit": false,
"bash": false,
"read": true,
"grep": true,
"glob": true
}
}
}
}

Si no se especifica tools, todas las herramientas se consideran habilitadas.


Herramientas disponibles

Estas son las herramientas que se pueden controlar desde mode:

ToolDescripción
bashEjecutar comandos de shell
editModificar archivos existentes
writeCrear archivos nuevos
readLeer contenido de archivos
grepBuscar texto en archivos
globEncontrar archivos por patrón
listListar contenido de directorio
patchAplicar parches a archivos
todowriteGestionar listas de tareas
todoreadLeer listas de tareas
webfetchObtener contenido web

Modos personalizados

Puedes crear tus propios modos añadiéndolos en la configuración.

Usar configuración JSON

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mode": {
"docs": {
"prompt": "{file:./prompts/documentation.txt}",
"tools": {
"write": true,
"edit": true,
"bash": false,
"read": true,
"grep": true,
"glob": true
}
}
}
}

Usar archivos Markdown

Crea archivos de modo en .opencode/mode/ (proyecto) o ~/.config/opencode/mode/ (global):

.opencode/mode/debug.md
---
temperature: 0.1
tools:
bash: true
read: true
grep: true
write: false
edit: false
---
You are in debug mode. Your primary goal is to help investigate and diagnose issues.
Focus on:
- Understanding the problem through careful analysis
- Using bash commands to inspect system state
- Reading relevant files and logs
- Searching for patterns and anomalies
- Providing clear explanations of findings
Do not make any changes to files. Only investigate and report.
~/.config/opencode/mode/refactor.md
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
edit: true
read: true
grep: true
glob: true
---
You are in refactoring mode. Focus on improving code quality without changing functionality.
Priorities:
- Improve code readability and maintainability
- Apply consistent naming conventions
- Reduce code duplication
- Optimize performance where appropriate
- Ensure all tests continue to pass

Casos de uso

Algunos patrones habituales de uso de modos:

  • Build: desarrollo completo con todas las herramientas activas.
  • Plan: análisis y planificación sin cambios en disco.
  • Review: revisión de código con acceso de solo lectura y foco en documentación.
  • Debug: investigación de problemas con bash y herramientas de lectura.
  • Docs: escritura de documentación con operaciones sobre archivos pero sin comandos del sistema.

En muchos equipos también se usan modelos distintos según el modo (p. ej. un modelo rápido para plan y uno más avanzado para build).