跳到內容

TUI

使用 OpenCode 終端機使用者介面。

OpenCode 提供了一個互動式終端機介面(TUI),用於配合 LLM 處理您的專案。

執行 OpenCode 即可啟動當前目錄的 TUI。

Terminal window
opencode

或者您可以為指定的工作目錄啟動它。

Terminal window
opencode /path/to/project

進入 TUI 後,您可以輸入訊息進行提示。

Give me a quick summary of the codebase.

檔案參考

您可以使用 @ 在訊息中參考檔案。這會在當前工作目錄中進行模糊檔案搜尋。

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

檔案的內容會自動新增到對話中。


Bash 指令

! 開頭的訊息會作為 shell 指令執行。

!ls -la

指令的輸出會作為工具結果新增到對話中。


指令

使用 OpenCode TUI 時,您可以輸入 / 後跟指令名稱來快速執行操作。例如:

/help

大多數指令還支援以 ctrl+x 作為前導鍵的快速鍵,其中 ctrl+x 是預設前導鍵。了解更多

以下是所有可用的斜線指令:


connect

將供應商新增到 OpenCode。允許您從可用的供應商中選擇並新增其 API 金鑰。

/connect

compact

壓縮當前工作階段。別名/summarize

/compact

快速鍵: ctrl+x c


details

切換工具執行詳情的顯示。

/details

快速鍵: ctrl+x d


editor

開啟外部編輯器來撰寫訊息。使用 EDITOR 環境變數中設定的編輯器。了解更多

/editor

快速鍵: ctrl+x e


exit

退出 OpenCode。別名/quit/q

/exit

快速鍵: ctrl+x q


export

將當前對話匯出為 Markdown 並在預設編輯器中開啟。使用 EDITOR 環境變數中設定的編輯器。了解更多

/export

快速鍵: ctrl+x x


help

顯示說明對話框。

/help

快速鍵: ctrl+x h


init

建立或更新 AGENTS.md 檔案。了解更多

/init

快速鍵: ctrl+x i


models

列出可用模型。

/models

快速鍵: ctrl+x m


new

開始新的工作階段。別名/clear

/new

快速鍵: ctrl+x n


redo

重做之前復原的訊息。僅在使用 /undo 後可用。

在內部,這使用 Git 來管理檔案變更。因此您的專案需要是一個 Git 儲存庫

/redo

快速鍵: ctrl+x r


sessions

列出工作階段並在工作階段之間切換。別名/resume/continue

/sessions

快速鍵: ctrl+x l


share

分享當前工作階段。了解更多

/share

快速鍵: ctrl+x s


themes

列出可用主題。

/theme

快速鍵: ctrl+x t


thinking

切換對話中思考/推理區塊的可見性。啟用後,您可以看到支援擴充思考的模型的推理過程。

/thinking

undo

復原對話中的最後一條訊息。移除最近的使用者訊息、所有後續回應以及所有檔案變更。

在內部,這使用 Git 來管理檔案變更。因此您的專案需要是一個 Git 儲存庫

/undo

快速鍵: ctrl+x u


unshare

取消分享當前工作階段。了解更多

/unshare

編輯器設定

/editor/export 指令都使用 EDITOR 環境變數中指定的編輯器。

Terminal window
# 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"

要使其永久生效,請將其新增到您的 shell 設定檔中; ~/.bashrc~/.zshrc 等。

常用的編輯器選項包括:

  • code - Visual Studio Code
  • cursor - Cursor
  • windsurf - Windsurf
  • nvim - Neovim 編輯器
  • vim - Vim 編輯器
  • nano - Nano 編輯器
  • notepad - Notepad(Windows 記事本)
  • subl - Sublime Text

某些編輯器需要命令列參數才能以阻塞模式執行。--wait 旗標使編輯器程序阻塞直到關閉。


設定

您可以透過 tui.json(或 tui.jsonc)自訂 TUI 行為。

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

這與設定伺服器/執行時行為的 opencode.json 是分開的。

選項

  • theme - 設定您的 UI 主題。了解更多
  • keybinds - 自訂鍵盤快速鍵。了解更多
  • scroll_acceleration.enabled - 啟用 macOS 風格的捲動加速,實現平滑、自然的捲動體驗。啟用後,快速捲動時速度會增加,慢速移動時保持精確。此設定優先於 scroll_speed,啟用時會覆蓋它。
  • scroll_speed - 控制使用捲動指令時 TUI 的捲動速度(最小值:0.001,支援小數值)。預設為 3注意:如果 scroll_acceleration.enabled 設定為 true,則此設定會被忽略。
  • diff_style - 控制差異呈現方式。"auto" 根據終端機寬度自適應,"stacked" 始終顯示單列。

使用 OPENCODE_TUI_CONFIG 載入自訂 TUI 設定路徑。


自訂

您可以使用指令面板(ctrl+x h/help)自訂 TUI 檢視的各個方面。這些設定在重新啟動後仍會保留。


使用者名稱顯示

切換您的使用者名稱是否顯示在聊天訊息中。透過以下方式存取:

  • 指令面板:搜尋「username」或「hide username」
  • 該設定會自動儲存,並在各個 TUI 工作階段中保持記憶