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.
opencodeOder du startest sie fuer ein bestimmtes Arbeitsverzeichnis.
opencode /path/to/projectIn 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 -laDie Ausgabe landet als Tool-Ergebnis in der Unterhaltung.
Befehle
In der OpenCode-TUI kannst du / plus Befehlsnamen eingeben, um Aktionen schnell auszufuehren.
Zum Beispiel:
/helpViele 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.
/connectcompact
Kompaktiert die aktuelle Session. Alias: /summarize
/compactKeybind: ctrl+x c
details
Schaltet Tool-Ausfuehrungsdetails um.
/detailsKeybind: ctrl+x d
editor
Oeffnet externen Editor zum Verfassen von Nachrichten. Nutzt den in der EDITOR-Umgebungsvariable gesetzten Editor. Mehr dazu.
/editorKeybind: ctrl+x e
exit
Beendet OpenCode. Aliase: /quit, /q
/exitKeybind: 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.
/exportKeybind: ctrl+x x
help
Zeigt den Hilfedialog.
/helpKeybind: ctrl+x h
init
Erstellt oder aktualisiert die AGENTS.md-Datei. Mehr dazu.
/initKeybind: ctrl+x i
models
Listet verfuegbare Modelle.
/modelsKeybind: ctrl+x m
new
Startet eine neue Session. Alias: /clear
/newKeybind: 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.
/redoKeybind: ctrl+x r
sessions
Listet Sessions und wechselt zwischen ihnen. Aliase: /resume, /continue
/sessionsKeybind: ctrl+x l
share
Teilt die aktuelle Session. Mehr dazu.
/shareKeybind: ctrl+x s
themes
Listet verfuegbare Themes.
/themeKeybind: 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).
/thinkingundo
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.
/undoKeybind: ctrl+x u
unshare
Hebt das Teilen der aktuellen Session auf. Mehr dazu.
/unshareEditor-Einrichtung
Sowohl /editor als auch /export nutzen den in deiner EDITOR-Umgebungsvariable spezifizierten Editor.
# Example for nano or vimexport EDITOR=nanoexport EDITOR=vim
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.# include --waitexport EDITOR="code --wait"Um es dauerhaft zu machen, fuege dies zu deinem Shell-Profil hinzu;
~/.bashrc, ~/.zshrc, etc.
set EDITOR=notepad
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.# include --waitset EDITOR=code --waitUm es dauerhaft zu machen, nutze Systemeigenschaften > Umgebungsvariablen.
$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.
Beliebte Editoren sind:
code- Visual Studio Codecursor- Cursorwindsurf- Windsurfnvim- Neovimvim- Vimnano- Nanonotepad- Windows Notepadsubl- 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.
{ "$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.keybinds- Passt Tastenkombinationen an. Mehr dazu.leader_timeout- Steuert, wie lange OpenCode nach der leader key wartet. Standard ist2000.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 vorscroll_speedund ueberschreibt es, wenn aktiviert.scroll_speed- Steuert, wie schnell die TUI scrollt (Minimum:0.001, unterstuetzt Dezimalwerte). Standard ist3. Hinweis: Wird ignoriert, wennscroll_acceleration.enabledauftruegesetzt 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 istfalse.notifications- Erlaubt dem TUI bei aktiviertem Attention, Desktop-Benachrichtigungen über das Terminal zu senden. Standard isttrue.sound- Erlaubt bei aktiviertem Attention das Abspielen von Hinweistönen. Standard isttrue.volume- Standardlautstärke der Hinweistöne von0bis1. Standard ist0.4.sound_pack- Zu verwendende sound pack ID. Standard istopencode.default.sounds- Legt eigene Sounddateien fürdefault,question,permission,error,doneodersubagent_donefest. Pfade können absolut,file://URLs oder relativ zutui.jsonsein.
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.