Hub Codex CLI 完整教學

第 2 篇 核心 · 第 4 章

用說人話叫它寫程式

篇導讀(第 2 篇 核心)

適合對象——已經裝好 Codex CLI、登入完成,想真正開始「叫它做事」的你。

閱讀方式——打開終端機,在一個你不怕弄壞的小專案裡邊讀邊試。

本篇做完你會——用一句話請 Codex 改檔、修 bug、讀截圖,看懂它的畫面,還會選模型、調思考深度。

涵蓋哪幾章——第 4 章(說人話下指令)、第 5 章(AGENTS.md 專案記憶)、第 6 章(Git 與安全動手)。

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 會跳出一個模糊搜尋選單,讓你在專案根目錄底下快速找檔案;選好按 TabEnter,那個檔案路徑就被放進你的訊息裡。

官方原文(逐字):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.2gpt-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"

重要提醒(兩個坑)

  1. model_reasoning_effort 只在 Responses API 的模型上有效(官方逐字:Responses API only)。如果你接的是走 Chat Completions 的第三方/本地模型,這個設定可能完全沒感覺。
  2. 最深的 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 截圖→貼圖流程:

  1. 🍎 Mac:Cmd + Shift + 4 截圖到剪貼簿。
  2. 回到 Codex CLI 的輸入框,按 Ctrl+V 貼上。
  3. 加上文字指示,送出。

各平台貼圖鍵:

平台貼圖快捷鍵備註
🍎 macOSCtrl+V(不是 Cmd+V多來源一致
🪟 Windows / WSLCtrl+V終端機相容性影響成敗(見下)
🐧 LinuxCtrl+V需終端機支援貼影像

貼圖失敗常是「終端機」的鍋

有些終端機(例如 Ghostty、Alacritty)只能貼文字或檔案連結,沒辦法貼原始影像資料,Codex 就收不到圖。相對地,iTerm2、Warp 對貼圖的支援比較可靠。如果你怎麼貼都失敗,先別怪 Codex——換個終端機,或乾脆改用最穩的 --image 旗標。

變通招與格式注意

  • 貼不上圖,就改用 --image:先確認本機檔案已遮罩,再用 --image 指定它;單純貼上路徑字串不是可靠的附圖方式。
  • 支援格式:官方明確背書 PNG 和 JPEGCodex 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.5gpt-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 起還多了 F13F24

官方新增支援這些「高位功能鍵」當自訂快捷(多數鍵盤要靠 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 教了 minimalxhigh 五級「怎麼設」。高手還會算一筆

  • xhighmedium 大約多燒 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 頁逐字):

指令進階語意
/experimentalToggle 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 doctorRUST_LOG 除錯、網路與憑證問題排查)留給第 16 章整章處理,這裡只先點出跟「叫它寫程式、結果卡住」直接相關的兩個常見狀況。

7️⃣ 任務大到不知道怎麼下手?找另一顆模型幫你先擬 prompt

四要素講起來簡單,但遇到真的複雜、你自己都還沒完全想清楚脈絡的大任務(例如「把整個認證流程換掉」這種),要一次寫出一份講到位的四要素反而很難——你可能連 Context 該列哪些檔案都還沒摸清楚。

一個實務上好用的技巧叫 meta-prompting:先不要急著自己手刻這份 prompt,改成另開一個對話(隨便哪個 LLM 都行),把你的任務描述給它,請它:

  1. 先研究一下這個功能/模組現在是怎麼運作的;
  2. 針對你的專案,生出 2–3 個候選的四要素 prompt 版本;
  3. 你自己逐一檢查每個版本的「完成條件」是不是真的可驗證、任務是不是該拆成多輪而不是一次做完。

挑一個看起來最扎實的版本,再丟進 Codex。這聽起來像繞遠路,但對「你自己都還沒想清楚」的任務,先讓另一顆模型幫你把問題想過一輪,往往比自己憑感覺手刻一份 prompt 更準,省下來的返工時間通常划算。

大任務跑起來後,別手癢中途打斷

丟出一個大任務(不管是不是走 Plan 模式)後,Codex 會花時間累積它自己蒐集到的脈絡。中途手動打斷、改口令它做別的事,等於把這些累積的 context 重置掉,常常比乾脆等它跑完還浪費時間。社群的建議做法是:任務丟出去後隔一段時間(30 分鐘以上)再回來看進度,而不是坐在旁邊一直介入。真的等不及想看目前狀態,用第 6 章教的 /diff 看它目前改了什麼就好,不用直接打斷它的思路。

心法層(reward hacking 為什麼治不了、AGENTS.md 怎麼沉澱規則、plan 模式=流程分離、Done-when 抗偷工的完整論述)在大師篇展開,本節只給這一章範圍內的實操進階。想往更深挖請翻大師篇對應章。

小結

這一章你學會了和 Codex「開口對話」的基本功:打 codex 進互動畫面、用「四要素」把需求講清楚、用 @ 一鍵把檔案塞給它、選模型和調思考深度、把截圖設計稿丟給它看。記住核心心法——講得越具體,它做得越準

動手試試

  1. 在一個小專案裡打 codex,然後問一句 解釋這個專案在做什麼,看它怎麼讀檔回應。
  2. 用四要素寫一個小任務(例如「幫某個函式加上錯誤處理」),記得用 @ 把相關檔案指給它。
  3. 用自己做的測試畫面或公開圖片練習。若有任何真實資料,先遮罩並另存為 sanitized.png,再跑 codex -i sanitized.png "這張圖裡有什麼可改善之處?只列建議,不要修改檔案。"
  4. 找一個你熟悉網站的兩張模擬或已遮罩圖片——一張目前畫面、一張改過顏色或文字的「模擬設計稿」——用 codex -i a-sanitized.png -i b-sanitized.png "列出這兩張圖的差異,不要修改檔案" 練習雙圖比對。

本章官方文件參考