最近 ihower 在 AI Engineer 看 OpenAI Codex 的筆記裡提到一個觀察: 他把日常寫程式從 CLI 工具搬到了 Codex,而且更推薦桌面 App 版本而不是 CLI。小編覺得這個判斷蠻準的: 等到大家把人機互動的模式摸清楚之後,設計良好的 GUI 終究會超越純命令列的體驗。

OpenAI 對 Codex App 的投入,確實比 CLI 下了更多功夫。這篇就來條列幾個「只有 GUI 才辦得到」的特色,很多都是 CLI 裡根本想像不到的玩法。主軸參考自 Jason Liu (jxnl) 的 Codex-maxxing,加上近期幾波官方更新。各特色也附上官方文件連結方便深入。

1. Appshots: 把畫面外的內容也一起餵進去

按住左右兩顆 Command 鍵 (快捷鍵可改),Codex 就會把你滑鼠所在的視窗截圖,自動塞進輸入框。

你會說這不就是截圖而已嗎? 不,不只是截圖而已,它連畫面上的文字,甚至畫面外的文字也會一起傳入,超猛。舉例來說,你在看一份 Google Doc 拍 appshot,已經捲出畫面外的內容也會被讀進去。這跟 computer use 一樣,拿得到 App 裡的完整文字,而不只是肉眼可見的那一塊。(官方文件: Appshots)

實務上很有感: 以前在瀏覽器看到一個 bug、在設計稿看到一個要實作的介面,得自己截圖貼上、再打字補充脈絡。現在一個快捷鍵就把完整上下文帶進去了。

2. Remote control: 手機就能好好操控

Codex 可以從 ChatGPT 手機 App 遠端控制你的 Mac,連螢幕鎖定的狀態下也能跑。iPhone 上的操作體驗做得相當完整,不只是看進度而已。

而且 Linux 上的 Codex 也能被遠端遙控,不一定要 Mac 裝 Codex app 才行。有趣的是官方文件沒寫這段,可能還算是個隱藏功能 🤣 指令是在那台 Linux 上跑 codex remote-control,它就會起一個 Codex server,然後你用 Mac 或手機上的 Codex app 就能去遙控這台機器。ihower 實測拿 Ubuntu Desktop 來遠端遙控、打開 Chrome 都沒問題,比 SSH connect 好用多了。

編按: 官方文件: Remote connections、公告 Work with Codex from anywhere。文件主要寫 Mac/Windows 當 host,Linux 的 codex remote-control 走法目前沒明說。

3. $browser、@chrome、@computer: 三種上網/操作介面

GUI 版把「讓 Agent 去操作介面」拆成三個情境:

  • $browser: 側邊面板裡的內建瀏覽器。特別適合在開發網頁時用: 你跟 Codex 看著同一個正在跑的頁面,直接在元素上標註、留言、要求調整,它就照著改、即時重新整理給你看,是前端 UI 迭代的好搭檔。(官方文件: Browser)
  • @chrome: 接你已登入狀態的 Chrome,跑以瀏覽器為基礎的工作流。值得一提的是它可以在背景同時跑多個分頁: 每個任務開一個 tab group,做完自動清掉,只在需要你 review 時才把分頁交還,所以你照常用瀏覽器它也不打架。適合在登入後的網站做 deep research、把資料大量搬進 CRM/CMS,或自動化內部後台的重複操作。(官方文件: Chrome extension)
  • @computer: 用於那些只能透過桌面 GUI 才存在的工作。它一樣可以在背景跑: 交辦下去之後,agent 在桌面背景中執行,你可以繼續手邊的工作,互不干擾。能讓程式在背景操控其他 Mac app、又不破壞前景使用體驗,核心技術是 OS 層級的 sandbox: 每個 agent 都有自己獨立的滑鼠指標,可以平行跑。(官方文件: Computer use)

4. 語音輸入: 在任何地方都能用快捷鍵口述

Jason 認為語音輸入的價值在於: 它能在想法被壓縮成精緻文字「之前」,先捕捉到那個粗略原始的版本。像「去找一下 Ben 在 Slack 提過的那個東西」這種帶著語感的指令,用打字反而會懶得寫完整。

而且這是 App 內建的,不用另外買 Whisper Flow 之類的語音輸入工具、也不用另外裝什麼。設好快捷鍵後,你在任意地方都能直接口述。

編按: 如果你用外接麥克風,記得去 Mac 的音量/麥克風設定改一下預設輸入裝置,不然會抓錯。

5. Steering 與 Queuing: 它還在跑,你就先打字

情境是這樣: Codex 還在輸出、還在跑工具,你不必等它停下來才動。直接在輸入框打字送出,這則訊息會有兩種用法:

  • Steering (插隊改方向): 不等當前步驟做完,立刻打斷它、塞進新的指示。適合你看著它正往歪的方向走、想即時修正的時候,例如「這個改小一點」「不對,先別動資料庫」。
  • Queuing (排隊接著做): 不打斷當前步驟,讓這則訊息排進佇列,等它把手上這步做完再接著執行。適合你已經想好下一步、想先交代起來放著,例如「跑完記得順手開個 PR」「接著把測試補上」。

差別就在「現在就插話」還是「等它講完再講」。其實 CLI 也做得到,但你得記住快捷鍵才能正確切換這兩種行為; GUI 則是直接把選項攤在介面上讓你點選,一看就懂該按哪個,不用背指令。

6. 釘選 threads: 長執行緒重新變成可行解

Jason 為每一條他在意的重要工作流,都保留一條釘選的對話串,讓這些持久性執行緒隨手就在附近。這些 thread 會累積歷史與決策,變成耐久的紀錄,而不是用完即丟的對話。

有意思的是,「讓單一執行緒一直長期跑下去」過去常被視為 anti-pattern,但現在可以重新考慮這樣用。不過小編覺得這有個前提: 你心智上要很清楚自己會用到 sub-agents 來分流,不能把所有東西都硬塞進同一條主線。這點 Codex-maxxing 那篇講得蠻細的,值得一讀。

7. Fork: 從任意一則 AI 輸出岔出一條新 thread

在 GUI 上你可以對之前任意一則 AI 的輸出點「fork」,當場拆出一條新的 thread,從那個點接著走別的方向,原本那條對話原封不動。

最常見的用法是岔題不弄亂主線: 你在一條 thread 裡正做著功能 A,半路發現一個 bug,與其在原本對話裡插一段把脈絡攪亂,不如直接從當下這則訊息 fork 出去,在新 thread 裡專心修 bug,而它先前累積的東西 (摸熟的 codebase、剛討論好的計畫) 全都帶著走。或者你剛跟它把一份計畫討論完,想分頭深入其中一塊、又不想動到計畫主線,fork 一下就有一條乾淨的分支。

其實 CLI 也有 /fork,但痛點在於很難指定「要從哪一則訊息岔出去」(社群裡就有人抱怨對話開頭都長得一樣,根本分不出該 fork 哪一條)。GUI 把整條 transcript 攤在眼前,你直接點那一則輸出就能 fork,分岔點一目了然,這種操作真的是要有圖形介面才順手。

8. 平行多工: 一個視窗同時跑很多條任務

Codex App 的介面左側欄就是一條 threads list (對話列表),每一條 thread 是一個獨立的任務。你在同一個視窗裡可以同時跑多條 thread、各自獨立推進,左欄掃一眼就知道每條跑到哪、哪條已經跑完、哪條卡住要你處理。可以一邊讓它在背景重構某個模組,一邊在另一條 thread 修 bug,點一下左欄就切過去,互不干擾。

這在 CLI 上特別痛: 純命令列一個視窗就是一條對話,想平行就得自己開一堆終端機分頁、自己記哪個在做什麼。也因此市面上冒出一大票工具專門來補這個洞,像 cmux 這種「同時驅動多個 coding agent」的調度工具,連 Claude Code 最近也補上了 Agent View,讓你從一個畫面派發、管理多條 session。Codex App 則是一開始就把平行多工內建在介面裡,不用外掛。

9. Thread automations: 排程喚醒、回到同一條執行緒

這個概念很像 openclaw 的 Heartbeat: 週期性的喚醒呼叫,依排程回到同一個 Codex 執行緒繼續推進,而不是每次都從頭開一個新的。

支援分鐘級的頻繁輪詢,也能設每日/每週的定時 check-in。它特別適合做回饋迴圈: 監看 pull request 留言、Google Docs 留言或 Slack 回覆,在你不在座位時持續推進周邊工作。寫 automation prompt 時要交代清楚「每次醒來該做什麼」「怎麼判斷有沒有重要發現」「何時該停下來問人」。(官方文件: Automations)

10. 側邊面板: 就地檢視各種工件

這大概是 GUI 相對 CLI 最直覺的勝場。側邊面板讓你可以就地檢視 Markdown、試算表、資料表、文件和投影片,還有 terminal、瀏覽器、檔案瀏覽。

關鍵在於你和 Agent 看的是同一份工件: 不用中斷流程,就能檢查、標註、修訂。配合進階註記模式,甚至可以在內建瀏覽器裡直接拖拉、調整頁面元素並留批注,多條修改攢成一批一起送。對設計師和前端協作來說,再也不用截圖畫圈寫「這裡往左移 10px」了。git diff 的 code review 也一樣: 右側直接看變更、逐行留 inline 註解、挑 chunk 分段 commit,全程不離開 App。

11. 影像生成: 在開發流程裡直接生圖

這是 OpenAI 自家有影像模型 (GPT-Image-2) 才辦得到的整合: 你可以直接在對話裡叫 Codex 生成或編輯圖片,不用切到別的工具或另外接 API。大多數人最直接的用法,就是在做 UI 素材、banner、背景、插圖、遊戲 sprite sheet、投影片 mockup 時,能更穩定地一張接一張持續生成,要幾張生幾張、要微調再讓它改,整個過程都在同一條 thread 裡完成。

進階玩法: 先生 UI 圖,再讓 Codex 對照寫 code

再往前一步,OpenAI 的 dkundel 分享過一個更有意思的方向: 一般像 Claude 那種「用 AI 設計網頁」是直接生 code 把畫面長出來; 而 Codex 這裡可以反過來,先用 GPT-Image-2 生出一張 UI 設計圖,再讓 Codex 對照那張圖去產生對應的 code,先有視覺、再有實作。他的完整玩法是: 手上沒設計稿時先請 GPT-Image-2 生一張 UI,當成規格交給 GPT-5.5 寫成真正的 app,過程中用內建瀏覽器驗證,還能順手生出 app 需要的素材來潤飾;「Build Web Apps」外掛就把這條迴圈包成一個 skill。小編還沒認真比較過這兩條路線 (直接生 code vs 先生圖再對照) 的優劣,但這個創新用法蠻值得玩玩看的。(原文)

12. 長任務 Goals: 用側邊面板盯一個跑很久的目標

/goal 這個功能本身 CLI 也有: 給一個目標,它就一路執行到完成,過程可能橫跨數小時甚至數天。GUI 的差別在於「怎麼看進度」可以做得很舒服。(官方文件: Follow goals)

banteg 的用法很巧妙: 讓 goal 一邊跑、一邊產出一個 HTML 進度儀表板,直接用 Codex 內建瀏覽器開在側邊面板。左邊是 Agent 在做事,右邊是即時更新的圖表和指標 (完成度、匹配率、各 commit 的進展),一眼就看到跑到哪了。

goal 一邊跑,側邊面板開著即時更新的 HTML 進度儀表板

圖片來源: banteg on X

另一招是 dotey 提到的 /side: 對一個跑很久的 goal,開一個 side chat 不影響主任務、又帶著完整上下文,直接問「目前進度如何? 還要多久?」。

要補一句 Jason 強調的: 目標的品質決定一切。弱的目標像「把這份 Markdown 實作出來」,強的目標帶著可衡量的成功標準。他做 Rich 轉 Rust 的遷移時,直接拿原本的測試套件當驗證標準。「執行的成效,頂多只會跟你給的目標與驗證一樣好。」沒有 oracle 的長任務,跑再久也只是漂移。


回到最初的問題: 為什麼這些是 GUI 才辦得到的?

Jason 在 Codex-maxxing 裡點得很到位: 側邊面板讓 Codex「不再只是一個聊天 App,而開始變成工作真正發生的地方」。重點不只是 Codex 能產出工件,而是你能在不打斷迴圈的情況下,當場檢視並標註它。這正是 CLI 結構上做不到的: 命令列的輸出跑完就消散,你沒辦法跟 Agent 盯著同一份試算表、同一張投影片邊看邊改。GUI 把「對話」升級成「工作台」,這是純文字介面塞不進來的東西。

編按: Jason 另一篇 用 Codex 做晨間簡報的六個複雜度層級 也很值得一讀。他用大家都懂的「晨間簡報」當例子,從最陽春的一句 prompt,一層層加上連接器、個人化預設、排程自動化、分專案執行緒、自動草擬回覆、持久記憶庫,示範怎麼把一個小工作流調教成「你工作的迷你作業系統」。核心心法是: 先從新手也懂的版本開始,每次只加一個真正的能力,直到整個系統的形狀自己浮現出來。

還有一點別忘了: 對非工程師來說,CLI 的上手門檻其實還是偏高。要開終端機、要記指令、要懂一堆參數,光是這關就把很多設計師、PM、行銷的人擋在外面了。Appshots、就地標註、點選式的操作這些 GUI 設計,等於把參與 AI 開發流程的門檻一口氣拉低,讓不寫 code 的人也能直接上手。

CLI 仍然有它輕快、可組合、好自動化的價值,而且可以跑在沒有圖形介面的 Linux server 上,方便接進 CI、排程或各種自動化腳本,這是 GUI 取代不了的。而 Codex App 特別用心經營的,是人機協作: 把人跟 Agent 並肩工作的每個環節都做得更順手。當協作的對象從工程師擴大到設計師、PM、各種角色時,一個夠好的 GUI 能裝下的東西,是命令列怎麼也塞不進來的。