Appearance
OpenCode TUI 是 OpenCode 的终端交互界面,在你的项目目录下运行 opencode 即可启动。本页覆盖 TUI 的全部功能:用 @ 引用文件、用 ! 执行 shell 命令、所有 / 斜线命令(help/connect/undo/sessions 等)、配置外部编辑器,以及通过 tui.json 配置界面行为(主题、滚动速度、鼠标支持等)。
OpenCode TUI 终端界面
OpenCode TUI 是 OpenCode 的主要交互方式,基于终端实现的交互界面(Terminal User Interface)。
启动当前目录的 TUI:
bash
opencode或指定工作目录:
bash
opencode /path/to/project启动后直接输入消息即可开始对话:
Give me a quick summary of the codebase.文件引用(@)
输入 @ 可以模糊搜索当前工作目录下的文件,被引用文件的内容会自动加入对话:
How is auth handled in @packages/functions/src/api/index.ts?提示:
@也支持在消息中直接引用文件。
执行 Bash 命令(!)
消息以 ! 开头,OpenCode 会执行对应的 shell 命令,输出结果自动加入对话作为工具结果:
bash
!ls -la斜线命令
在 TUI 中输入 / 加命令名执行快捷操作。大多数命令都有对应快捷键,默认 leader 键是 ctrl+x。
/connect
添加 LLM provider。弹出选择界面,可以选择不同 provider 并录入 API Key。
/connect/compact
压缩当前会话(将长上下文总结成摘要以节省 token)。别名 /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 并用外部编辑器打开。
/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 仓库。
/redo快捷键:ctrl+x r
/sessions
列出并切换历史会话。别名 /resume、/continue。
/sessions快捷键:ctrl+x l
/share
分享当前会话,生成链接并复制到剪贴板。
/share快捷键:ctrl+x s
/themes
列出可用的 UI 主题。
/themes快捷键:ctrl+x t
/thinking
切换思考/推理块的显示。仅控制显示,不影响模型是否启用推理。
要切换实际推理能力,用
ctrl+t循环切换模型变体。
/thinking/undo
撤销上一条消息(含后续所有回复和文件变更)。需要项目是 Git 仓库。
/undo快捷键:ctrl+x u
可以多次撤销,也可以用 /redo 重做。
/unshare
取消分享当前会话。
/unshare编辑器配置
/editor 和 /export 命令使用 EDITOR 环境变量指定的编辑器。
Linux / macOS
bash
export EDITOR=vim
# GUI 编辑器需要 --wait
export EDITOR="code --wait" # VS Code
export EDITOR="cursor --wait" # Cursor永久生效请加到 ~/.bashrc 或 ~/.zshrc。
Windows(CMD)
set EDITOR=notepad
set EDITOR=code --wait永久生效请在「系统属性 > 环境变量」设置。
Windows(PowerShell)
powershell
$env:EDITOR = "notepad"
$env:EDITOR = "code --wait"常用编辑器命令:code(VS Code)、cursor(Cursor)、windsurf(Windsurf)、nvim(Neovim)、vim、nano、subl(Sublime Text)
注意:VS Code、Cursor 等 GUI 编辑器需要加
--wait标志,让进程阻塞到关闭窗口。
TUI 配置(tui.json)
可以通过 tui.json(或 tui.jsonc)单独配置界面行为,与运行时的 opencode.json 分开:
json
{
"$schema": "https://opencode.ai/tui.json",
"theme": "opencode",
"keybinds": {
"leader": "ctrl+x"
},
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto",
"mouse": true
}配置项说明
theme:UI 主题,/themes命令可列出所有可用主题keybinds:自定义快捷键,支持修改 leader 键scroll_acceleration.enabled:启用 macOS 风格的滚动加速(快速滚动时加速,慢速时精准)。启用后会覆盖scroll_speedscroll_speed:滚动速度(最小值 0.001,支持小数),默认 3。启用scroll_acceleration后此项无效diff_style:diff 渲染模式。"auto"根据终端宽度自适应,"stacked"总是单列显示mouse:是否启用鼠标捕获(默认true)。禁用后保留终端原生的鼠标选择/滚动
使用 OPENCODE_TUI_CONFIG 环境变量可以指定自定义的 tui.json 路径。
用户名显示
可以在命令面板中搜索"username"或"hide username",切换是否在对话中显示用户名。该设置跨 TUI 会话持久保存。
常见问题
Q: TUI 打开后界面显示乱码或颜色不正常怎么办?
A: OpenCode TUI 需要支持 256 色或 24 位真彩色的终端。推荐使用 WezTerm、Alacritty、Ghostty 或 Kitty。如果用 Windows Terminal,确保 WSL 内终端颜色设置正确。
Q: 在 VS Code 的集成终端里用 OpenCode,/editor 命令会开什么?
A: 取决于 EDITOR 环境变量。如果设置了 code --wait,会在当前 VS Code 窗口新建标签页编辑消息,关闭标签页后消息回写到 TUI。
Q: /undo 提示"项目不是 Git 仓库"怎么办?
A: /undo 依赖 Git 快照来恢复文件变更。在项目根目录运行 git init 初始化 Git 仓库后即可使用。