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 fileedit– non è possibile modificare file esistentipatch– non è possibile applicare patchbash– 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
{ "$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/
---model: anthropic/claude-sonnet-4-20250514temperature: 0.1tools: 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).
{ "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.
{ "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.
{ "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:
{ "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:
| Tool | Descrizione |
|---|---|
bash | Eseguire comandi di shell |
edit | Modificare file esistenti |
write | Creare nuovi file |
read | Leggere il contenuto dei file |
grep | Cercare testo nei file |
glob | Trovare file tramite pattern |
list | Elencare il contenuto di directory |
patch | Applicare patch ai file |
todowrite | Gestire liste TODO |
todoread | Leggere liste TODO |
webfetch | Recuperare contenuti dal web |
Modalità personalizzate
Puoi creare modalità personalizzate aggiungendole alla configurazione.
Configurazione 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):
---temperature: 0.1tools: 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.---model: anthropic/claude-sonnet-4-20250514temperature: 0.2tools: 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 passCasi 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
bashe 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).