Buckets:
| 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", | |
| "leader_timeout": 2000, | |
| "keybinds": { | |
| "leader": "ctrl+x", | |
| "command_list": "ctrl+p" | |
| }, | |
| "scroll_speed": 3, | |
| "scroll_acceleration": { | |
| "enabled": false | |
| }, | |
| "diff_style": "auto", | |
| "mouse": true, | |
| "attention": { | |
| "enabled": true, | |
| "notifications": true, | |
| "sound": true, | |
| "volume": 0.4, | |
| "sound_pack": "opencode.default", | |
| "sounds": { | |
| "error": "./sounds/error.mp3" | |
| } | |
| } | |
| } | |
| ``` | |
| Dies ist getrennt von `opencode.json`, welche das Server-/Runtime-Verhalten konfiguriert. | |
| `keybinds` wird mit den integrierten Standardwerten zusammengeführt, daher musst du nur die Tastenkombinationen konfigurieren, die du ändern möchtest. | |
| ### Optionen | |
| - `theme` - Setzt dein UI-Theme. [Mehr dazu](/docs/themes). | |
| - `keybinds` - Passt Tastenkombinationen an. [Mehr dazu](/docs/keybinds). | |
| - `leader_timeout` - Steuert, wie lange OpenCode nach der leader key wartet. Standard ist `2000`. | |
| - `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. | |
| - `mouse` - Aktiviert oder deaktiviert die Mauserfassung im TUI (Standard: `true`). Wenn deaktiviert, bleibt das native Mausauswahl- und Scrollverhalten des Terminals erhalten. | |
| - `attention` - Konfiguriert Desktop-Benachrichtigungen und Sounds des TUI. Standardmäßig deaktiviert. | |
| Verwende `OPENCODE_TUI_CONFIG`, um einen benutzerdefinierten TUI-Konfigurationspfad zu laden. | |
| ### Attention | |
| Attention lässt das TUI dich benachrichtigen, wenn OpenCode auf eine Antwort wartet, eine Berechtigung bestätigt werden muss, ein Sitzungsfehler aufgetreten ist oder eine Sitzung abgeschlossen wurde. Aktiviere es mit `attention.enabled`; integrierte Ereignisse spielen beim Auftreten einen Sound ab. Desktop-Benachrichtigungen werden nur gesendet, wenn das Terminalfenster nicht fokussiert ist, und nicht für subagent-Ereignisse verwendet. | |
| - `enabled` - Aktiviert alle Benachrichtigungen und Sounds von Attention. Standard ist `false`. | |
| - `notifications` - Erlaubt dem TUI bei aktiviertem Attention, Desktop-Benachrichtigungen über das Terminal zu senden. Standard ist `true`. | |
| - `sound` - Erlaubt bei aktiviertem Attention das Abspielen von Hinweistönen. Standard ist `true`. | |
| - `volume` - Standardlautstärke der Hinweistöne von `0` bis `1`. Standard ist `0.4`. | |
| - `sound_pack` - Zu verwendende sound pack ID. Standard ist `opencode.default`. | |
| - `sounds` - Legt eigene Sounddateien für `default`, `question`, `permission`, `error`, `done` oder `subagent_done` fest. Pfade können absolut, `file://` URLs oder relativ zu `tui.json` sein. | |
| ## 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. | |
Xet Storage Details
- Size:
- 10.2 kB
- Xet hash:
- fa05763abb307fb13cd57d50525687633c1a648a800f1c2d499343f8c6bb5b97
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.