Skip to content

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)、vimnanosubl(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_speed
  • scroll_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 仓库后即可使用。