Salta ai contenuti

Modalità

Modalità diverse per casi d’uso diversi.

Le modalità in OpenCode ti permettono di personalizzare comportamento, strumenti e prompt a seconda del flusso di lavoro.

Sono incluse due modalità integrate: build e plan. Puoi personalizzarle o definirne di nuove nella config.

Puoi cambiare modalità durante una sessione oppure fissarla nel file di configurazione.


Modalità integrate

OpenCode include due modalità principali.


Build

build è la modalità predefinita con tutti gli strumenti abilitati. È la modalità standard per lo sviluppo quando ti serve pieno accesso alle operazioni sui file e ai comandi di sistema.


Plan

plan è una modalità limitata pensata per pianificazione e analisi. In questa modalità, per impostazione predefinita, sono disabilitati:

  • write – non è possibile creare nuovi file
  • edit – non è possibile modificare file esistenti
  • patch – non è possibile applicare patch
  • bash – non è possibile eseguire comandi di shell

È utile quando vuoi che il modello analizzi il codice, suggerisca modifiche o prepari piani senza toccare il repository.


Cambio modalità

Durante una sessione puoi cambiare modalità usando il tasto Tab o la scorciatoia configurata come switch_mode.

Vedi anche Formatter per la configurazione del formato del codice.


Configurazione

Storicamente le modalità venivano definite con la chiave mode in opencode.json. Oggi si consiglia di usare agent, ma questa sezione resta utile per progetti che dipendono ancora da mode.

Configurazione 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
}
}
}
}

Configurazione tramite Markdown

Puoi anche definire modalità tramite file Markdown:

  • Globale: ~/.config/opencode/mode/
  • Progetto: .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.

Il nome del file diventa il nome della modalità (ad es. review.md → modalità review).


Modello

L’opzione model permette di sovrascrivere il modello predefinito per una modalità specifica. È utile per usare modelli diversi ottimizzati per compiti differenti (uno veloce per pianificare, uno più potente per implementare).

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

Temperatura

temperature controlla creatività e casualità nelle risposte. Valori bassi producono risposte più deterministiche; valori alti, risposte più creative.

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

Valori tipici:

  • 0.0–0.2: risposte molto focalizzate e deterministiche; ideale per analisi del codice e pianificazione.
  • 0.3–0.5: buon compromesso tra precisione e creatività; adatto allo sviluppo generico.
  • 0.6–1.0: risposte più creative e variabili; utile per 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}"
}
}
}

Se non imposti temperature, OpenCode usa il default del modello (in genere 0 per la maggior parte dei modelli, 0.55 per i modelli Qwen).


Prompt

Puoi specificare un prompt di sistema personalizzato per una modalità tramite la chiave prompt:

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

Il percorso è relativo al file di configurazione (sia globale che di progetto).


Tools

Con la chiave tools puoi abilitare o disabilitare strumenti per singola modalità:

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

Se tools non è specificato, tutti gli strumenti risultano abilitati.


Tools disponibili

Questi sono gli strumenti che puoi controllare tramite mode:

ToolDescrizione
bashEseguire comandi di shell
editModificare file esistenti
writeCreare nuovi file
readLeggere il contenuto dei file
grepCercare testo nei file
globTrovare file tramite pattern
listElencare il contenuto di directory
patchApplicare patch ai file
todowriteGestire liste TODO
todoreadLeggere liste TODO
webfetchRecuperare contenuti dal web

Modalità personalizzate

Puoi creare modalità personalizzate aggiungendole alla configurazione.

Configurazione 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
}
}
}
}

Configurazione tramite Markdown

Crea file di modalità in .opencode/mode/ (progetto) o ~/.config/opencode/mode/ (globale):

.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

Casi d’uso

Esempi tipici di uso delle modalità:

  • Build: sviluppo completo con tutti gli strumenti attivi.
  • Plan: analisi e pianificazione senza modifiche su disco.
  • Review: revisione del codice con accesso in sola lettura e focus sulla documentazione.
  • Debug: investigazione dei problemi con bash e strumenti di lettura.
  • Docs: scrittura di documentazione con operazioni sui file ma senza comandi di sistema.

In molti team si usano anche modelli diversi a seconda della modalità (per esempio un modello veloce per plan e uno più avanzato per build).