summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/de/tui.mdx
blob: 144662c1195092c61fd7296fb6c2276dc56ef92f (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
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
---
title: TUI
description: Arbeite mit OpenCode in der Terminal-Oberflaeche.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"

OpenCode bietet eine interaktive Terminaloberflaeche (TUI), um mit einem LLM an deinen Projekten zu arbeiten.

Ohne weitere Argumente startet OpenCode die TUI im aktuellen Verzeichnis.

```bash
opencode
```

Oder du startest sie fuer ein bestimmtes Arbeitsverzeichnis.

```bash
opencode /path/to/project
```

In der TUI kannst du direkt mit einer Nachricht prompten.

```text
Give me a quick summary of the codebase.
```

---

## Datei-Referenzen

Mit `@` kannst du Dateien in Nachrichten referenzieren.
Dabei wird im aktuellen Verzeichnis eine unscharfe Dateisuche genutzt.

:::tip
Du kannst `@` in Nachrichten fuer Datei-Referenzen verwenden.
:::

```text "@packages/functions/src/api/index.ts"
How is auth handled in @packages/functions/src/api/index.ts?
```

Der Dateiinhalt wird automatisch zur Unterhaltung hinzugefuegt.

---

## Bash-Befehle

Beginne eine Nachricht mit `!`, um einen Shell-Befehl auszufuehren.

```bash frame="none"
!ls -la
```

Die Ausgabe landet als Tool-Ergebnis in der Unterhaltung.

---

## Befehle

In der OpenCode-TUI kannst du `/` plus Befehlsnamen eingeben, um Aktionen schnell auszufuehren.
Zum Beispiel:

```bash frame="none"
/help
```

Viele Befehle haben auch Tastenkombinationen mit `ctrl+x` als Leader-Key.
[Mehr dazu](/docs/keybinds).

Hier sind alle verfuegbaren Slash-Commands:

---

### connect

Fuegt einen Provider zu OpenCode hinzu. Erlaubt die Auswahl aus verfuegbaren Providern und das Hinzufuegen ihrer API-Keys.

```bash frame="none"
/connect
```

---

### compact

Kompaktiert die aktuelle Session. _Alias_: `/summarize`

```bash frame="none"
/compact
```

**Keybind:** `ctrl+x c`

---

### details

Schaltet Tool-Ausfuehrungsdetails um.

```bash frame="none"
/details
```

**Keybind:** `ctrl+x d`

---

### editor

Oeffnet externen Editor zum Verfassen von Nachrichten. Nutzt den in der `EDITOR`-Umgebungsvariable gesetzten Editor. [Mehr dazu](#editor-setup).

```bash frame="none"
/editor
```

**Keybind:** `ctrl+x e`

---

### exit

Beendet OpenCode. _Aliase_: `/quit`, `/q`

```bash frame="none"
/exit
```

**Keybind:** `ctrl+x q`

---

### export

Exportiert die aktuelle Unterhaltung als Markdown und oeffnet sie in deinem Standard-Editor. Nutzt den in der `EDITOR`-Umgebungsvariable gesetzten Editor. [Mehr dazu](#editor-setup).

```bash frame="none"
/export
```

**Keybind:** `ctrl+x x`

---

### help

Zeigt den Hilfedialog.

```bash frame="none"
/help
```

**Keybind:** `ctrl+x h`

---

### init

Erstellt oder aktualisiert die `AGENTS.md`-Datei. [Mehr dazu](/docs/rules).

```bash frame="none"
/init
```

**Keybind:** `ctrl+x i`

---

### models

Listet verfuegbare Modelle.

```bash frame="none"
/models
```

**Keybind:** `ctrl+x m`

---

### new

Startet eine neue Session. _Alias_: `/clear`

```bash frame="none"
/new
```

**Keybind:** `ctrl+x n`

---

### redo

Wiederholt eine zuvor rueckgaengig gemachte Nachricht. Nur verfuegbar nach Verwendung von `/undo`.

:::tip
Auch Dateiaenderungen werden wiederhergestellt.
:::

Intern nutzt dies Git, um die Dateiaenderungen zu verwalten. Dein Projekt muss also **ein Git-Repository sein**.

```bash frame="none"
/redo
```

**Keybind:** `ctrl+x r`

---

### sessions

Listet Sessions und wechselt zwischen ihnen. _Aliase_: `/resume`, `/continue`

```bash frame="none"
/sessions
```

**Keybind:** `ctrl+x l`

---

### share

Teilt die aktuelle Session. [Mehr dazu](/docs/share).

```bash frame="none"
/share
```

**Keybind:** `ctrl+x s`

---

### themes

Listet verfuegbare Themes.

```bash frame="none"
/theme
```

**Keybind:** `ctrl+x t`

---

### thinking

Schaltet die Sichtbarkeit von Thinking/Reasoning-Bloecken in der Unterhaltung um. Wenn aktiviert, kannst du den Denkprozess des Modells sehen (bei Modellen, die das unterstuetzen).

:::note
Dieser Befehl steuert nur, ob Thinking-Bloecke **angezeigt** werden - er aktiviert oder deaktiviert nicht die Reasoning-Faehigkeiten des Modells. Um die Reasoning-Faehigkeiten umzuschalten, nutze `ctrl+t`, um durch die Modell-Varianten zu wechseln.
:::

```bash frame="none"
/thinking
```

---

### undo

Macht die letzte Nachricht in der Unterhaltung rueckgaengig. Entfernt die letzte Benutzernachricht, alle folgenden Antworten und alle Dateiaenderungen.

:::tip
Auch durchgefuehrte Dateiaenderungen werden rueckgaengig gemacht.
:::

Intern nutzt dies Git, um die Dateiaenderungen zu verwalten. Dein Projekt muss also **ein Git-Repository sein**.

```bash frame="none"
/undo
```

**Keybind:** `ctrl+x u`

---

### unshare

Hebt das Teilen der aktuellen Session auf. [Mehr dazu](/docs/share#un-sharing).

```bash frame="none"
/unshare
```

---

## Editor-Einrichtung

Sowohl `/editor` als auch `/export` nutzen den in deiner `EDITOR`-Umgebungsvariable spezifizierten Editor.

<Tabs>
  <TabItem label="Linux/macOS">
    ```bash
    # Example for nano or vim
    export EDITOR=nano
    export EDITOR=vim

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    export EDITOR="code --wait"
    ```

    Um es dauerhaft zu machen, fuege dies zu deinem Shell-Profil hinzu;
    `~/.bashrc`, `~/.zshrc`, etc.

  </TabItem>

  <TabItem label="Windows (CMD)">
    ```bash
    set EDITOR=notepad

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    set EDITOR=code --wait
    ```

    Um es dauerhaft zu machen, nutze **Systemeigenschaften** > **Umgebungsvariablen**.

  </TabItem>

  <TabItem label="Windows (PowerShell)">
    ```powershell
    $env:EDITOR = "notepad"

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    $env:EDITOR = "code --wait"
    ```

    Um es dauerhaft zu machen, fuege dies zu deinem PowerShell-Profil hinzu.

  </TabItem>
</Tabs>

Beliebte Editoren sind:

- `code` - Visual Studio Code
- `cursor` - Cursor
- `windsurf` - Windsurf
- `nvim` - Neovim
- `vim` - Vim
- `nano` - Nano
- `notepad` - Windows Notepad
- `subl` - Sublime Text

:::note
Einige Editoren wie VS Code muessen mit dem `--wait`-Flag gestartet werden.
:::

Einige Editoren benoetigen Befehlszeilenargumente, um im blockierenden Modus zu laufen. Das `--wait`-Flag sorgt dafuer, dass der Editor-Prozess blockiert, bis er geschlossen wird.

---

## Konfiguration

Du kannst das Verhalten der TUI ueber die Datei `tui.json` (oder `tui.jsonc`) anpassen.

```json title="tui.json"
{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "opencode",
  "keybinds": {
    "leader": "ctrl+x"
  },
  "scroll_speed": 3,
  "scroll_acceleration": {
    "enabled": true
  },
  "diff_style": "auto"
}
```

Dies ist getrennt von `opencode.json`, welche das Server-/Runtime-Verhalten konfiguriert.

### Optionen

- `theme` - Setzt dein UI-Theme. [Mehr dazu](/docs/themes).
- `keybinds` - Passt Tastenkombinationen an. [Mehr dazu](/docs/keybinds).
- `scroll_acceleration.enabled` - Aktiviert Scroll-Beschleunigung im macOS-Stil fuer weiches, natuerliches Scrollen. Wenn aktiviert, erhoeht sich die Scroll-Geschwindigkeit bei schnellen Gesten und bleibt praezise bei langsamen Bewegungen. **Diese Einstellung hat Vorrang vor `scroll_speed` und ueberschreibt es, wenn aktiviert.**
- `scroll_speed` - Steuert, wie schnell die TUI scrollt (Minimum: `0.001`, unterstuetzt Dezimalwerte). Standard ist `3`. **Hinweis: Wird ignoriert, wenn `scroll_acceleration.enabled` auf `true` gesetzt ist.**
- `diff_style` - Steuert die Diff-Darstellung. `"auto"` passt sich der Terminalbreite an, `"stacked"` zeigt immer ein einspaltiges Layout.

Verwende `OPENCODE_TUI_CONFIG`, um einen benutzerdefinierten TUI-Konfigurationspfad zu laden.

---

## Anpassung

Du kannst verschiedene Aspekte der TUI-Ansicht ueber die Befehlspalette (`ctrl+x h` oder `/help`) anpassen. Diese Einstellungen bleiben ueber Neustarts hinweg erhalten.

---

#### Benutzername-Anzeige

Schaltet um, ob dein Benutzername in Chat-Nachrichten erscheint. Zugriff hierueber:

- Befehlspalette: Suche nach "username" oder "hide username"
- Die Einstellung wird automatisch gespeichert und bleibt ueber TUI-Sessions hinweg erhalten.