summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/nb/modes.mdx
blob: b3c159bb9aa05e8ad3726c1539ca4f346670b4e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
---
title: Modi
description: Ulike moduser for forskjellige brukstilfeller.
---

:::caution
Modi er nå konfigurert gjennom alternativet `agent` i OpenCode-konfigurasjonen. De
Alternativet `mode` er nå utdatert. [Finn ut mer](/docs/agents).
:::

Moduser i OpenCode lar deg tilpasse oppførselen, verktøyene og ledetekstene for ulike brukstilfeller.

Den kommer med to innebygde moduser: **bygg** og **plan**. Du kan tilpasse
disse eller konfigurer din egen gjennom OpenCode-konfigurasjonen.

Du kan bytte mellom moduser under en økt eller konfigurere dem i konfigurasjonsfilen.

---

## Innebygd

OpenCode kommer med to innebygde moduser.

---

### Bygg

Bygg er **standard**-modus med alle verktøy aktivert. Dette er standardmodusen for utviklingsarbeid der du trenger full tilgang til filoperasjoner og systemkommandoer.

---

### Plan

En begrenset modus designet for planlegging og analyse. I planmodus er følgende verktøy deaktivert som standard:

- `write` - Kan ikke opprette nye filer
- `edit` - Kan ikke endre eksisterende filer, bortsett fra filer som ligger på `.opencode/plans/*.md` for å detaljere selve planen
- `patch` - Kan ikke bruke patcher
- `bash` - Kan ikke utføre shell-kommandoer

Denne modusen er nyttig når du vil at AI skal analysere kode, foreslå endringer eller lage planer uten å gjøre noen faktiske endringer i kodebasen.

---

## Bytte

Du kan bytte mellom moduser under en økt ved å bruke _Tab_-tasten. Eller din konfigurerte `switch_mode` nøkkelbinding.

Se også: [Formatters](/docs/formatters) for informasjon om konfigurasjon av kodeformatering.

---

## Konfigurer

Du kan tilpasse de innebygde modusene eller lage dine egne gjennom konfigurasjon. Modi kan konfigureres på to måter:

### JSON Konfigurasjon

Konfigurer moduser i konfigurasjonsfilen `opencode.json`:

```json title="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
      }
    }
  }
}
```

### Markdown-konfigurasjon

Du kan også definere moduser ved å bruke markdown-filer. Plasser dem i:

- Globalt: `~/.config/opencode/modes/`
- Prosjekt: `.opencode/modes/`

```markdown title="~/.config/opencode/modes/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.
```

Markdown-filnavnet blir modusnavnet (f.eks. `review.md` oppretter en `review`-modus).

La oss se på disse konfigurasjonsalternativene i detalj.

---

### Modell

Bruk `model`-konfigurasjonen for å overstyre standardmodellen for denne modusen. Nyttig for bruk av ulike modeller optimalisert for ulike oppgaver. For eksempel en raskere modell for planlegging, en mer kapabel modell for implementering.

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

---

### Temperatur

Kontroller tilfeldigheten og kreativiteten til AIs svar med `temperature`-konfigurasjonen. Lavere verdier gjør svarene mer fokuserte og deterministiske, mens høyere verdier øker kreativiteten og variasjonen.

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

Temperaturverdier varierer vanligvis fra 0,0 til 1,0:

- **0.0-0.2**: Veldig fokuserte og deterministiske svar, ideell for kodeanalyse og planlegging
- **0,3-0,5**: Balanserte svar med litt kreativitet, bra for generelle utviklingsoppgaver
- **0.6-1.0**: Mer kreative og varierte svar, nyttig for idédugnad og utforskning

```json title="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}"
    }
  }
}
```

Hvis ingen temperatur er spesifisert, bruker OpenCode modellspesifikke standarder (vanligvis 0 for de fleste modeller, 0,55 for Qwen-modeller).

---

### Ledetekst

Spesifiser en tilpasset systemmeldingsfil for denne modusen med `prompt`-konfigurasjonen. Ledetekstfilen skal inneholde instruksjoner som er spesifikke for modusens formål.

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

Denne banen er i forhold til hvor konfigurasjonsfilen er plassert. Så dette fungerer for
både den globale OpenCode-konfigurasjonen og den prosjektspesifikke konfigurasjonen.

---

### Verktøy

Kontroller hvilke verktøy som er tilgjengelige i denne modusen med `tools`-konfigurasjonen. Du kan aktivere eller deaktivere spesifikke verktøy ved å sette dem til `true` eller `false`.

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

Hvis ingen verktøy er spesifisert, er alle verktøy aktivert som standard.

---

#### Tilgjengelige verktøy

Her er alle verktøyene som kan kontrolleres gjennom moduskonfigurasjonen.

| Verktøy     | Beskrivelse                 |
| ----------- | --------------------------- |
| `bash`      | Utfør shell-kommandoer      |
| `edit`      | Endre eksisterende filer    |
| `write`     | Opprett nye filer           |
| `read`      | Les filinnhold              |
| `grep`      | Søk filinnhold              |
| `glob`      | Finn filer etter mønster    |
| `list`      | Liste kataloginnhold        |
| `patch`     | Bruk patcher på filer       |
| `todowrite` | Administrer gjøremålslister |
| `todoread`  | Les gjøremålslister         |
| `webfetch`  | Hent nettinnhold            |

---

## Egendefinerte moduser

Du kan lage dine egne tilpassede moduser ved å legge dem til konfigurasjonen. Her er eksempler som bruker begge tilnærmingene:

### Bruker JSON konfigurasjon

```json title="opencode.json" {4-14}
{
  "$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
      }
    }
  }
}
```

### Bruker markdown-filer

Lag modusfiler i `.opencode/modes/` for prosjektspesifikke moduser eller `~/.config/opencode/modes/` for globale moduser:

```markdown title=".opencode/modes/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.
```

```markdown title="~/.config/opencode/modes/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
```

---

### Brukstilfeller

Her er noen vanlige brukstilfeller for forskjellige moduser.

- **Build-modus**: Fullt utviklingsarbeid med alle verktøy aktivert
- **Plan-modus**: Analyse og planlegging uten å gjøre endringer
- **Review-modus**: Kodegjennomgang med skrivebeskyttet tilgang pluss dokumentasjonsverktøy
- **Debug-modus**: Fokusert på etterforskning med bash- og leseverktøy aktivert
- **Docs-modus**: Dokumentasjonsskriving med filoperasjoner, men ingen systemkommandoer

Du kan også finne at forskjellige modeller er gode for forskjellige brukstilfeller.