Terminal UI (TUI)

OpenCode cung cấp giao diện terminal tương tác (TUI) để làm việc với các dự án của bạn cùng LLM.

Chạy OpenCode sẽ khởi động TUI cho thư mục hiện tại.

opencode

Hoặc bạn có thể khởi động TUI cho một thư mục cụ thể.

opencode /path/to/project

Sau khi vào TUI, bạn có thể nhập tin nhắn để hỏi AI.

Cho tôi tóm tắt nhanh về codebase này.

Tham chiếu files

Bạn có thể tham chiếu đến files trong tin nhắn bằng ký tự @. Tính năng này thực hiện tìm kiếm mờ (fuzzy search) trong thư mục làm việc hiện tại.

💡

Bạn cũng có thể dùng @ để tham chiếu files trong tin nhắn.

Auth được xử lý như thế nào trong @packages/functions/src/api/index.ts?

Nội dung của file sẽ được tự động thêm vào cuộc hội thoại.


Chạy lệnh Bash

Bắt đầu tin nhắn với ! để chạy lệnh shell.

!ls -la

Output của lệnh sẽ được thêm vào cuộc hội thoại như một kết quả tool.


Các lệnh (Commands)

Khi sử dụng TUI của OpenCode, bạn có thể gõ / theo sau là tên lệnh để thực thi nhanh các hành động. Ví dụ:

/help

Hầu hết các lệnh đều có keybind sử dụng ctrl+x làm leader key. Tìm hiểu thêm về keybinds.

Dưới đây là tất cả các slash commands có sẵn:


connect

Thêm provider vào OpenCode. Cho phép bạn chọn từ danh sách providers có sẵn và thêm API keys.

/connect

compact

Nén session hiện tại (tóm tắt lịch sử hội thoại). Alias: /summarize

/compact

Keybind: ctrl+x c


details

Bật/tắt hiển thị chi tiết thực thi tool.

/details

Keybind: ctrl+x d


editor

Mở trình soạn thảo bên ngoài để viết tin nhắn. Sử dụng editor được đặt trong biến môi trường EDITOR. Xem cách thiết lập.

/editor

Keybind: ctrl+x e


exit

Thoát OpenCode. Aliases: /quit, /q

/exit

Keybind: ctrl+x q


export

Xuất cuộc hội thoại hiện tại ra file Markdown và mở trong editor mặc định. Sử dụng editor được đặt trong biến môi trường EDITOR. Xem cách thiết lập.

/export

Keybind: ctrl+x x


help

Hiển thị hộp thoại trợ giúp.

/help

Keybind: ctrl+x h


init

Tạo hoặc cập nhật file AGENTS.md. Tìm hiểu thêm về rules.

/init

Keybind: ctrl+x i


models

Liệt kê các models có sẵn.

/models

Keybind: ctrl+x m


new

Bắt đầu session mới. Alias: /clear

/new

Keybind: ctrl+x n


redo

Làm lại tin nhắn đã undo trước đó. Chỉ khả dụng sau khi sử dụng /undo.

💡

Các thay đổi file cũng sẽ được khôi phục.

Bên trong, tính năng này sử dụng Git để quản lý thay đổi file. Vì vậy project của bạn cần phải là một Git repository.

/redo

Keybind: ctrl+x r


sessions

Liệt kê và chuyển đổi giữa các sessions. Aliases: /resume, /continue

/sessions

Keybind: ctrl+x l


share

Chia sẻ session hiện tại. Tìm hiểu thêm về sharing.

/share

Keybind: ctrl+x s


themes

Liệt kê các themes có sẵn.

/theme

Keybind: ctrl+x t


thinking

Bật/tắt hiển thị thinking/reasoning blocks trong cuộc hội thoại. Khi bật, bạn có thể thấy quá trình suy luận của model (với các models hỗ trợ extended thinking).

ℹ️

Lệnh này chỉ điều khiển việc hiển thị thinking blocks - không bật/tắt khả năng reasoning của model. Để chuyển đổi giữa các model variants (có/không reasoning), sử dụng ctrl+t.

/thinking

undo

Hoàn tác tin nhắn cuối cùng trong cuộc hội thoại. Xóa tin nhắn người dùng gần nhất, tất cả các phản hồi sau đó, và các thay đổi file.

💡

Các thay đổi file đã thực hiện cũng sẽ được hoàn tác.

Bên trong, tính năng này sử dụng Git để quản lý thay đổi file. Vì vậy project của bạn cần phải là một Git repository.

/undo

Keybind: ctrl+x u


unshare

Hủy chia sẻ session hiện tại. Tìm hiểu thêm về un-sharing.

/unshare

Cấu hình Editor

Cả lệnh /editor/export đều sử dụng editor được chỉ định trong biến môi trường EDITOR.

Linux/macOS

# Ví dụ cho nano hoặc vim
export EDITOR=nano
export EDITOR=vim

# Với GUI editors như VS Code, Cursor, VSCodium, Windsurf, Zed, v.v.
# cần thêm --wait
export EDITOR="code --wait"

Để cài đặt vĩnh viễn, thêm vào shell profile của bạn: ~/.bashrc, ~/.zshrc, v.v.

Windows (CMD)

set EDITOR=notepad

# Với GUI editors như VS Code, Cursor, VSCodium, Windsurf, Zed, v.v.
# cần thêm --wait
set EDITOR=code --wait

Để cài đặt vĩnh viễn, sử dụng System Properties > Environment Variables.

Windows (PowerShell)

$env:EDITOR = "notepad"

# Với GUI editors như VS Code, Cursor, VSCodium, Windsurf, Zed, v.v.
# cần thêm --wait
$env:EDITOR = "code --wait"

Để cài đặt vĩnh viễn, thêm vào PowerShell profile của bạn.

Các editor phổ biến

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

Một số editors như VS Code cần được chạy với flag --wait để OpenCode chờ bạn hoàn thành chỉnh sửa.


Cấu hình TUI

Bạn có thể tùy chỉnh hành vi TUI thông qua file config của OpenCode.

{
  "$schema": "https://opencode.ai/config.json",
  "tui": {
    "scroll_speed": 3,
    "scroll_acceleration": {
      "enabled": true
    }
  }
}

Các tùy chọn

OptionMô tả
scroll_accelerationBật scroll acceleration kiểu macOS để cuộn mượt mà, tự nhiên. Khi bật, tốc độ cuộn tăng khi cuộn nhanh và giữ chính xác khi cuộn chậm. Cài đặt này được ưu tiên và ghi đè scroll_speed khi được bật.
scroll_speedĐiều khiển tốc độ cuộn của TUI (tối thiểu: 1). Mặc định là 3. Lưu ý: Tùy chọn này bị bỏ qua nếu scroll_acceleration.enabled được đặt là true.

Tùy biến giao diện

Bạn có thể tùy chỉnh nhiều khía cạnh của TUI thông qua command palette (ctrl+x h hoặc /help). Các cài đặt này được lưu lại giữa các lần khởi động.

Hiển thị username

Bật/tắt hiển thị username trong chat messages. Truy cập thông qua:

  • Command palette: Tìm "username" hoặc "hide username"
  • Cài đặt tự động được lưu và ghi nhớ giữa các sessions