Zum Inhalt springen

TUI

Arbeite mit OpenCode in der Terminal-Oberflaeche.

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.

Terminal-Fenster
opencode

Oder du startest sie fuer ein bestimmtes Arbeitsverzeichnis.

Terminal-Fenster
opencode /path/to/project

In der TUI kannst du direkt mit einer Nachricht prompten.

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.

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.

!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:

/help

Viele Befehle haben auch Tastenkombinationen mit ctrl+x als Leader-Key. Mehr dazu.

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.

/connect

compact

Kompaktiert die aktuelle Session. Alias: /summarize

/compact

Keybind: ctrl+x c


details

Schaltet Tool-Ausfuehrungsdetails um.

/details

Keybind: ctrl+x d


editor

Oeffnet externen Editor zum Verfassen von Nachrichten. Nutzt den in der EDITOR-Umgebungsvariable gesetzten Editor. Mehr dazu.

/editor

Keybind: ctrl+x e


exit

Beendet OpenCode. Aliase: /quit, /q

/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.

/export

Keybind: ctrl+x x


help

Zeigt den Hilfedialog.

/help

Keybind: ctrl+x h


init

Erstellt oder aktualisiert die AGENTS.md-Datei. Mehr dazu.

/init

Keybind: ctrl+x i


models

Listet verfuegbare Modelle.

/models

Keybind: ctrl+x m


new

Startet eine neue Session. Alias: /clear

/new

Keybind: ctrl+x n


redo

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

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

/redo

Keybind: ctrl+x r


sessions

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

/sessions

Keybind: ctrl+x l


share

Teilt die aktuelle Session. Mehr dazu.

/share

Keybind: ctrl+x s


themes

Listet verfuegbare Themes.

/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).

/thinking

undo

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

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

/undo

Keybind: ctrl+x u


unshare

Hebt das Teilen der aktuellen Session auf. Mehr dazu.

/unshare

Editor-Einrichtung

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

Terminal-Fenster
# 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.

Beliebte Editoren sind:

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

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.

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.
  • keybinds - Passt Tastenkombinationen an. Mehr dazu.
  • 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.