首页 / Codex 教程 / 交互式 TUI 模式

Codex 教程

交互式 TUI 模式

本教程共 32 篇 · 第 11 篇 · 更新于 2026-07-26 · 约 8 分钟阅读

CodexCodex 教程TUI交互式斜杠命令快捷键diff终端

11. 交互式 TUI 模式

本节目标:搞懂 TUI 界面布局、会用斜杠命令和快捷键操作、知道怎么查看 diff、分清交互式和 exec 两种跑法。

都说「图形界面对小白最友好,能不碰命令行就别碰」—但 Codex CLI 启动后不是让你对着一行光标干瞪眼。它进了一个叫 TUI(Terminal User Interface,终端用户界面)的全屏交互界面—有对话区、有输入框、有状态栏,跟桌面应用的信息密度差不多,只是全用键盘操作。

启动 TUI

在项目目录里敲一行:

codex

就进入全屏 TUI。也可以带一句提示词,进去后它直接开干:

codex "解释一下这个项目的结构"
Tip

也可以用 --cd 直接指定工作目录,不用先 cd 进去:

codex --cd ~/my-project "把 README 补全"

界面布局:认住三块

第一次见这一屏新手容易发懵:哪儿是我说话的地方?它干到哪一步了?别慌,你只需要认住三块。

对话区(中间最大那片)

Codex 的主场。它在这儿一步步讲它要干啥、贴出改动的代码块和 Git diff,而且代码和 diff 都带语法高亮。你审它改了什么,主要看这儿。

输入框(最底下)

你跟 Codex 说话的唯一入口。打字、贴代码、贴截图、敲斜杠命令,全在这一行。

状态栏(贴着输入框那几行小字)

显示会话的关键读数—当前用的哪个模型、上下文窗口还剩多少、当前工作目录、Git 分支等。官方还提供 /statusline 让你自己挑要显示哪些字段。

Note

看直播不用盯满屏,认住这三块就跟得上节奏。对话区看它干啥、输入框你说话、状态栏看读数。

输入消息

在输入框里直接打字就行,用大白话下指令,不用记什么格式:

给这个函数加上类型注解,并补充基本的错误处理

回车发送。Codex 会自己去找相关文件、自己读、自己改。

几个特殊的输入前缀:

前缀作用例子
!顺手跑条 shell 命令,不打扰 Codex!git status
@触发工作区文件模糊搜索,精准点名文件@main.py
/触发斜杠命令/model

! 前缀:不打扰 Codex 跑命令

在输入框开头打 !,后面跟一条命令:

!git status

这条命令直接在你终端跑,Codex 会把它的输出当成「用户提供的命令结果」收进上下文,而且照样走你的审批和沙箱设置。想顺手看一眼仓库状态、又不想让 Codex 专门跑一趟烧 token,用它最合适。

@ 前缀:点名文件

在输入框打 @ 会触发工作区文件的模糊搜索,按 Tab 或回车把选中的路径塞进消息里。想精准点名某个文件时用它,省得用大白话描述「那个 auth 文件」它找错。

Ctrl+G:开编辑器写长指令

嫌在小输入框里写几十行的复杂需求憋屈?按 Ctrl+G,Codex 会打开 VISUAL 环境变量指定的编辑器(没设就用 EDITOR),你在里头从容写完保存,内容自动带回输入框。

查看 diff

Codex 改完代码后,会把改动以 diff 的形式打印在对话区。你也可以随时用斜杠命令查看:

/diff

它会列出 Git 视角的改动,包括还没被 Git 跟踪的新文件。这是提交前审改动的标准动作。

看懂 diff 只需记一条:

  • - 开头 / 红色的,是要删掉的旧行
  • + 开头 / 绿色的,是要加上的新行
  • 没标记的,是没动的上下文
Warning

git diff/diff 都有个前提:你的项目得先是个 Git 仓库。要是还没跑过 git initgit diff 找不到可对比的版本。动手前先 git status 确认仓库能用。

常用斜杠命令

进了交互界面,斜杠命令就是你的遥控器—不退出、不重启,输入框打个 / 当场调整。

新手阶段先把这几个焊进肌肉记忆:

斜杠命令干啥用啥时候按
/model当场切换模型和推理强度想换个更强或更快的模型时
/permissions切换审批模式想放开或收紧动手权限
/status看当前会话信息不确定现在啥配置时
/diff看 Git diff提交前审改动
/compact把长对话压缩成摘要聊太久、上下文快满了
/review让独立审查智能体审你的改动写完想找第二双眼睛把关
/init在当前目录生成 AGENTS.md 脚手架想给项目立规矩
/clear清屏并开一段全新对话想彻底换个话题
Tip

任务正跑着的时候,你可以先把下一条指令或斜杠命令打好,按 Tab 排进队列,等这一轮跑完它自动接着处理。我经常在它跑测试的间隙,先把 /review 用 Tab 排好队。

常用快捷键

斜杠命令之外,还有一小撮纯键盘动作:

键盘动作作用
Ctrl+C中断当前操作;也可退出会话
Ctrl+L重绘屏幕(清屏但保留当前对话)
/ 在输入框翻草稿历史
Ctrl+R反向搜索提示词历史
Ctrl+O复制 Codex 最近一条已完成的输出
Tab把下一条输入排进队列
Esc Esc退回去编辑你上一条消息
Ctrl+G在外部编辑器里写长提示词

Ctrl+L 和 /clear 别搞混

Ctrl+L 只清屏幕、不动对话,会话照旧。/clear 是清屏外加开一段全新对话—上下文一起清空。一个是「擦黑板」,一个是「换张新黑板」,别按错。

Note

屏幕突然花了、或者一半空白?别以为它崩了。最常见的是你在 tmux 里跑 Codex,切窗口回来满屏乱码。按一下 Ctrl+L 就干净了,对话不会丢。

Esc Esc:退回去编辑上一条

输入框为空时连按两次 Esc,可以退回去编辑你上一条消息,继续按可往前翻,回车从那点重新分叉。这个功能在你发完一句话、发现表述不够准确时特别有用。

交互式 vs exec:盯着干还是一句话跑完

有些活根本不需要你盯着—比如「每天早上自动审一遍昨天的提交」「在 CI 里让它跑测试并修好失败用例」。这种「一句话丢进去、跑完吐结果就退出」的场景,就是 codex exec 的主场。

codex exec "审查当前改动,列出潜在 bug"

它会读工作目录、定个计划、把最终结果流式打到终端,然后退出—不进 TUI、不等你按键。

维度交互式(codex非交互式(codex exec
跑完会怎样进 TUI,停在界面等你继续吐完结果直接退出
适合的活探索、调试、需要来回沟通脚本、CI、批量、定时跑
要不要你在场要,你审它每一步不要,丢进去就走
输出形态界面里可视化看流到 stdout,可配 --json

exec 几个常用选项:

选项干啥用
--model / -m指定这次用哪个模型
--json输出按行的 JSON 事件,喂给脚本解析
--output-last-message / -o把最终那条消息写到文件里
--skip-git-repo-check允许在非 Git 目录里跑
Warning

exec 是为「无人值守」设计的,审批时机通常配 never(没人在场点头)。这也意味着它默认更放得开,务必配合合适的沙箱策略,别在没隔离的环境里对着重要项目无脑 exec

一个最小验证流程

照着这几步亲手跑一遍,TUI 的核心功能你就全过了一遍:

  1. 建个空目录,进去启动
mkdir -p ~/codex-cli-demo && cd ~/codex-cli-demo
codex
  1. /status 看一眼当前配置
/status
  1. ! 顺手跑条命令
!echo hello-codex-cli
  1. 让它干件会改文件的小事
新建一个文件 hi.txt,里面写一行 "hello from codex cli"
  1. /diff 看改动
/diff
  1. 退出
/exit
Tip

如果第 4 步它没停下来问、直接就建好了,说明你当前审批策略比较宽松—这不是 bug,是沙箱和审批在按规则放行。想看它「停下来问」那一下,用 /permissions 切到 Read Only 再让它建文件就能复现。

小结

  • 界面三块:对话区看它干啥、输入框你说话、状态栏看读数
  • 输入前缀! 跑命令、@ 点名文件、/ 触发斜杠命令、Ctrl+G 开编辑器写长指令
  • 斜杠命令/model 换模型、/permissions 调权限、/status 看状态、/diff 审改动是日常四大件
  • 快捷键Ctrl+L 重绘屏幕(对话不丢)、Tab 排队、Esc Esc 编辑上一条
  • 两种跑法:交互式是「盯着干」(来回聊),exec 是「一句话跑完」(自动化、CI)

CLI 不是「简化版桌面应用」,而是功能更全、还能接进自动化的那一个。黑窗口的门槛一旦迈过去,你会发现它比图形界面能干的事多得多。


这是本教程的前 11 章。从认识 Codex、搞懂核心概念、安装登录、跑通第一个任务,到配置系统、项目指令、模型选择、环境变量、TUI 操作—你已经掌握了 Codex CLI 的核心使用能力。后面更高级的主题(MCP 集成、Skills、子代理、自动化 CI 等),都是在这套地基上添砖加瓦。