
Codex 進階操作:追加指令、遠端接手與備份管理
整理 OpenAI Codex 的四組進階操作:任務進行中用導引與排隊追加指令(含 CLI、IDE 延伸功能、桌面 App 的鍵位差異)、手機 Remote 遙控主機遠端接手、Handoff 跨主機交接與搬移後的權限重算,加上專案與封存對話整理、Claude Code 與 Cursor 匯入、~/.codex 與 worktree 備份管理、SQLite 狀態庫 -wal/-shm 檔案成因,以及換機整備、停機、還原、驗證四段流程。
- Codex 進階操作
- Codex 追加指令
- Codex steer queue
- Codex Remote 遠端
- codex resume
- codex apply
- Codex Handoff 交接
- AGENTS.md 備份
- Codex worktree
- Codex 對話整理
- Codex 封存對話
- Claude Code 匯入 Codex
- Cursor 匯入 Codex
- Codex CLI 教學
- Codex 換電腦備份
- Codex Enter Tab 鍵位
- Codex IDE 延伸功能
- Codex follow up 排隊
- CODEX_SQLITE_HOME
- Codex WAL 檔案
- Codex 換機備份
- Codex 備份還原
- Codex Handoff 權限
約 41 分鐘閱讀作者:Whoops 編輯團隊
把第一個任務交給 Codex 之後,真正的問題才開始:任務跑到的方向不對,能不能中途喊停轉向?人離開座位,手機上接得手嗎?累積了幾十個對話,怎麼整理才不會變成一團亂?換電腦、換工具的時候,哪些檔案該帶走?這四件事對應的是 Codex 的四組進階操作:追加指令、遠端接手、對話與資料夾整理、檔案結構與備份管理。還沒裝起來的人,先照站上的Codex 安裝指南把工具放到機器上;概念與第一個任務的完整教學,在Codex 入門解析,這裡直接往操作層走下去。
先講結論。追加指令有兩種插入方式:官方提示指南把「把訊息加進當前這輪」稱為 steer(導引),「存起來等下一輪」稱為 queue(排隊),桌面 App 可調整預設行為,CLI 則用 Enter 與 Tab 區分,兩者語意相通。遠端接手有兩條路:任務跑在 OpenAI 雲端的,關掉電腦也照跑,從網頁或手機回來看就好。任務跑在自己電腦上的,用 ChatGPT 行動 App 的 Remote 功能遙控主機。對話整理的核心是把「專案」當資料夾用,把釘選、改名、封存當檔案櫃的抽屜用。備份管理的關鍵則是知道 Codex 在磁碟上留下了哪些東西:個人設定與對話紀錄、專案裡的 AGENTS.md 與 .codex 資料夾、還有 worktree 的快照機制。這篇文章的後半再處理四個容易出錯的細節:跨介面的鍵位語意、磁碟上多出來的狀態庫檔案、換機搬遷的完整流程,以及對話搬移之後權限怎麼重算。
四個主題分十三節展開:追加指令的兩種插入方式、跨介面的鍵位地圖與三個操作誤解、長任務的 Goal mode、雲端任務的追加與回收、手機接手電腦的 Remote、跨主機交接與 SSH、對話搬移後的權限重算、對話與資料夾整理、從其他代理工具搬家、檔案結構與備份地圖、狀態庫檔案的成因、換機的完整流程,收尾給一份操作檢查清單。要動手跟著做的讀者,CLI 段落可以先翻〈CLI 命令列入門〉補一下終端機基本觀念,Git 版控不熟的讀者則建議搭配〈給非工程師的 Git 版控入門〉。
資料口徑先說清楚:功能名稱、鍵位、路徑、指令與日期,取自 OpenAI 官方文件(learn.chatgpt.com 的 Codex 文件集),抓取時點為 2026 年 9 月 17 日,新增段落複核至同年 9 月 28 日。Codex 的介面與功能迭代很快,官方每週更新常常一次推一整批改動,實際動手前值得回到官方頁核對當天狀態。
快速重點整理
- 追加指令:桌面 App 可在設定裡調預設行為,排隊訊息會停在輸入框上方等待。CLI 按 Enter 注入當前輪、按 Tab 排到下一輪。
- 長任務:/goal 設定目標後可暫停、續跑、編輯,進行中仍可續送追加訊息。
- 雲端任務:從網頁、GitHub、GitLab、Linear、Slack 都能發起,終端機可用 codex cloud 派工、codex apply 把 diff 套回本機。
- 遠端接手:手機 Remote 遙控 Mac 或 Windows 主機,可下指令、核准命令、看 diff。主機要喚醒且連線。
- 對話整理:專案=資料夾,對話可釘選、改名、封存。CLI 端有 /new 命名、分區、codex resume 與 codex archive。
- 備份管理:個人設定與對話紀錄依實際位置備份,可共享的 AGENTS.md 與經審查不含機密的專案 .codex 設定可進 Git,受管 worktree 刪除前有快照可還原。
- 鍵位:CLI 按 Enter 導引當前輪、Tab 排到下一輪;IDE 延伸功能預設是送出後等下一輪,Cmd 加 Shift 加 Enter 臨時反向;桌面 App 的預設在設定裡自選。
- 狀態庫:代理工作的中繼狀態存成 SQLite 資料庫,位置由 sqlite_home 與 CODEX_SQLITE_HOME 控制,旁邊的 -wal、-shm 是 WAL 模式附檔,正常關閉會自動收合,不要手刪。
- 換機與搬移:備份照整備、停機、還原、驗證四段走;對話 Handoff 之後權限依目的地主機重算,移交前先過資源、政策、專案、機敏四個檢核點。
追加指令的兩種插入方式:導引與排隊
很多人對「追加指令」的理解停在「等它做完再說」,但其實 Codex 在工作中收訊息的行為有兩種,差別在於訊息什麼時候生效。官方提示指南的定義很乾淨:steer 是把訊息加進當前這一輪,用於改方向、補一個漏掉的細節、或把新資訊交給它。queue 則是把訊息存起來,等當前工作完成後的下一輪才送出。一句話分辨:現在就要轉向的用導引,等這輪收尾後才該做的用排隊。

實際會用到的追加情境,官方給了四種示範:補一個漏掉的來源、修正走偏的方向、要求另一個方案、調整內容的詳略程度。這四件事有個共同點,就是不必重起爐灶:第一個提示本來就只是起點,後續訊息是流程的一部分。把這個觀念內化之後,下提示會變得輕鬆:先送一個八九成把握的方向,看到它的理解與規劃,再用追加訊息修到精確,比起第一次就要寫出完美提示務實得多。
在 ChatGPT 桌面 App 裡,這個行為有預設值可調:設定中「一般」區的 Follow-up behavior 可以指定送出訊息時預設要導引還是排隊,設定頁同時顯示「單則訊息臨時改用另一種行為」的快捷鍵,讓你保住預設又保留彈性。排隊的訊息不會消失,它們停在輸入框上方,可以編輯、重新排序、直接送出或刪掉。這個設計值得留意:排隊區是個待辦清單,不是垃圾桶。任務跑完回頭清一遍排隊區,常能發現自己半小時前想到但忘了追蹤的修正。
CLI 端的鍵位對應同樣的語意,只是換成按鍵:Codex 工作時按 Enter,是把新指令注入當前這輪(導引)。按 Tab,是把訊息排到下一輪。Tab 能排隊的內容不只文字提示,斜線命令和 shell 命令也能一起排,官方命令列參考把它列在互動快捷鍵清單裡。本輪結束後想接著查狀態時,可以先輸入 /status 再按 Tab 排到下一輪,任務一收尾它就會執行。常寫指令稿的人還有一個習慣值得借用:把「下一輪要跑的驗證命令」先排進佇列,任務一收尾驗證就接著跑,中間零等待。
CLI 用久了還有一個值得認識的儀表:/status 顯示 session 設定與 token 用量,用來確認作用中的模型、核准政策、可寫目錄與剩餘的上下文容量。長任務跑到中段覺得它開始忘東忘西,先看 /status 再決定是要換模型、收斂對話還是開分支,比憑感覺重來一輪省事。
還有一個少人知道的復原技巧:輸入框空著時連按兩次 Esc,可以編輯你上一則送出的訊息,並從那一點分岔出新的對話分支。這等於把「剛才那句 prompt 寫歪了」從災難變成一次改稿,特別適合探索型的任務:先送一個粗略方向,看到它的理解和規劃之後,回頭把訊息改精確,從乾淨的分岔點重新開始,省掉在不精確上下文裡硬修的工夫。分岔出的新對話也繼承原對話的脈絡,探索成本很低。
時間線上,這套機制是逐步長出來的:2026 年 2 月上旬的官方每週更新記錄了中途導引(mid-turn steering)上線,讓使用者不必停止進行中的回應就能重新導向,附件類型也在同一批擴充到圖片以外。換句話說,追加指令早已超越再傳一則訊息的層次,是一套能精確控制生效時點的導引系統。
同一顆 Enter,三種介面:鍵位地圖與三個操作誤解
導引與排隊的觀念學會之後,最容易踩的坑不在概念,在鍵位:同一個「任務進行中按 Enter」,在 CLI、IDE 延伸功能、桌面 App 三種介面的預設行為不一樣,其中兩個剛好相反。以 2026 年 9 月下旬的官方設定參考為準,對照如下。
| 介面 | 任務進行中按 Enter | 臨時反向 | 預設與自訂位置 |
|---|---|---|---|
| CLI | 導引:注入當前這輪 | 改按 Tab 即排到下一輪,兩顆鍵互為反向 | 鍵位固定但可重綁:/keymap 寫入 tui.keymap |
| IDE 延伸功能 | 排隊:等下一輪才生效(預設值,採預設送出鍵時) | Cmd 或 Ctrl 加 Shift 加 Enter,單則訊息改成導引 | chatgpt.followUpQueueMode 可改成 steer |
| 桌面 App | 依設定而定的預設行為 | 設定頁顯示的單則訊息快捷鍵 | 設定、一般、Follow-up behavior 自選導引或排隊 |
官方IDE 設定參考把延伸功能的預設值設為 queue,並明載「按 Cmd 或 Ctrl 加 Shift 加 Enter 可為單則訊息反轉行為」。對照前節 CLI 的 Enter 導引、Tab 排隊,就會發現同一顆 Enter 在 CLI 是插隊、在 IDE 延伸功能預設卻是排隊。桌面 App 的預設值在設定參考的 General 區自選,設定頁會同時顯示單則訊息的臨時反向鍵;同一頁還有一個「Require Cmd+Enter for multiline prompts」選項,那是在調多行輸入時的送出方式,跟導引排隊無關,別把它當成反向鍵;延伸功能另有 composerEnterBehavior 設定,若設成一律要修飾鍵才送出,單按 Enter 根本不會送出訊息,套用上表前先確認自己的送出鍵設定。鍵位看起來不一致不是官方失誤,而是三個介面的輸入模型本來就不同:CLI 有專用的 Tab 排隊鍵,IDE 與 App 的輸入框則靠修飾鍵切換。
鍵位對照表回答了「現在按下去會怎樣」,實務裡還有三個操作誤解值得逐一拆開:第一個出在這張表的落差上,後兩個則是跟著這套操作模型出現的檔案層誤解,各對應後文一節。
誤解一:「Enter 的行為跨介面一致」。照上表,CLI 學到的手感直接搬到 IDE 延伸功能,你以為在轉向,實際上訊息排到了下一輪,方向錯了整整一輪。解法不是背三套鍵位,是換介面的第一天先做一次三十秒實驗:任務進行中送一句「停下來先回報目前進度」,看它是立刻轉向還是出現在排隊區,預設行為當場確認。團隊文件裡看到的鍵位也要留一手:CLI 的 /keymap 能把綁定寫進 tui.keymap(官方示例的綁定名稱如 ctrl-a、shift-enter),別人文件裡的 Enter 手感可能是他自訂過的。
誤解二:「~/.codex 裡多出來的 -wal、-shm 檔是快取垃圾,刪一刪省空間」。這兩個附檔是 SQLite 狀態庫的正常組成:一個是寫入前日誌,一個是配套的共享記憶體索引,程式活著的時候它們就該存在,刪掉反而可能讓對話中繼狀態受損。成因與安全的管理方式,見「狀態庫檔案的成因」一節。
誤解三:「換機備份就是隨時把整個資料夾複製貼上」。整包直拷有兩個陷阱:一是抄到寫入進行中的狀態庫,二是把 auth.json 這類憑證檔混進一般備份管道。換機該照整備、停機、還原、驗證四段走,細節見後文「換機的完整流程」一節。
長任務的駕馭術:Goal mode 的暫停與導引
追加指令處理的是「這一輪」的修正,目標可能橫跨數小時到數天的工作就需要另一層控制。Goal mode 是官方給長任務的答案:在桌面 App、CLI 或 IDE 延伸功能裡輸入 /goal,目標文字會同時成為第一個提示與完成條件,Codex 據此自我檢查進度。它已在 2026 年 5 月脫離實驗狀態,三個本機介面都能用。
目標跑起來之後,桌面 App 可以透過進度列暫停、續跑、編輯或清除目標,CLI 則用 /goal pause、/goal resume、/goal edit 與 /goal clear 做對應操作。進行中你仍然可以送追加訊息補脈絡、調整約束,與前述的導引排隊是同一套邏輯疊在更長的時間軸上。想要進度摘要又不想打斷主對話時,官方建議開一個側邊對話(side chat)去問,主線照跑不誤。結果還很模糊的任務,先從 /plan 起步:讓它訪談你、找出約束、把結果轉成帶可驗收條件的目標,再交給 /goal 執行。這個順序的好處是把「定義完成」的責任放在起點,免得每次收工都憑感覺判斷做完了沒有。
寫目標本身有公式可循:官方建議包含結果(描述要的產出而非活動)、約束(指定必用工具、邊界、相容性或該避開的做法)與驗證(測試、量測或審查標準)三個元素。把驗證寫進目標,Codex 才有辦法自我檢查進度,避免回報一堆「看起來很忙」的中間產物。
幾個實務提醒。安全邊界上,啟動目標不會擴張權限:沙箱與核准政策照舊,需要決策時照樣暫停下來問你。預期會失去連線前,官方文件建議先暫停目標,準備好讓 Codex 繼續時再恢復。本機長任務搭配的系統設定是「執行時防止休眠」,讓 Mac 在工作期間保持清醒。費用上,本機訊息與雲端對話共享同一個方案額度,且可能另有週限,長任務掛著過夜之前,看一眼額度是便宜的保險。
雲端任務的追加與回收:交辦之後怎麼接手
另一個追加場景發生在雲端。Codex cloud 把任務放進隔離的雲端環境平行跑,起點不只網頁一處:GitHub、GitLab、Linear、Slack 都能發起,官方雲端文件列出的適用情境之一,就是你人不在開發機前,照樣能從網頁或 CLI 啟動與審查工作。雲端任務的一個關鍵性質是不依賴你的電腦:關掉桌面 App,任務繼續跑,之後從網頁或行動 App 回來接手。「發起在 A 裝置、審查在 B 裝置」是雲端模式的常態,不是例外。
接手後的動作順序是官方文件明寫的流程:先看摘要與 diff,接著要求後續修改(這就是雲端版的追加指令),或者滿意了就開 pull request。迭代不需要重開任務,同一個雲端對話裡把要改的講清楚即可。雲端環境可以依各儲存庫需求設定依賴、工具、變數與設定步驟,讓任務在可重現的環境中執行。
若你的工作重心在本機終端機,codex cloud 指令能在 CLI 瀏覽進行中與已完成的對話、把新工作派到設定好的環境,codex cloud list 附帶過濾與分頁參數,適合指令稿或快速檢查。把雲端成果帶回本機靠 codex apply:它把雲端對話最新的 diff 套用到你的本機儲存庫,印出被修補的檔案。如果 git apply 失敗(例如本地已經改出衝突),指令會以非零狀態退出,明確告訴你這一筆沒套上。這個設計讓「雲端試跑、本機落地」成為一條可重複的操作線:雲端環境負責跑出候選修改,本機負責驗收與收尾。至於工作內容本身的分工邊界,可對照站上對〈ChatGPT Work〉的解析,兩種代理介面各有擅長的情境。
手機接手電腦:Codex Remote 的設定與使用
如果你的任務跑在自己的電腦上(本機專案、本機 worktree、本機工具鏈),遠端接手的答案是 ChatGPT 行動 App 裡的 Remote。官方Remote 頁的一句話定位值得先記住:手機跟進度、核准行動、送指令,而 Codex 把任務跑在你已連線的電腦上。手機是遙控器,主機才是機器本身,這個模型想清楚了,後面的限制就都合理。

設定從主機開始,三個步驟:在 Mac 或 Windows 上打開 ChatGPT 桌面 App,走到設定、連線、Control this Mac or PC,選設定或新增,核准遠端存取並完成要求的驗證。接著用手機掃描畫面上的 QR 碼,以同一個 ChatGPT 帳號與工作區登入並核准連線。配對完成後,手機 App 的 Remote 裡就會出現這台主機,可以開新任務或續接既有任務。有兩個但書:配對是一對一的,每支手機要跟每台想控制的主機各自配對。工作區帳號可能需要管理員先開啟 Remote Control 權限。
主機的選擇官方給了三種典型:從你已經在用 ChatGPT 的筆電或桌機開始,它讓遠端直接存取你慣用的專案、對話、憑證、插件與本機設定。需要持續存取或不同環境時,加一台常開的專用 Mac 或 Windows,讓 ChatGPT 對長時間工作保持可達,並在該機器上裝好專案、憑證、MCP 伺服器、技能與工具。第三種是專案本來就住在遠端的情境,接 SSH 主機。跨裝置的進一步玩法是:在有此功能的 Mac 或 Windows 裝置上,用設定裡的 Control other devices 把另一台主機加進來。
連線品質取決於主機狀態,官方連線指南講得直白:主機休眠、斷網或關掉 App,遠端存取就停,直到它恢復可用。Mac 筆電開蓋接電源可維持可連線狀態,闔蓋則還要接外接顯示器。Windows 主機要跑 Computer Use 的任務時,工作階段不能鎖定。把常用的那台機器設定成不休眠、接著電,是遠端工作流的基本功。
配對關係也有一些細節值得知道。官方文件記錄了一個分界:2026 年 6 月 8 日之後沒再用過的舊連線,要把兩邊 App 都更新後重新配對。登出 ChatGPT 會關閉 Remote Control,但不會移除既有的裝置配對,重新登入後再打開即可恢復先前的連線狀態。打開 Remote Control 並選新增時若看到錯誤,官方的疑難排解建議是把主機上的桌面 App 重啟一次再試。
手機上實際能做些什麼?官方清單列得很具體:在主機的專案裡開新對話或續接舊對話、送追加指令回答問題導引進行中的工作、核准命令與其他行動、審查輸出、diff、測試結果、終端機輸出與截圖、在任務完成或需要注意時收到通知。2026 年 6 月上旬的官方每週更新補上了 iOS 端的一批能力:選分支、建 worktree、跑環境設定腳本、管理目標、加行內審查註解。變更檔案與 diff 也能直接在手機上檢查,再決定下一步。回到電腦前的那段通勤時間,足夠把一輪審查做完。
通知是被低估的接手基礎建設。桌面 App 的設定可以指定回合完成提醒出現的時機:永不、只在 ChatGPT 位於背景時、或一律提醒,權限與問題類通知另有獨立開關。側欄的鈴鐺(Activity 視圖)則列出未讀、進行中、等待你回應的對話,遠端掛多個任務時,這個清單就是「現在該看哪一個」的答案。手機端則在任務完成或需要注意時推播,搭配遠端核准,通勤時間也能消化等待佇列。
架構面的理解有助於判斷風險:遠端存取用的是主機的專案、對話、檔案、憑證、權限、插件與本機工具,儲存庫檔案與本機文件來自主機,shell 命令也在主機或其遠端環境上執行。安全模型是雙層的:主機端的沙箱設定、安全控制與行動核准在遠端連線上照常適用,網路層則靠一個安全中繼層讓你授權過的 ChatGPT 裝置彼此可達,而不把主機直接暴露在公開網路上。官方同時提醒:只連接你擁有且信任的裝置。遠端很方便,但配對權限等同於把主機上的工作能力交出去,名單要吝嗇一點。
| 操作 | 桌面 App | CLI | 雲端(網頁) | 手機 Remote |
|---|---|---|---|---|
| 追加指令 | 排隊訊息停在輸入框上方,可編輯、排序、送出或刪除 | Enter 導引當前輪,Tab 排到下一輪 | 審查摘要與 diff 後可要求後續修改 | 可送追加指令、回答問題並導引進行中的工作 |
| 對話整理 | 專案、釘選專案、改名與封存 | /new 命名、分區、resume、archive | 專案與封存對話 | 可開新對話或續接既有對話 |
跨主機與 SSH:把對話搬到另一台機器
遠端接手的進階形態是「搬」。Codex 的 Handoff 功能能把一個既有對話連同它的 Git 狀態,在你的本機電腦與已連線的遠端主機之間搬移:流程是打開對話,在對話頁尾點目前的執行位置、選目的地主機,確認目的地與分支後送出。Codex 會在目的主機上建立或復用一個 worktree、把對話與 Git 狀態傳過去、然後把對話切換到那台主機。對話若正在跑,交接會先中斷當前回應再傳輸。懶得點選單的人也有捷徑:在另一個對話裡直接請 Codex 把指名的對話交接過去,它代為處理。
交接有前提條件,漏了就不會出現目的地選項:目的主機要先連線,而且上頭要為同一個 Git 儲存庫存有對應的專案。若專案是儲存庫的子目錄,兩邊要存同一個子目錄,Codex 只顯示存有相符專案的目的地。還有兩個邊界:發出交接請求的對話不能交接它自己,要請另一個對話代勞。交接也不能搬進 Codex 雲端環境。實務上這個功能的典型劇本是筆電開頭、桌機接力:白天在外面用筆電把脈絡建立起來,回座位後把對話交給算力與螢幕都更充足的機器繼續。官方文件也描述了反過來的路徑:筆電不可用時,手機在常開主機上開的對話,稍後可以在筆電上接續同一個對話。
專案本身住在遠端機器的情境走 SSH。在桌面 App 加入來自 SSH 主機的遠端專案後,對話會在遠端檔案系統與 shell 上執行,讀檔、跑命令、寫變更都在遠端。設定面的重點:把主機寫進 ~/.ssh/config 的具體別名(Codex 會讀具體別名、用 OpenSSH 解析、忽略純萬用樣式),確認從執行 App 的那台機器 SSH 得連上目標主機,並讓 codex 命令存在於遠端使用者的登入 shell 路徑上,因為 App 是透過 SSH 用遠端使用者的登入 shell 啟動遠端 Codex app server 的。安全期待比照一般 SSH:信任的金鑰、最小權限帳號、不開未認證的公開監聽。
CLI 使用者另有對應的遙控工具:codex remote-control 可以前景啟動遠端控制,start 與 stop 管理常駐的 app-server 背景程式,pair 則產生一個短期有效的人工配對碼。安全紅線要畫清楚:遠端連線用 SSH 啟動與管理遠端 app server,官方明言不要把 app server 傳輸直接暴露在共享或公開網路上。要跨網路連到遠端機器,用 VPN 或網狀網路工具,別把 app server 直接接到網際網路。
對話搬過去之後,權限怎麼重算:四個檢核點
前面兩節把「搬」的流程講完了,但搬移最容易被輕忽的一層是權限語意:Handoff 搬的是對話與 Git 狀態,搬不動的是執行環境。官方交接文件與連線文件的講法拼起來很清楚:對話落到目的地主機之後,儲存庫檔案與本機文件來自那台主機,shell 命令在那台主機或其遠端環境上執行,MCP 伺服器、技能、瀏覽器存取來自那台主機的組態,主機登入過的網站與桌面應用,對話才碰得到;沙箱設定、安全控制與行動核准,則套用在這個連線 session 上。
換句話說,對話的可及範圍不是跟著原機走,而是由目的地重新決定。這就是搬移會改變對話能動用什麼的關鍵:同一個對話,搬到一台裝了更多憑證、更多 MCP 伺服器、信任過更多專案的常開主機上,能動用的資源當場變多;反過來搬到一台沒信任過該專案的機器上,專案的 .codex 覆寫層不會載入,AGENTS.md 指示鏈也在目的地重新走一遍,行為可能收縮。搬完之後它「變大」或「變小」都不是異常,是環境重算的自然結果,判斷基準永遠是目的地,不是原機。
把這個語意壓成移交前的四個檢核點,按 Hand off 之前逐一自問:
- 資源面:目的地主機上有哪些憑證、MCP 伺服器、技能與已登入服務,會變成這個對話的可用資源?清單比你原機多出來的部分,就是擴張的幅度。
- 政策面:目的地的沙箱與核准政策比原機寬還是嚴?搬過去後核准提示變多或變少,都是政策差異的訊號,先知道才不會誤判它在亂跑或變笨。
- 專案面:目的地存了同一個儲存庫(與同一個子目錄)的對應專案嗎?沒有就不會出現在目的地清單;有,再確認目的地對該專案的信任狀態會載入哪些 .codex 覆寫、指示鏈內容是否一致。
- 機敏面:被 Git 忽略的檔案不會跟著對話搬。.worktreeinclude 的自動複製官方明載只適用本機桌面 App 建立的受管 worktree,遠端 worktree 與手動建立的都不算;跨主機交接後對話看得到什麼,取決於目的地那台機器自己的檔案與設定,機敏檔要在目的地自行配置。搬過去後這個對話看得到哪些 .env 與金鑰,移交前先盤點一遍。
四問都有答案再按 Hand off,而且四問都查得到:在目的地主機開個 CLI 對話用 /status 看作用中的模型、核准政策與可寫目錄,codex mcp list 列出該機器設定了哪些 MCP 伺服器,專案與信任狀態在桌面 App 的專案設定裡,機敏檔直接盤點目的地的工作複本。補充一個常見的相對情境:Local 與 Worktree 之間的搬移不換主機,資源面通常變動不大,但工作複本、有效設定與信任狀態仍可能不同,真正要盯的是機敏面,也就是 .worktreeinclude 有沒有把該帶的忽略檔帶進新的工作複本;不確定就四問全查。跨主機的搬移四問全查,同機的搬移至少查第四問,這個對比本身就是判斷搬移風險等級的快捷方式。
對話與資料夾整理:從命名到封存的操作體系
用了幾週之後,多數人的 Codex 側欄會變成對話的沼澤。官方專案文件給的組織原則是兩層的:專案放「會持續進行、會產出多個結果、或依賴相同檔案與來源」的工作,對話則一個明確產出開一個,讓訊息與結果保持聚焦,專案負責把相關工作兜在一起。網頁版的專案有對話區與來源區,專案指示套用在每個對話上。桌面 App 的本地專案則是讓對話存取你電腦上的資料夾,等於把「資料夾」這個熟悉的概念接進代理工具。工作內容會增長時也不必先想清楚:官方允許先開獨立對話,長大了再搬進專案,讓平行的研究、起草、審查對話各走各的脈絡。
本地專案的多資料夾設計在 2026 年 7 月下旬上線:編輯專案可以附加多個資料夾,ChatGPT 對每個附加資料夾都能讀寫,再指定其中一個為主要資料夾。主要資料夾有三個特殊地位:新對話從它開始、Git 操作以它為準、AGENTS.md 與技能與 config.toml 的自動探索也在它身上。次要資料夾仍可用於搜尋、讀取與編輯,但那些專案檔不會被自動探索。遠端專案目前支援單一資料夾,想在遠端重現多資料夾結構還要等。想把這個特性用在刀刃上,常見配置是 App 主體與文件分開放,或網站前端與後端各一個資料夾,再讓不相干的工作各自成立專案,工作脈絡才會聚焦。
對話層級的整理工具箱:釘選常用的專案,讓它們浮在側欄上方。CLI 0.146.0 也支援釘選重要執行緒。把對話改成描述結果的短標題(官方範例是「Q3 launch brief」這種規格)。搜過去的對話時,網頁版用 Cmd 或 Ctrl 加 K,桌面 App 則從側欄開啟 Search chats,記得片段或分支名卻忘了標題時特別好用。完工的對話就封存,專案選單裡能整批封存該專案的對話。封存不是刪除:設定裡的 Archived chats 區會列出封存對話與日期和專案脈絡,Unarchive 一鍵還原。
CLI 端的對話管理自成一格,因為 CLI 把你啟動它的目錄視為對話的專案。互動中用 /resume 續接已儲存的對話,離開互動介面後用 codex resume 回去。--last 會在當前工作目錄中續接最近的對話,--all 則跨整個對話庫搜尋。目錄對不上時 Codex 會問你要用哪個,tui 設定裡的 resume_cwd 可以把這個選擇固定成「當前目錄」或「session 原目錄」。codex fork 則把舊對話分岔成新對話,預設開選擇器,--last 直接分岔最近一個。
命名與分區是 CLI 端近期的重點更新。2026 年 7 月底釋出的 0.146.0 讓 /new 與 /clear 可以邊建邊命名(官方示例是 /new release prep、/clear bug bash),支援釘選重要執行緒、在側對話之間切換而不關閉它們,還加了暫時性的對話分岔。隔週的 0.147.0 補上持久化、可手動排序的對話分區。順帶分辨兩個容易混淆的指令:/clear 會清掉畫面並起新對話,Ctrl 加 L 只清終端機畫面、留在原對話裡。清理工具方面,codex archive 與 codex unarchive 用 session 編號或名稱封存還原,官方定位是「清潔 session 選擇器而不刪逐字稿」。/archive 在介面內封存當前 session 並離開,逐字稿仍在本地。真正的刪除有兩種:codex delete 會永久移除指定 session 的逐字稿。介面內的 /delete 會永久移除當前逐字稿,並連同衍生的子 session 一起刪除。官方特別標註,只有在你要移除而非隱藏逐字稿時才使用刪除。養成「封存為主、刪除為例外」的習慣,對話史就是你的工作日誌。
把對話當工作日誌還有一個理由:排程任務可以在同一個對話裡接續。2026 年 4 月中旬的官方每週更新讓自動化能在同一執行緒裡跑,Codex 每次都從上次的進度接手,不另開新對話把歷史打碎。對固定要跑的維護型工作來說,一條長對話就是一份累積的處理紀錄,出事的時候回頭翻,比翻散落的排程日誌容易。
作業系統層面還有一個小幫手:ChatGPT 會依上下文給建議提示,在你打開或回到 ChatGPT 時,浮出可能的後續步驟與值得續接的任務。對話多起來之後,這個入口配合搜尋,就是「上次做到哪」的快速答案。
值得記的一個檔案層事實:CLI 對話保留它的逐字稿與工作目錄紀錄,但讀檔讀的是當前工作樹。也就是說,續接舊對話時你看到的是完整歷史,而它操作的是現在的檔案狀態。官方因此建議把持久的專案指引放進 AGENTS.md 或版控文件,讓之後的對話拿得到,免去對單一對話記憶的依賴。這正好接到備份管理的主題。
從別的代理工具搬家:匯入設定與對話
「搬資料夾」的另一個意思是換工具。官方匯入流程處理的是從其他代理工具帶著設定與近期工作搬進 Codex:桌面 App 支援從 Claude Code、Claude Cowork 與 Cursor 匯入,CLI 支援 Claude Code 與 Cursor。匯入內容的對照關係官方列成表:指令檔變成 AGENTS.md、settings.json 變成 config.toml、技能對技能、插件對插件、既有的專案資料夾變成使用相同資料夾的專案、近 30 天的對話變成 ChatGPT 對話、MCP 設定轉成 Codex 的 MCP 組態、hooks 轉成 Codex hooks、斜線命令轉成 skills。Claude Code 端的背景知識可以回頭翻〈Claude Code 中文教學〉。
兩個上限與一個原則。CLI 的 /import 一次最多帶 50 則對話(近 30 天),任務進行中不能用;遠端 session 與本機背景程式連線期間的限制,已在 2026 年 9 月下旬的 CLI 0.157.0 放寬,實際以你手上的版本與官方更新紀錄為準。原則是匯入不會更動或刪除你既有的代理設定,原工具照常運作,Codex 這邊多一份。桌面 App 的匯入設定裡可以打開自動更新,讓匯入的工作與原來的代理保持同步,2026 年 8 月中旬的官方每週更新正式宣佈這批匯入與同步能力到位。
匯入後官方提醒要審過再依賴,清單包含:匯入技能與代理裡的工具限制或權限、用到自訂認證或標頭或環境變數的 MCP 設定(可能要重新登入)、行為可能有差異的 hooks、需要手動收尾的插件與市集、依賴參數或 shell 插值或路徑佔位符的提示模板。這份清單表示,匯入後仍要逐項重查工具權限、認證、hooks、插件與提示模板。搬完先跑一輪小任務驗證,再正式換軌。
備份管理:Codex 在磁碟上的完整地圖
備份的前提是知道東西在哪。Codex 的檔案結構分成兩層:個人層住在你的家目錄 ~/.codex(官方稱 Codex home,可用 CODEX_HOME 環境變數換位置),專案層則散在儲存庫裡。設定文件明載:個人預設放在 ~/.codex/config.toml,專案覆寫用 .codex/config.toml,而且基於安全,專案的 .codex 層只有在信任該專案時才載入。設定優先序由高而低是命令列旗標與 --config 覆寫、專案設定檔、設定檔群組、使用者設定檔、雲端託管預設、系統層、內建預設。把共用的預設放使用者設定檔、差異放設定檔群組,是官方建議的分工。
指示檔的結構更有層次。官方 AGENTS.md 文件說明:全域層先看 ~/.codex 裡的 AGENTS.override.md,沒有才看 AGENTS.md。專案層從專案根目錄一路走到當前目錄,每個目錄至多取一個檔案。合併時由根往下拼接,越靠近當前目錄的越晚出現、覆寫力越強。兩個工程細節:空檔案會被略過,合併大小有上限(project_doc_max_bytes 預設 32 KiB)。指示鏈每次執行時重建,沒有快取要清。若團隊已經用別的檔名(例如 TEAM_GUIDE.md),fallback 檔名清單可以把它納入探索。整份地圖的備份策略由此開展:AGENTS.md 該進版控,全域層跟著你的 dotfiles 走。
對話紀錄的落地位置也要知道。設定參數 history.persistence 控制是否把 session 逐字稿存進 history.jsonl(值是 save-all 或 none),history.max_bytes 可以封頂、超過時丟最舊的條目。需要更細的紀錄時,可用 log_dir 指定純文字 TUI 日誌的寫入位置。已啟用 session logging 時,也可查看最新的 session-*.jsonl。對話紀錄的本體位置在這裡一次記住:官方疑難排解文件列明,session 逐字稿存 $CODEX_HOME/sessions,封存的 session 存 $CODEX_HOME/archived_sessions,換機要帶的就是這兩個資料夾。~/.codex/config.toml、全域 AGENTS.md 與對話紀錄屬於個人環境備份範圍。CODEX_HOME 還有一個進階用法:替不同角色指定不同的家目錄,例如給專案專屬的自動化使用者一個獨立設定檔案群,互不污染。
worktree 是備份管理裡最容易被忽略的一塊,先建立心智模型:官方把 Local 比喻為前景、worktree 比喻為背景,Handoff 負責在兩者之間搬對話。背景 worktree 的用途是把你不用盯的工作排隊放著,前景留給需要專注的事。Git 儲存庫的排程任務也能跑在專屬的背景 worktree 上,避免與進行中的工作互相干擾。落點方面,Codex 的受管 worktree 建在 $CODEX_HOME/worktrees 底下,預設保留最近 15 個,上限與自動刪除可以在設定裡調整,Worktree root 則能把預設落點換到別的位置。有釘選對話綁定、對話進行中、或是永久 worktree 的不會被自動刪。需要長期環境時,可以從專案選單建立永久 worktree,它不會被自動刪除,還能從同一個 worktree 開多個對話。
關鍵保險在刪除機制:受管 worktree 的自動刪除有兩個觸發點,一是你封存了關聯的對話,二是 Codex 需要在上限內騰出位置。刪除受管 worktree 之前,Codex 會先存一份工作的快照。重新打開關聯對話時會看到還原選項。worktree 目錄刪除後,對話仍可能留在歷史裡。反過來的防護是 .worktreeinclude:在儲存庫根目錄放這個檔案,列出 Git 刻意忽略但新 worktree 需要的路徑(官方示例是 .env、.env.local、config/secrets.json 這類),Codex 建立受管 worktree 時會自動複製過去。被忽略的 AGENTS.override.md 則不必列,它本來就會自動複製。要長期保留的成果,官方給的路是開分支推送,想在本地檢出同一條分支時,用 Handoff 把對話搬回 Local,而不是讓同一分支卡在兩個工作複本裡。之後若再把對話交回 worktree,Codex 會把它帶回同一個關聯的工作複本。

環境設定的備份也有官方解:本地環境的組態存在專案根目錄的 .codex 資料夾,官方明言這個產出的設定檔可以簽進專案的 Git 儲存庫與團隊共享。setup script 在建立新 worktree 起新對話時自動執行,把依賴安裝與建置流程寫成腳本,等於把「環境復原」也變成可版控的資產。常用的操作可以定義成 actions,例如 Node.js 專案建一個跑 npm start 的「Run」動作,從桌面 App 頂欄一鍵啟動開發伺服器,平台不同的話還能分別定義 macOS、Windows、Linux 版本。要診斷安裝狀態時,codex doctor 產出本機診斷報告,檢查安裝、設定、認證、執行期、Git、終端機、app-server 與對話庫的健康度,回報問題或自查都好用。
把上列位置整理成三層備份策略,操作就清楚了。第一層是該進 Git 的:專案裡的 AGENTS.md 與 .worktreeinclude,加上確認不含金鑰與個人設定的 .codex 設定,這些是團隊共用的資產,跟著儲存庫走,換人換機都自然同步。第二層是該隨個人環境備份的:個人設定檔、全域 AGENTS.md,以及實際保留的對話紀錄。先確認各自的寫入位置,再與 dotfiles 一併備份,換機時帶走。第三層是機敏隔離的:.env 與各種 secrets,官方把它們列為 Git 刻意忽略的檔案,備份要走自己的安全管道,而不是推進版控或雲端;.worktreeinclude 的角色是讓新建的本機 worktree 拿得到這些檔案,它列路徑、不存內容,不是備份工具。三層分清楚,備份就不會在「方便」與「洩漏」之間擺盪。
壓軸的是把工作交給別人看時的快照機制:在 macOS 的 ChatGPT 桌面 App 裡,各個 Codex 方案都能對本地對話建立唯讀快照,快照不會給其他人你的專案或電腦的存取權,內容涵蓋訊息、推理摘要、圖片與檔案變更(含路徑與 diff),但不含工具呼叫、shell 命令與其原始輸入輸出。上傳前 Codex 會遮蔽已知的機密式樣。個人帳號的連結則是拿到連結的人都能開,工作區帳號可限成員。分享前仍建議自己先打開檢查一遍,路徑之類的敏感內容可能留在訊息或 diff 裡。快照是分享當下的凍結版本,之後的訊息與變更不會更新進去,也無法從快照反推回原對話,要引用就當附件附上。分享連結的管理集中在 ChatGPT 資料控制區的 Shared links,要看或撤銷都在那裡。
| 檔案或資料 | 位置 | 備份建議 |
|---|---|---|
| config.toml(個人預設) | ~/.codex/config.toml | 隨個人環境備份 |
| AGENTS.md(全域指示) | ~/.codex/AGENTS.md(override 優先) | 進 dotfiles 備份。內容屬工作協議,值得版控 |
| 對話逐字稿與紀錄 | $CODEX_HOME/sessions(逐字稿)與 archived_sessions(封存);另有 history.jsonl,啟用 session logging 時再加 session-*.jsonl | 換機必帶 sessions 兩個資料夾。依需求備份或定期清理;封存不刪逐字稿,徹底移除用刪除指令 |
| 受管 worktree | 預設 $CODEX_HOME/worktrees(Worktree root 可改位置,預設留 15 個) | 依賴刪除前快照。重要成果先開分支推送 |
| config.toml(專案覆寫) | 儲存庫 .codex/config.toml | 確認不含金鑰與個人設定後再簽進 Git 共享(信任的專案才載入) |
| AGENTS.md(專案指示) | 儲存庫各層目錄 | 進版控。依 project_doc_max_bytes 的合併上限分層放置(預設 32 KiB) |
| 機敏檔(.env 等) | 儲存庫內(被 Git 忽略) | 不進版控不外流。列進 .worktreeinclude 供本機 worktree 用 |
| SQLite 狀態庫(含 -wal、-shm) | 預設 Codex 家目錄;sqlite_home 與 CODEX_SQLITE_HOME 可改位置 | 停機後整包複製;換機列入清單,不手刪附檔 |
狀態庫檔案的成因:讀懂 -wal 與 -shm
備份地圖裡的 history.jsonl 與 session 紀錄檔是純文字,打開就懂;但很多人在 Codex 家目錄(或自訂的狀態目錄)裡看到的另一批檔案沒那麼直觀:一顆資料庫檔,配上 -wal、-shm 結尾的兩個附檔,而且體積會自己長。這批檔案的來源是 Codex 的 SQLite 狀態庫:代理工作的中繼狀態、可恢復的執行狀態,以及執行緒的詮釋資料(例如 Git 資訊與釘選狀態),都存在這顆資料庫裡。它的落點有官方的控制點:config.toml 的 sqlite_home 設定(見設定鍵參考,優先序較高),或環境變數 CODEX_SQLITE_HOME,兩者都沒設的話就落在 Codex 家目錄,相對路徑從當前工作目錄解析。
-wal 與 -shm 的成因要用 SQLite 的 WAL 模式解釋。資料庫採用這個模式時,寫入不直接落在主檔,而是先記進 -wal(write-ahead log,寫入前日誌),之後再分批收合回主檔;-shm 則是配合日誌運作的共享記憶體索引。官方文件的時序值得記住:只要有任何連線開著資料庫,日誌檔就會留在磁碟上;當最後一條連線正常關閉,SQLite 會做最後一次收合(checkpoint),通常還會把日誌與索引檔刪掉;少數情境下附檔會留下來,例如最後離開的是唯讀連線。所以「附檔時有時無、時大時小」是正常呼吸,不是故障。
為什麼有時候大到嚇人?SQLite 在日誌累積到一定量時會自動收合,之後空間通常重用而不縮檔,所以檔案大小不能直接換算成還沒收合的寫入量,更不是對話數量。會讓它維持大體積的是寫入不停:長任務一口氣跑幾小時、多個對話同時開著、app-server 背景程式常駐不退。判斷看趨勢而不是絕對大小,拿它當清理依據會誤判。
處置原則一句話:交給正常關閉,不要手刪。要釋放空間,先讓 Codex 相關程式(含背景的 app-server)完整退出,附檔通常會隨最後的收合消失;仍殘留的話不要手刪,先回頭確認所有相關程式與連線都退乾淨;平時的空間管理靠前節的刪除指令清掉不要的逐字稿;封存不刪逐字稿,但封存關聯對話可能觸發受管 worktree 的清理、釋放那份空間;history 的容量上限則只約束 history 紀錄檔、與狀態庫無關。這些都替代不了正常關閉,更不該碰資料庫檔。要搬移或備份這顆資料庫,時機同樣重要:SQLite 官方的防損毀指南明言,在交易進行中複製資料庫檔,副本可能同時混著新舊內容而損毀;指南列出的安全做法是 VACUUM INTO、backup API、sqlite3_rsync 這類一致性備份工具,它們在資料庫運行中也能產出完整副本。若只是把檔案搬到別的位置,主檔要與 -wal 附檔一起帶,缺了日誌,先前未收合的交易可能跟著遺失。對多數使用者,最穩的順序仍然是「先正常關閉,再複製整個目錄」。
還有一個進階小招:把 sqlite_home 指到另一個位置,可以把狀態庫與其他個人檔案分開管理,例如放到有獨立備份排程的磁碟。這在換機時也派得上用場:狀態庫有自己的位置,抄的時候就不會跟憑證檔混在同一包裡。
換機的完整流程:整備、停機、還原、驗證
前面的地圖與成因知識,最終要服務一個場景:換電腦。換機流程壓成四段,每段有明確的完成條件,照順序走就不會漏。
第一段,整備(在舊機)。對照前文的三層備份策略列清單:該進版控的(專案 AGENTS.md、.codex 設定、.worktreeinclude)確認已提交推送;個人層(config.toml、全域 AGENTS.md、對話紀錄)確認實際位置,有啟用 session 紀錄或自訂 log_dir、sqlite_home 的話一併記下來,狀態庫資料夾也列入搬移清單;機敏層(.env、金鑰)另行安排安全管道。Git 狀態也在此時收乾淨:進行中的成果先提交或開分支推送;受管 worktree 裡還沒落地的工作比照辦理,快照還原只當 worktree 已被清理後的補救路徑(刪除前 Codex 會自動存一份快照)。這一段的完成條件是:清單上每一項都知道「在哪、要不要帶、怎麼帶」。
第二段,停機與快照。讓所有 Codex 相關程式正常關閉:桌面 App、CLI session、IDE 延伸功能,以及背景的 app-server。這一步同時解決三件事:狀態庫的日誌檔收合,副本不會抄到寫到一半的內容;檔案不被佔用,複製不會撞到鎖;收合完成後,sessions、archived_sessions 與狀態庫資料夾也在這個靜止時點一起複製帶走。憑證檔另案處理:auth.json 內含存取權杖,官方的態度是把它當密碼,不進版控、不進一般備份;官方文件對無頭機器給的流程是人工複製該檔,但多數人換機時直接在新機重新登入更省事,風險也小。這一段的完成條件是:複製來源處於靜止且一致的狀態。
第三段,新機安裝與還原。先把工具裝起來:開頭連過的安裝指南有四條路線,選一條裝好並完成登入。放回個人層檔案(config.toml、全域 AGENTS.md、sessions 與 archived_sessions 兩個對話資料夾、狀態庫資料夾,自訂過 CODEX_HOME 或 sqlite_home 的話先把環境變數與設定路徑改回去),專案層用 git clone 帶回,版控裡的設定與指示檔自然跟著回來,機敏檔走自己安排的管道各就各位。有裝 MCP 伺服器、技能、插件的,趁這一步照清單重裝:這些東西多半不在備份範圍,缺了要等用到才會發現。這一段的完成條件是:新機上檔案齊、帳號通。
第四段,驗證。三道檢查由淺入深:先跑 codex doctor,看安裝、設定、認證、Git、app-server 與對話庫的健檢有沒有紅字;再用 codex resume 的跨對話搜尋(或介面裡的 /resume)確認舊對話回得來、讀得到歷史;深一層開一個小任務端到端跑一遍,順便用 /status 核對模型、核准政策與可寫目錄跟舊機一致。驗證不是儀式,它是抓「備份其實沒抄到」「設定其實沒生效」的唯一手段。這一段的完成條件是:小任務成功、對話可續、健檢乾淨。四段走完的耗時取決於備份大小與需要重裝的項目,照順序走的每一步,都是為了不必事後補救。
操作檢查清單與三個提醒
把十三節內容壓成一張上工清單:開長任務前先想清楚目標與驗收條件再交給 /goal。工作中要轉向用導引、要接續用排隊,CLI 記 Enter 與 Tab,換到 IDE 延伸功能記得預設反過來。雲端任務收工前看摘要與 diff,用追加修改迭代,要落地跑 codex apply。出門前確認主機喚醒與連線,手機 Remote 配對好。定期整理對話:釘選進行中、改名有產出的、封存完工的,CLI 端用分區與 /new 命名維持秩序。養成固定時段檢查 ~/.codex 與 worktree 佔用的節奏,狀態庫的 -wal、-shm 附檔交給正常關閉去收合,不手刪。確認可共享的 AGENTS.md 已進版控、.codex 設定經審查後再決定是否共享,重要成果及時開分支推送。對話要搬到別台主機前,資源、政策、專案、機敏四個檢核點先自問一輪;換機照整備、停機、還原、驗證四段走。
三個提醒收尾。介面落差是常見挫折來源:功能在桌面 App、CLI、網頁、手機之間的覆蓋不一致(例如 Remote 的設定只能從 App 起步,交接不能進雲端環境),動手前查一下官方文件確認你所在的介面支不支援。迭代速度是另一個:上列操作對應的是 2026 年 9 月的官方文件狀態,官方每週更新持續推進,鍵位與功能隨版本移動,以官方每週更新與各功能頁為準。安全是第三個:遠端配對名單保持吝嗇、app server 不暴露到公開網路、機敏檔靠 .gitignore 與 .worktreeinclude 管理邊界、分享快照前自己先讀一遍。工具的進階操作最終拚的是習慣:追加指令讓你保持在迴圈裡,遠端接手讓迴圈不限於書桌,整理與備份讓迴圈經得起時間與換機。






