第 2 篇 核心 · 第 4 章
用說人話叫它寫程式
Codex CLI 是一個住在你終端機裡、聽你說「人話」就會自己讀檔、改檔、跑程式的 AI 工程師。
想像你旁邊坐了一位不會累、不會抱怨的工程師。你不用幫它寫一行 code,只要像交辦同事那樣開口:「幫我把這個錯誤修好」「照這張設計稿切版」「解釋一下這個專案在幹嘛」。它會自己去翻你的檔案、擬個計畫、動手做,然後把結果攤在你眼前。
這一章,我們就來學怎麼「開口」。重點不是背指令,而是學會把需求講清楚——講得越具體,它做得越準。你會學到:
- 怎麼啟動互動模式,看懂它的畫面長什麼樣。
- 怎麼下第一個 prompt(指令),用官方推薦的「四要素」寫法。
- 怎麼用
@一個鍵就把專案裡的檔案塞給它讀。 - 怎麼選用哪個模型、讓它「想深一點」或「快一點」。
- 怎麼把截圖、設計稿直接丟給它看。
小提醒
本章所有指令都只談 Codex CLI(終端機版)。Codex 還有雲端版、IDE 擴充、桌面 app,那些的操作不一樣,我們之後會講,別搞混。
重要提醒
Codex CLI 更新很快(這個月就從 0.137 跳到 0.140,幾天一版)。本章對照版本是 0.140.0(2026-06-15)。書上寫的旗標、模型名稱可能會變,任何時候以你電腦上實機跑 codex --help 或在對話裡打 /model 看到的清單為準。
4.1 啟動互動模式,看懂它的畫面
最簡單的開場:打 codex
在你想工作的專案資料夾裡,打開終端機,輸入這個字、按 Enter:
codex
就這樣。Codex 會在你目前所在的資料夾啟動一個互動式畫面(官方叫 TUI,Terminal UI,就是「終端機裡的操作介面」),然後跟你「結對」工作——它能在這個資料夾裡讀檔、改檔、跑指令。
重要提醒
Codex 會直接動你的檔案。官方強烈建議:開工前先用 Git 存個檔(commit),當作隨時可以回去的存檔點。萬一它改壞了,你一鍵就能還原。Git 的用法第 6 章會細講,現在先記得這個習慣。
想在別的資料夾工作?用 -C
如果你人不在那個專案資料夾、又懶得先 cd 切過去,可以用 -C(或寫全名 --cd)直接指定:
codex -C /path/to/project
-C, --cd PATH 會在 Codex 開始工作前,先把工作目錄切到你指定的地方。
TUI 畫面有哪幾塊
進去之後,畫面大致分三塊,先認識一下名字(後面常用到):
| 區塊 | 官方名稱 | 是什麼 |
|---|---|---|
| 最底下的輸入框 | composer | 你打字、下指令的地方 |
| 中間捲動的對話區 | transcript | 你跟 Codex 的來回對話、它的回應與改動 |
| 底部那條狀態列 | status line | 顯示目前用哪個模型、權限模式、token 用量等 |
小技巧
在 composer 裡打一個 /(斜線),會跳出一整排內建指令選單(官方叫 slash 指令,有 40 多個)。例如 /status 看目前設定、/model 換模型。本書會一路教到常用的那幾個。
不想進畫面,只問一句話
有時你只想問一個問題、要一個答案,不想進那個互動畫面。那就把問題用引號直接接在 codex 後面:
codex "explain this codebase"
Codex 會讀你的工作目錄、擬計畫、把回應印在終端機上,然後結束。這叫「一次性(one-off)」用法,很適合快速問一句。
小技巧
一次性用法也能順手指定資料夾和模型,全部串在一起:
codex -C /specific/dir -m gpt-5.5 "your prompt"
更精確一點:這樣算不算「進去了」?
上面說「不想進畫面,那就打 codex "explain this codebase"」,但嚴格來說,這句話還是把你帶進了同一個互動畫面——只是它幫你把第一句話先講好了,你不用自己再對著空白的 composer 打字。Codex 讀完這句話會照樣擬計畫、動手、跟你來回,跟純打 codex 再手動輸入是同一個流程,只差在「開場白」先幫你打好了而已。
如果你要的是真正「不進畫面、跑完就結束、回到終端機」的那種一次性——例如寫進腳本、丟給 CI 跑——官方另外準備了一個獨立指令:
# 非互動、跑完自動結束,別名可簡寫成 e
codex exec "幫 src/utils/date.ts 補上單元測試"
codex exec(別名 e)才是不進互動畫面、專門給自動化場景用的版本。這條指令水很深(非互動模式下核可規則會整個變樣,坑也不少),本書把它獨立成一整章講,見第 10 章。這裡你只要記得:有沒有引號帶 prompt,決定的是「要不要先幫你打第一句話」;要不要真的離開互動畫面,看你打的是 codex 還是 codex exec。
任務比較大,不想直接放手讓它衝?
本章接下來教的都是「一次講清楚、讓它去做」的用法。但如果任務牽涉好幾個檔案、連你自己都還沒完全想清楚該怎麼改,Codex 還有一個先看計畫、你確認過再動手的模式(/plan),完整用法與心法留給第 7 章 7.1整節講解。這裡先讓你知道:不是每次都得「送出去就沒得反悔」。
4.2 第一個 prompt:官方「四要素」寫法
為什麼「講清楚」這麼重要
Codex 很強,但它不會通靈。你給的指令越模糊,它就越要自己「猜」你的意思,猜錯了你還得重來。把需求講清楚,是你能做的最划算的事。
先看一組對比,感受一下差別:
❌ 太模糊:把登入修一下。
✅ 夠具體:登入頁按下「送出」沒反應,幫我修好;改完登入流程要能正常導向首頁。
為什麼對 Codex 要求「更」具體
如果你也用過其他 AI 程式撰寫工具,可能會發現 Codex 感覺起來比較「照你講的做」——你講多細,它就做多細,比較不會自己腦補一堆你沒講的假設去幫你「順便」處理掉。這種照指令精確執行的風格,跟某些偏向「主動推敲你可能想要什麼」的工具不太一樣,社群上不少比較文章都這樣觀察(想看另一種風格,Claude Code 那邊的說人話對照篇可以參考)。實務上的含意很直接:模糊留白,Codex 不太會幫你補上;限制沒講清楚,它可能真的自己發明一個。話講得越到位,落差就越小。
官方推薦的四要素
OpenAI 在官方最佳實務文件裡給了一個好記的範本:稍微複雜一點的任務,prompt 最好包含四個要素。
| 要素 | 它在問你什麼 | 白話說明 |
|---|---|---|
| Goal(目標) | 你想改什麼、做什麼? | 講你要的結果,不要教它怎麼做 |
| Context(脈絡) | 哪些檔案、資料夾、文件、範例、錯誤訊息有關? | 把相關材料指給它(用 @ 提及檔案,見 4.3) |
| Constraints(限制) | 有哪些規範、架構、安全要求要遵守? | 你的紅線、規矩 |
| Done when(完成條件) | 什麼狀態算「做完了」? | 例如「測試全綠」「畫面不再報錯」 |
官方原文是這樣描述四要素的(逐字):
- Goal: What are you trying to change or build?
- Context: Which files, folders, docs, examples, or errors matter?
- Constraints: What standards, architecture, safety requirements apply?
- Done when: What should be true before the task is complete?
官方說,這個結構能讓 Codex「stay scoped, make fewer assumptions, and produce work that's easier to review」——也就是更聚焦、少亂猜、做出來的東西更好檢查。
四要素範本(直接套用)
把下面這段當填空題,丟進 composer:
目標:我要 ____
脈絡:相關的有 @____、@____,錯誤訊息是 ____
限制:要遵守 ____,不要動 ____
完成條件:當 ____ 成立就算完成
一個完整示範:四要素實際長什麼樣
光看填空題可能還是有點抽象,直接看一個寫好的例子——假設你要幫一個既有的 API 加分頁功能:
目標:在 /api/users 這支 API 加上分頁參數 limit 和 offset。
脈絡:@routes/posts.ts 裡已經有分頁寫法可以參考,照同樣的風格做。
限制:不要新增套件;回傳的 JSON 格式要跟現在一樣,只是多加分頁欄位。
完成條件:npm test -- users.pagination 這個測試檔全部跑過。
四行湊起來就是一個完整的任務指派。注意「完成條件」那一行寫的是哪個指令、跑完要是什麼結果,不是「應該會動了吧」這種模糊期待——這個差異在4.6 高手進階會再深談。
Context 這一段還有個小撇步:除了用 @(下一節就會教)把檔案指給它看,怎麼形容這些檔案的關係也有差。實務上,直接說明「這幾個檔案彼此沒有關聯、可以各自獨立看」,Codex 比較容易一次發起好幾個讀檔動作、同一輪就把材料收集完;沒特別講的話,它偏保守,容易一個一個檔案慢慢翻,等待時間也拉長。這不是官方寫死的行為保證,比較像是「講清楚關係、探索效率更好」的實務經驗,提供給你參考。
新手別怕
不是每句話都要硬塞四要素。簡單的「幫我看一下這個檔在幹嘛」直接問就好。任務越大、越怕做歪,就越要把四要素寫齊。
4.3 鍵盤快捷與 @ 引用檔案
一個鍵把檔案塞給它:@
這是最實用的一招。在 composer 裡打一個 @,Codex 會跳出一個模糊搜尋選單,讓你在專案根目錄底下快速找檔案;選好按 Tab 或 Enter,那個檔案路徑就被放進你的訊息裡。
官方原文(逐字):Type @ in the composer to open a fuzzy file search over the workspace root; press Tab or Enter to drop the highlighted path into your message.
0.140.0 起更強了
從 0.140.0 版開始,@ 預設打開的是「統一 mentions 選單」,一個鍵不只搜檔案,還涵蓋 plugins(外掛)和 skills(技能)。一個 @ 就能引用專案裡幾乎任何資源(官方逐字:Typing @ now opens the unified mentions menu for files, plugins, and skills by default.)。
除了打 @,你也可以用 slash 指令 /mention 把一個檔案附到對話裡(官方描述:Attach a file to the conversation),效果類似。
常用鍵盤快捷鍵
下面這些是官方 features 頁逐字列出的快捷鍵,在 TUI 裡很常用:
| 按鍵 | 作用(官方逐字精神) |
|---|---|
@ | 在 composer 開檔案/資源模糊搜尋(見上) |
Ctrl+R | 搜尋你以前打過的 prompt 歷史,Enter 採用、Esc 取消 |
Ctrl+G | 打開外部編輯器寫長 prompt(用 VISUAL 環境變數指定的編輯器,沒設則用 EDITOR) |
Ctrl+O | 複製 Codex 最近一次完成的輸出(等同 /copy) |
Ctrl+L | 清螢幕,但不開新對話 |
Tab(Codex 執行中) | 把後續文字 / slash 指令 / ! shell 指令排到下一回合 |
Esc 連按兩下(輸入框為空時) | 回去編輯你前一則訊息;繼續按 Esc 可往更前面走,按 Enter 從那個點「分叉(fork)」重來 |
小技巧
Codex 正在跑、你又想到要補一句?不用等它做完——按 Tab 先把你的補充排進佇列,它這回合結束就會接著處理。
小提醒
還有些第三方教學說 ! 開頭可以直接跑本機指令(例 !ls)、Alt+, / Alt+. 可以調思考深度。這些官方頁面沒有逐字列出確切按鍵,不同版本可能不一樣。要確定當前版本的真正鍵位,在 TUI 裡打 /keymap(官方功能:重新綁定 TUI 快捷鍵)實機查最準。
4.4 選模型與推理強度(minimal–xhigh)
模型是什麼、為什麼要選
「模型」就是背後那顆真正在思考的 AI 大腦。不同模型有不同的速度、聰明程度、費用。Codex CLI 讓你自由選用哪一顆。
重要提醒
模型名稱會過期得很快。本書寫作時(2026-06-17)官方 Models 頁推薦的旗艦是 gpt-5.5;但你讀到時可能已經換代了。下面的名字僅供示意,請務必以你實機打 /model 看到的清單,或官方 Models 頁為準。旗標的用法(-m、/model)很穩定,模型字串才是會變的部分。
官方目前(2026-06 觀測)推薦的幾個模型:
| 模型字串 | 官方定位(逐字摘要) | 什麼時候用 |
|---|---|---|
gpt-5.5 | 最新旗艦,複雜程式撰寫、電腦操作、知識工作與研究流程 | 多數任務的首選 |
gpt-5.4 | 旗艦級,專業工作的強程式撰寫、推理、工具使用 | 一般專業工作 |
gpt-5.4-mini | 快、省、輕量,適合快速回應的程式撰寫任務 | 想要更快更省、輕量任務 |
gpt-5.3-codex-spark | 純文字(text-only) 研究預覽,近即時迭代,限 ChatGPT Pro | 互動快速迭代(注意它看不了圖) |
重要提醒
官方明確把 gpt-5.2 與 gpt-5.3-codex 標為「對 ChatGPT 登入已棄用(deprecated)」。挑現行推薦的就好,別選到舊型號。
選模型的三種方法
方法一:啟動時用 -m(只影響這一次)
# 短旗標
codex -m gpt-5.5
# 長旗標(等價)
codex --model gpt-5.5
-m <model> 是暫時切換,不會寫進設定檔。
方法二:對話中用 /model(隨時切)
在互動畫面裡打:
/model
會跳出選單,讓你即時切換模型,以及(若該模型支援)推理強度。
方法三:寫進設定檔(永久預設)
在 ~/.codex/config.toml(你的個人設定檔)裡寫一行:
model = "gpt-5.5"
之後每次啟動都預設用它。設定檔的完整玩法第 8 章會專門講。
推理強度:讓它「想深一點」還是「快一點」
有時候你想讓它想得更深(複雜重構、難纏的 bug),有時候只想要快(簡單小改)。這個旋鈕叫推理強度(reasoning effort)。
設定鍵叫 model_reasoning_effort,官方允許這幾個值(由淺到深):
minimal < low < medium < high < xhigh
越往右,它想得越深、越久、越仔細;越往左,回得越快。一個好記的心法:
- 互動式快速回合 → 用淺的(
minimal/low)。 - 複雜重構、除錯、設計決策 → 用深的(
high/xhigh)。
設定方法也有幾種,最常用兩種:
寫進設定檔(永久):
model_reasoning_effort = "high"
或啟動時用 -c 臨時覆寫一次(-c 是「覆寫單一設定」,可重複用):
codex -m gpt-5.5 -c model_reasoning_effort="high"
重要提醒(兩個坑)
model_reasoning_effort只在 Responses API 的模型上有效(官方逐字:Responses API only)。如果你接的是走 Chat Completions 的第三方/本地模型,這個設定可能完全沒感覺。- 最深的
xhigh是看模型而定(model-dependent)——不是每個模型都吃這一檔,不支援時可能無效或報錯。
小技巧
從 0.138.0 版起,/model 選單裡顯示的 effort 等級由模型自己定義(由模型聲明的順序流入選單),所以不保證永遠剛好是 5 個。以選單實際看到的為準。
4.5 附圖前先做資料分級(-i 與貼圖踩坑)
Codex 看得懂圖
Codex CLI 能同時接收「文字 + 圖片」。先確認圖片可安全提供後,再把錯誤畫面截圖、設計稿或流程圖附上;它會連同你的文字指示一起閱讀。典型用途:
- 把報錯畫面截圖丟過去,問「這個錯誤怎麼回事」。
- 附一張設計稿,要它照著切版。
- 丟兩張圖,要它比對。
先花 30 秒分級,才附圖
附圖不是只有「畫面好不好看」:圖片中的文字、帳號資訊與 QR code 都可能一起送出。先確認你有權提供,再依這三類判斷:
- 可直接用:公開素材、自己建立的測試畫面、沒有真實帳號或客戶資料的示範圖。
- 遮罩後再用:姓名、Email、電話、地址、內網網址、訂單編號、帳號、QR code 等可識別資訊。請裁切或用實心色塊覆蓋,另存新檔後再打開檢查;不要只靠模糊效果。
- 不要附:密碼、API key、token、cookie、私鑰、驗證碼,以及未獲授權的客戶、員工、醫療或合約資料。看不確定時,改做一張假資料重現圖。
最重要的一條
Codex 的 agent 不會自己跑去讀某個路徑上的圖。你在文字裡寫個圖片路徑,它通常不會把那當圖片打開(官方社群實測:它會請你「直接貼上圖片」)。圖片一定要用 --image 旗標附加,或在輸入框直接貼上,它才看得到。
最可靠的方法:命令列 -i / --image
這是最穩、最不會出錯的方式。用 -i(或寫全名 --image)把已分級、已遮罩的圖片檔附上:
# 單張已遮罩的圖 + 問題
codex -i sanitized-error.png "說明這個錯誤可能的原因;只提出排查步驟,不要修改檔案。"
# 多張圖(逗號分隔,中間不要有空格)
codex --image public-diagram-1.png,public-diagram-2.jpg "整理這兩張公開流程圖的重點。"
官方對這個旗標的逐字說明:Attach one or more image files to the initial prompt. Separate multiple paths with commas or repeat the flag.
傳多張圖有兩種寫法,都行:
# 寫法一:逗號分隔(路徑之間「不要」有空格)
codex -i path1.jpg,path2.png
# 寫法二:重複旗標
codex -i path1.jpg -i path2.png
實戰組合技:設計稿 vs. 現況截圖,一次丟給它比對
單張圖問問題只是基本功。更有威力的用法是同時丟兩張圖,讓 Codex 自己去看兩者的落差在哪,而不是你自己先肉眼抓完差異、再用文字描述一次(描述通常會漏掉一些你沒注意到的細節):
codex -i design-spec-redacted.png -i current-screenshot-redacted.png \
"第一張是設計稿,第二張是目前畫面。先列出可驗證的差異,不要修改檔案;等我確認後再提出最小修改計畫。"
比起純文字形容「按鈕好像太靠右、顏色好像不太對」,提供兩張已遮罩的圖,通常更容易找出差異。先讓它列差異、由你確認,再決定是否修改;切版與排查 UI 回歸(畫面跟預期不一樣)都適合這個順序。
TUI 裡直接貼圖(最容易踩坑)
你也可以在互動畫面的 composer 裡,直接從剪貼簿貼上圖片。但這一塊跨平台、跨終端機的相容性有坑,要特別小心。
macOS 用 Ctrl+V,不是 Cmd+V!
這是最常見的「貼不上」原因。很多 Mac 使用者直覺按 Cmd+V 會失敗——Codex CLI 目前要按 Ctrl+V 才會把剪貼簿圖片附進去。(官方還有一個 open 的需求單在要求支援 Cmd-V,代表現況確實是 Ctrl-V 限定。)
一個典型的 macOS 截圖→貼圖流程:
- 🍎 Mac:用
Cmd + Shift + 4截圖到剪貼簿。 - 回到 Codex CLI 的輸入框,按
Ctrl+V貼上。 - 加上文字指示,送出。
各平台貼圖鍵:
| 平台 | 貼圖快捷鍵 | 備註 |
|---|---|---|
| 🍎 macOS | Ctrl+V(不是 Cmd+V) | 多來源一致 |
| 🪟 Windows / WSL | Ctrl+V | 終端機相容性影響成敗(見下) |
| 🐧 Linux | Ctrl+V | 需終端機支援貼影像 |
貼圖失敗常是「終端機」的鍋
有些終端機(例如 Ghostty、Alacritty)只能貼文字或檔案連結,沒辦法貼原始影像資料,Codex 就收不到圖。相對地,iTerm2、Warp 對貼圖的支援比較可靠。如果你怎麼貼都失敗,先別怪 Codex——換個終端機,或乾脆改用最穩的 --image 旗標。
變通招與格式注意
- 貼不上圖,就改用
--image:先確認本機檔案已遮罩,再用--image指定它;單純貼上路徑字串不是可靠的附圖方式。 - 支援格式:官方明確背書 PNG 和 JPEG(Codex accepts common formats such as PNG and JPEG.)。BMP / TIFF / SVG / HEIC 這類建議先轉成 PNG / JPEG 再丟。
圖片別太大
官方沒有寫死一個嚴格上限,但實務經驗是:單張圖盡量壓在 5MB 以下;如果是 UI 設計稿、介面截圖這種需要看清楚細節的圖,抓 2MB 以下會更穩(檔案太大有時候會拖慢,甚至直接失敗)。手機直出的照片、沒壓縮的截圖動輒好幾 MB,丟之前養成習慣看一眼檔案大小,卡住時這是第一個該排查的地方。
要用圖片,就別選 gpt-5.3-codex-spark
它是官方標明的純文字(text-only) 模型,看不了圖。挑 gpt-5.5 / gpt-5.4 這類非 text-only 的模型才能讀圖(其中 gpt-5.5、gpt-5.4 官方未逐字標「支援 vision」,屬合理推論,以實機為準)。
自動化也能附圖
寫腳本時用 codex exec -i ...(非互動模式),續接既有對話用 codex exec resume -i ...。codex exec 是把指令塞進機器自動跑的方式,本書第 10 章會專門講。
4.6 🎓 高手進階
這一節給誰看
前面五節你已經會「開口」了。這節是把同樣幾招「榨乾」——同一個 prompt、同一條快捷鍵、同一個模型旋鈕,高手會怎麼用得更省、更準、更不出包。新手可以先跳過,等你天天在用 Codex、開始覺得「token 好像燒很快」「快捷鍵不夠用」時再回來。
⚠️ 心法層(為什麼 prompt 加規則治不了偷工、怎麼用 AGENTS.md 沉澱規則)主要放在大師篇的「進階 prompt 工程與 AGENTS.md 心法」章;本節只講這一章範圍內的實操進階(prompt 怎麼寫、快捷鍵、模型成本),需要更深的請往大師篇翻。
1️⃣ 四要素深用:Goal 寫「結果」、Done-when 寫「可驗的事實」
4.2 教了四要素的「格式」。高手的差別在每一段怎麼寫才讓 Codex 不偷工:
| 要素 | 新手寫法 | 高手深用 |
|---|---|---|
| Goal | 講想做什麼 | 用結果/行為表述,不要寫實作方法。寫死「怎麼做」等於剝奪它自己蒐集脈絡的空間,反而更容易做歪。把方法留給它推理(或進 plan 模式)。 |
| Context | 列相關檔 | 用 @ 精準掛載,給少而準。別把整個 repo 丟進去——context 一膨脹,既吃 token 預算,又稀釋它的注意力。 |
| Constraints | 列限制 | 放這次的安全紅線、不准碰的路徑。但每次都要重述的規則不該寫在 prompt 裡,要沉澱到 AGENTS.md(第 5 章)。 |
| Done-when | 列完成條件 | 這是抗「偷工」的核心。完成條件要寫成機器可驗的外部事實,而不是「看起來對」。 |
官方最佳實務文件對「驗證」給的逐字指引是:create tests when needed, run the relevant checks, confirm the result, and review the work before you accept it——該寫測試就寫、跑相關檢查、確認結果、你自己 review 過再收下。
Done-when 的金句
與其寫「把登入修好」,不如寫「npm test 全綠而且不准改測試」。前者它可以嘴上說「修好了」,後者它賴不掉——測試的退出碼是它無法狡辯的事實。完成條件越像一個「機器能判對錯的事實」,它越沒有偷工的空間。
一個官方點名的反模式(逐字)
Overloading prompts with durable rules — move these to AGENTS.md instead.(別把「長期通用規則」塞進每一次的 prompt,搬去 AGENTS.md。)prompt 只放「這一次的任務」,通用規矩交給專案記憶檔。AGENTS.md 第 5 章會專門講。
2️⃣ 冷門快捷鍵:讓 TUI 更順手
4.3 列了常用快捷鍵。下面這幾個官方有逐字列出、但比較少人知道,熟了很省事(以下皆官方 features 頁逐字精神):
| 按鍵 | 作用 | 什麼時候特別好用 |
|---|---|---|
Ctrl+L | 清螢幕,但不開新對話(≠ /clear) | 畫面被刷爆、想清爽一下,又不想丟掉前面的對話脈絡 |
Ctrl+O | 複製 Codex 最近一次完成的輸出 | 想把它產的一段結果貼到別處(注意:複製的是「已完成」的,不是進行中的文字) |
Tab(它執行中時) | 把後續文字 / slash 指令 / ! shell 指令排到下一回合 | 它在跑、你又想到要補一句,先排隊,它這回合做完就接著處理 |
Esc 連按兩下(輸入框為空時) | 回去編輯前一則訊息;繼續按往更前面走,按 Enter 從那點分叉(fork)重來 | 覺得「剛剛那步講歪了」,不用整段重打,走回那一步換句話再來 |
! 開頭 | 在輸入框直接跑本機 shell(例 !ls) | 想順手看一下檔案、跑個小指令,不用切出去開另一個終端機 |
Tab 排隊是最被低估的一招
很多人會傻等 Codex 跑完才打字。其實它在忙的時候,你照樣可以把下一步先用 Tab 排進佇列——像在櫃台前先把單子遞進去,輪到你就直接處理,不用重新排隊。
0.137.0 起還多了 F13–F24
官方新增支援這些「高位功能鍵」當自訂快捷(多數鍵盤要靠 Fn 或軟體模擬才打得出來),搜尋選單也支援貼上。一般人用不到,但你想綁更多自訂鍵時知道有這層就好。
3️⃣ 用 /keymap 查真實鍵位、甚至自訂
4.3 提過:有些第三方教學說的按鍵(像 Alt+, / Alt+. 調思考深度)官方沒逐字寫死確切鍵,版本之間還會變。要查你這個版本當下真正的鍵位,最權威的方法是在 TUI 打:
/keymap
/keymap 不只能重新綁定快捷鍵,還能 inspect(檢視) 目前每個情境下生效的鍵位,並把你的自訂存進 config.toml。所以「這版到底按哪個鍵」——別查文件,問 /keymap 最準。
想調思考深度的快捷鍵?
官方 0.138.0 確實提到「有 Alt 綁定可調 reasoning effort,缺 Alt 的終端機有 fallback 快捷」,但沒逐字寫死是哪個鍵。真要用,打 /keymap 看你這版的實際綁定,別照網路上的 Alt+, 硬背。
4️⃣ 推理強度的「成本面」:xhigh 不是免費的
4.4 教了 minimal–xhigh 五級「怎麼設」。高手還會算一筆帳:
xhigh比medium大約多燒 3–5 倍 token(同一個 prompt)。想得越深 = 推理(thinking)token 越多 = 越貴、越慢。簡單小修開到xhigh是純浪費。這個 3–5x 是社群量測的量級概念,不是官方保證值,實際依模型/版本變動。以實機用量為準(在 TUI 打
/usage可看每日/每週/累積的 token 活動;打/status看當前 session 的 token 用量)。model_reasoning_effort只在 Responses API 的模型上有效(官方逐字 Responses API only)。接走 Chat Completions 的第三方/本地模型可能完全沒感覺。xhigh還是「看模型而定」(model-dependent)——不是每個模型都吃這一檔,不支援時可能無效。
進階旋鈕:規劃用深、執行用淺。高手會把「想方案」和「動手做」的思考深度分開設。官方 config.toml 有一個獨立鍵 plan_mode_reasoning_effort,讓你只在規劃(plan)階段給高 effort,真正寫 code 時用一般 effort,省下大筆 thinking token(Plan 模式本身怎麼進入、怎麼用,第 7 章 7.1有完整一節):
model_reasoning_effort = "medium" # 平常執行:省
plan_mode_reasoning_effort = "high" # 只有規劃階段:深
日常省錢甜蜜點(可直接抄進 config.toml)
model_reasoning_effort = "medium" # 一般任務的平衡點
model_reasoning_summary = "none" # 不需要推理摘要就關,省 output token
model_verbosity = "low" # 回應更精簡,再省一點 output
⚠️ model_verbosity 官方標註限 GPT-5 系列的 Responses API;這幾個鍵名以你實機 codex --help 或官方 config 參考頁為準。
/model 選單怪怪的?
(少了某個模型、effort 等級數量不對)——可以跑 codex debug models 印出 Codex 實際看到的模型清單(raw JSON catalog),是排查第一手真相。⚠️ 這是官方標 Experimental(實驗性) 的子指令,行為可能變,別寫死進腳本,實機 codex debug models --help 確認。
5️⃣ slash 指令的進階語意(挑幾個常被誤會的)
4.1 提過 / 會跳出 40 多個 slash 指令。這裡補幾個容易誤會或藏比較深的(官方 slash-commands 頁逐字):
| 指令 | 進階語意 |
|---|---|
/experimental | Toggle experimental features——這是在 TUI 裡開啟實驗性功能(含 subagents 子代理)的唯一入口。實驗階段的功能會自己列在這。 |
/debug-config | 印出 config 的分層診斷——查「到底是哪一層設定覆寫了哪個鍵」「企業強制規範擋了什麼」的權威工具。設定沒生效時先問它。 |
/statusline | 挑選/排序底部狀態列要顯示哪些項目(模型/context/用量/git/token/session),選完直接寫進 config.toml。 |
/usage | 看帳號的每日/每週/累積 token 活動(0.140.0 起)。把 token 當錢看時的內建儀表板。 |
/fork | 把當前對話分叉成新 thread——和上面 Esc Esc 走回歷史再 fork 是同一個「分叉重來」的概念,只是用指令觸發。 |
/fast | 切換「Fast 服務層級」,但只有當模型的 catalog 有暴露 Fast tier 時才有效,沒暴露時這指令沒作用。 |
/usage、/import、/delete 的可見性陷阱
這幾個在 0.140.0 的版本說明(release notes)裡有,但官方靜態的 slash 指令清單頁可能還沒列上(文件更新跟不上版本)。打 /help 看你這版實際有哪些最準。其中 /import 官方限定是「從 Claude Code 匯入」。
還有個 /undo 你可能在清單裡找不到
它由一個叫 undo 的 feature flag 控制、而且預設是關的,所以官方 slash 頁查不到。要用得先開:codex features enable undo(持久開)或 codex --enable undo(單次)。⚠️ 此為社群整理、官方頁未逐字,實機 codex features list 確認。
6️⃣ 改到一半卡住、或一直重試?先查兩個常見兇手
大多數時候 Codex 改檔案很順,但偶爾你會遇到它對同一個地方改了又改、或核可視窗一直跳出來要你重新確認,感覺卡在迴圈裡出不來。這裡列兩個實務上常見的成因,遇到時先往這邊查:
| 症狀 | 常見兇手 | 怎麼查 / 怎麼解 |
|---|---|---|
| 同一段文字改了好幾次都失敗 | Codex 修改檔案用的底層機制(官方稱 apply_patch)要求逐字比對檔案目前的實際內容才能套用,不是「大概找到那一段就好」。如果檔案的換行符不一致(部分行 LF、部分行 CRLF,常見於用 Windows 編輯器動過的檔案),它認定的「目前內容」跟實際內容對不上,就會反覆套用失敗。 |
用編輯器把整個檔案的換行符統一成一種(通常是 LF);或請它「先重新讀一次這個檔案再改」,讓它拿到最新的實際內容。 |
| 核可視窗一直跳「command failed; retry without sandbox?」 | 社群回報過某些版本會出現這種迴圈:明明沙箱與寫入都成功,卻還是跳出重試提示。這是特定版本才有的已知現象,不是每一版都會發生。 | 先跑 codex --version 看你的版本號,再去GitHub releases 或 issue tracker 查有沒有對應回報;別看到迴圈就一路照按同意,先確認狀況再說。 |
🪟 Windows 原生啟動卡住、報錯提到 CreateProcessAsUserW |
部分回報指出,從 Windows 市集(WindowsApps)路徑安裝的 codex.exe,某些狀況下啟動子程序會失敗。 |
換一個非市集通路安裝(例如直接下載執行檔,或用套件管理員),或改到第 1 章介紹的 WSL2 裡跑,穩定度通常更好。 |
以上兩個版本相關的現象,務必以你實機為準
「特定版本才有的 bug」本質上會隨著官方修版而消失或改變,不會永遠成立。先 codex --version 確認自己的版本,遇到怪現象時,官方 GitHub issue tracker 是最新狀況的第一手來源,別把某一天查到的舊回報當成長期不變的事實。
如果以上兩個都對不上你遇到的狀況,完整的疑難排解工具箱(codex doctor、RUST_LOG 除錯、網路與憑證問題排查)留給第 16 章整章處理,這裡只先點出跟「叫它寫程式、結果卡住」直接相關的兩個常見狀況。
7️⃣ 任務大到不知道怎麼下手?找另一顆模型幫你先擬 prompt
四要素講起來簡單,但遇到真的複雜、你自己都還沒完全想清楚脈絡的大任務(例如「把整個認證流程換掉」這種),要一次寫出一份講到位的四要素反而很難——你可能連 Context 該列哪些檔案都還沒摸清楚。
一個實務上好用的技巧叫 meta-prompting:先不要急著自己手刻這份 prompt,改成另開一個對話(隨便哪個 LLM 都行),把你的任務描述給它,請它:
- 先研究一下這個功能/模組現在是怎麼運作的;
- 針對你的專案,生出 2–3 個候選的四要素 prompt 版本;
- 你自己逐一檢查每個版本的「完成條件」是不是真的可驗證、任務是不是該拆成多輪而不是一次做完。
挑一個看起來最扎實的版本,再丟進 Codex。這聽起來像繞遠路,但對「你自己都還沒想清楚」的任務,先讓另一顆模型幫你把問題想過一輪,往往比自己憑感覺手刻一份 prompt 更準,省下來的返工時間通常划算。
大任務跑起來後,別手癢中途打斷
丟出一個大任務(不管是不是走 Plan 模式)後,Codex 會花時間累積它自己蒐集到的脈絡。中途手動打斷、改口令它做別的事,等於把這些累積的 context 重置掉,常常比乾脆等它跑完還浪費時間。社群的建議做法是:任務丟出去後隔一段時間(30 分鐘以上)再回來看進度,而不是坐在旁邊一直介入。真的等不及想看目前狀態,用第 6 章教的 /diff 看它目前改了什麼就好,不用直接打斷它的思路。
心法層(reward hacking 為什麼治不了、AGENTS.md 怎麼沉澱規則、plan 模式=流程分離、Done-when 抗偷工的完整論述)在大師篇展開,本節只給這一章範圍內的實操進階。想往更深挖請翻大師篇對應章。
小結
這一章你學會了和 Codex「開口對話」的基本功:打 codex 進互動畫面、用「四要素」把需求講清楚、用 @ 一鍵把檔案塞給它、選模型和調思考深度、把截圖設計稿丟給它看。記住核心心法——講得越具體,它做得越準。
動手試試
- 在一個小專案裡打
codex,然後問一句解釋這個專案在做什麼,看它怎麼讀檔回應。 - 用四要素寫一個小任務(例如「幫某個函式加上錯誤處理」),記得用
@把相關檔案指給它。 - 用自己做的測試畫面或公開圖片練習。若有任何真實資料,先遮罩並另存為
sanitized.png,再跑codex -i sanitized.png "這張圖裡有什麼可改善之處?只列建議,不要修改檔案。"。 - 找一個你熟悉網站的兩張模擬或已遮罩圖片——一張目前畫面、一張改過顏色或文字的「模擬設計稿」——用
codex -i a-sanitized.png -i b-sanitized.png "列出這兩張圖的差異,不要修改檔案"練習雙圖比對。
本章官方文件參考
- CLI 功能與快捷鍵(features):https://developers.openai.com/codex/cli/features
- CLI 指令列旗標(reference):https://developers.openai.com/codex/cli/reference
- Slash 指令清單:https://developers.openai.com/codex/cli/slash-commands
- 模型清單(Models):https://developers.openai.com/codex/models
- 設定參考(config-reference,含
model_reasoning_effort):https://developers.openai.com/codex/config-reference - 最佳實務(四要素 prompting):https://developers.openai.com/codex/cli
- CLI 版本號(GitHub releases,看
rust-vX.Y.Z):https://github.com/openai/codex/releases