2.1 TUI 介面操作

TUI(Terminal User Interface)是 OpenCode 最核心的使用方式。啟動後,你會看到一個分割畫面:上方是對話與輸出區域,底部是指令輸入列。

常用指令一覽

指令 功能 使用時機
/help 顯示所有可用指令與說明 忘記指令或需要快速查詢時
/init 初始化 AGENTS.md 設定檔 新專案首次使用時
/models 選擇 LLM 模型 切換或首次設定模型時
/compact 壓縮對話歷史以節省 Token 對話過長、Token 即將用盡時
/undo 撤銷上一次檔案變更 AI 做出的修改不如預期時
/redo 重做被撤銷的變更 誤觸撤銷後想還原時
/new 開啟新的對話(清除歷史) 要切換到完全不同的任務時
/exit 離開 OpenCode 工作結束時

檔案參照(@file)

在 TUI 中,你可以使用 @ 符號來參照專案中的檔案,讓 AI 直接讀取這些檔案的內容:

@src/components/Button.tsx 幫我把這個元件的樣式改為 primary 色系

也可以一次參照多個檔案:

@src/utils/helpers.ts @src/types/index.ts 這兩個檔案之間有哪些型別不一致?

執行 Shell 命令

在 OpenCode 中,你可以用 ! 前綴直接執行終端機命令:

!npm run test          # 執行測試
!git status            # 查看 Git 狀態
!npm install lodash    # 安裝套件

你也可以使用 #! 前綴(或直接輸入 bash 後跟命令):

#!node scripts/build.js
bash: docker compose up -d
⚠️ 安全提醒:Shell 命令具有完整的系統權限。執行前 OpenCode 會詢問你的許可(取決於 opencode.json 中的權限設定),請務必確認命令內容無誤後再允許執行。

編輯器整合

在 TUI 中,你也可以直接啟動外部編輯器來編輯特定檔案。OpenCode 會自動偵測系統中可用的編輯器(VS Code、Vim、Neovim、Helix 等),並在需要時開啟編輯。

設定面板

在 TUI 中按下快捷鍵(預設為 Ctrl+P)可以開啟設定面板,讓你即時調整:

  • 主題 — 切換淺色/深色模式
  • 模型 — 快速切換當前使用的 LLM
  • 權限 — 調整工具執行權限策略
  • 快捷鍵 — 檢視與自訂按鍵綁定

2.2 CLI 指令列模式

除了 TUI 互動模式,OpenCode 也提供完整的 CLI(Command Line Interface),適合自動化腳本、CI/CD 流程或快速一次性任務。

opencode run

以非互動方式執行單一任務,執行完畢後自動結束:

terminal
$ opencode run "在 src/utils/ 下新增一個 formatDate 函數,並加上單元測試"
◈ 正在分析需求...
◈ 建立 src/utils/formatDate.ts
◈ 建立 src/utils/formatDate.test.ts
◈ 執行測試...
✔ 測試通過 (2 passed)
$

CLI 指令總表

指令 說明 範例
opencode run "<prompt>" 非互動式執行任務 opencode run "重構這個檔案"
opencode agent <name> 切換 AI 代理角色 opencode agent reviewer
opencode auth login 登入 OpenCode 帳號 opencode auth login
opencode mcp 管理 MCP(Model Context Protocol) opencode mcp list
opencode session 管理工作階段 opencode session list
opencode web 啟動 Web 介面 opencode web --port 4000
opencode --version 顯示版本號 opencode --version
opencode --help 顯示完整說明 opencode --help

Session 管理

OpenCode 的工作階段管理讓你可以在不同任務之間切換,而不會遺失對話上下文:

opencode session list      # 列出所有工作階段
opencode session show <id> # 檢視特定工作階段
opencode session delete <id> # 刪除工作階段
💡 使用技巧:在 CI/CD 流程中,opencode run 非常適合用來執行自動化程式碼審查、產生變更日誌或自動修正 Lint 錯誤。

2.3 Web 介面使用

如果你偏好圖形化介面,OpenCode 提供了 Web 版本,只需要一個指令即可啟動:

terminal
$ opencode web
◈ OpenCode Web 介面已啟動
◈ 監聽於 http://localhost:3000
◈ 按 Ctrl+C 停止伺服器
$

Web 介面提供與 TUI 相同的功能,但以瀏覽器為操作介面:

  • 左側顯示對話歷史
  • 中央為目前對話區域
  • 底部輸入列支援與 TUI 相同的所有指令與 @ 檔案參照
  • 右上角提供設定面板與主題切換
🔧 自訂選項:你可以透過 --port 參數指定連接埠(例如 opencode web --port 4000),或使用 --host 綁定到特定 IP 位址。

2.4 IDE 整合

VS Code 擴充套件

OpenCode 提供官方 VS Code 擴充套件,安裝後可以直接在編輯器中與 AI 代理互動:

  • 在 VS Code 的擴充市集中搜尋「OpenCode」即可安裝
  • 支援選取程式碼後直接傳送給 OpenCode 進行修改或解釋
  • 內建差異檢視(Diff View),讓你可以逐行審查 AI 的變更
  • 快捷鍵整合,無需離開編輯器即可使用

JetBrains 外掛

IntelliJ IDEA、WebStorm、PyCharm 等 JetBrains 系列 IDE 也提供官方外掛:

  • 在 Settings > Plugins 中搜尋「OpenCode」
  • 支援與 VS Code 版本相同的核心功能
  • 深度整合 JetBrains 的程式碼分析引擎
⚡ 最佳實務:建議將 TUI 做為主要工作模式以獲得最完整的體驗,Web 與 IDE 整合則適合需要快速查詢或修改的場景。三種模式可以同時使用,互不衝突。

2.5 實際工作流程範例

以下展示一個完整的 OpenCode 工作流程,從啟動到完成任務:

terminal
$ cd my-project
$ opencode
◈ OpenCode v0.8.0
 
> @src/app.ts 幫我在這個檔案中新增一個使用者登入功能
◈ 正在讀取 src/app.ts...
◈ 分析現有程式碼結構...
◈ 將新增:
- POST /api/login 路由
- JWT Token 驗證中間件
- 使用者查詢函數
◈ 是否套用這些變更?(Y/n)
> y
✔ 變更已套用
>

這個範例展示了幾個關鍵點:

  • 使用 @ 參照特定檔案
  • 以自然語言描述需求
  • OpenCode 會先分析再提出變更計畫
  • 套用前會請求使用者確認

章節測驗

測試你對本章內容的理解程度:

在 OpenCode TUI 中,下列哪個指令用於壓縮對話歷史以節省 Token?

常見問題

TUI 與 CLI 模式有什麼主要區別? ▼

TUI 模式提供互動式介面,適合長時間的開發工作——你可以持續對話、逐步調整需求、即時看到 AI 的回應。CLI 模式(opencode run)則是單次執行,執行完畢即結束,適合自動化腳本與 CI/CD 場景。兩者使用相同的核心引擎,差別在於互動方式。

如何在 TUI 中開啟外部編輯器? ▼

在 TUI 對話中,當 OpenCode 提及特定檔案時,你可以點擊檔案路徑(如果終端機支援超連結)來開啟編輯器。你也可以直接告訴 OpenCode「用 VS Code 開啟這個檔案」,它會自動啟動系統中對應的編輯器。預設使用的編輯器可以在 opencode.json 中設定。

Web 介面與 TUI 的功能完全一致嗎? ▼

基本上是的。Web 介面實作了 TUI 的所有核心功能,包括指令執行、檔案參照、Shell 命令執行等。唯一的差異在於 Web 介面無法使用依賴終端機原生功能的特性(例如某些快捷鍵綁定)。如果你大部分時間使用瀏覽器工作,Web 介面會是很好的選擇。