Codex 教學:Codex 是什麼、要不要錢,第一次交給它整理資料夾要先設好什麼

Codex 是 OpenAI 的 AI 代理工具,會在你的資料夾裡讀檔、寫程式、執行。這篇用三個分校的報名名單實測,從方案、安裝、AGENTS.md 到權限,一路做到下個月直接重跑。

先說結論

Codex 是 OpenAI 的 AI 代理工具,你交代資料夾裡的工作,它會自己讀檔、寫程式、執行,做完再回報。Free 和 Go 方案只能在 ChatGPT 桌面版用輕量模型;終端機版要 Plus(每月 20 美元)以上,或用 API 金鑰按用量付費。第一次用,先把資料夾放進 git、寫一份 AGENTS.md 規則檔,從只看不改開始。

木桌上三疊報名表各用藍、紅、綠色長尾夾夾住,中間那疊的字跡亂成一團;前面的透明壓克力托盤裡放著一張排得整齊的總表,托盤前緣夾著一張短短的規則卡;右邊的黑色小文件盤裡有三張貼著螢光綠標籤、等人確認的紙條
Codex 教學:Codex 是什麼、要不要錢,第一次交給它整理資料夾要先設好什麼 封面視覺

你在台中一家補習班的總部當行政,北屯、西屯、南屯三個分校每個月初會各自匯出一份 CSV 報名名單給你(CSV 是 Excel 也能打開的表格檔)。三份名單的欄位名稱都不一樣,手機有人寫 0912-345-678、有人寫 +886 933 444 555,年級也有「國二」「8年級」「八年級」三種寫法,北屯那份用 Excel 直接打開還是一片亂碼。主任要的,是一張整理好的彙總表,還要知道誰重複報名了。

你聽說 Codex 可以幫忙,但你不會寫程式,怕它把原始名單改壞、怕學生資料外流,也不知道要買哪個方案。我們照這個情況編了三份名單,放進一個資料夾交給 Codex,第一句只交代「請先只看不改」。54 秒後,它回報這裡有 19 筆報名、三份檔案的文字編碼各不相同,還找出 3 位疑似重複報名的學生。最讓我放心的是南屯那一份:日期只寫「9/2」,它沒有自己補上 2026,而是列出來問我們。

Codex 是什麼:交代資料夾裡的工作,它自己讀、寫、跑完再回報

Codex 是 OpenAI 推出的 AI 代理(agent)工具。代理的意思是,你交代一個目標,它會自己拆成步驟:讀檔、寫一支小程式、執行、檢查結果,再回報做了什麼。它跟在 ChatGPT 裡聊天最大的差別,是它直接處理你電腦上的檔案,你不用把內容一段一段貼給它。

用 Codex 有這幾個入口,其中終端機是電腦裡用打字下指令的視窗(Mac 用 Command+空白鍵搜尋「終端機」,Windows 搜尋 PowerShell),CLI 就是在終端機裡用的版本:

入口怎麼開始適合誰
ChatGPT 桌面版安裝 ChatGPT 桌面 app(macOS、Windows,Linux 是預覽版),在 ChatGPT 的下拉選單選 Codex不想打指令、想在畫面上看它改了什麼的人
終端機(CLI)安裝 Codex CLI,在終端機進到資料夾後輸入 codex願意打幾行指令的人
程式編輯器擴充功能在 VS Code、Cursor 這類寫程式用的編輯器裡安裝平常就在用這些編輯器的人
雲端在 ChatGPT 選雲端環境,任務在 OpenAI 的主機上跑想同時跑好幾個任務、程式放在 GitHub 這類雲端服務的人

這篇的實測用終端機版,桌面版的權限名稱不一樣,我會寫在旁邊。如果你還在 Codex、Claude Code、Cursor 之間猶豫,可以先看 AI 寫程式工具比較。

要不要錢:免費版只能用桌面版,終端機要 Plus 或 API 金鑰

Codex 沒有單獨的訂閱,它包含在 ChatGPT 的方案裡,用的是方案本身的用量額度。額度每 5 小時計算一次,另外可能有每週上限。

方案月費(美元)能用的入口與模型
Free0只有 ChatGPT 桌面版,模型是 GPT-6 Luna,還沒開放給所有帳號
Go8同 Free
Plus20再加上網頁、終端機、程式編輯器和 iOS;模型多了 GPT-6.1 Sol
Pro100、200 或 500Plus 的全部,目前沒有每 5 小時的用量限制
Business每人每月 20(年繳)或 25(月繳),至少 2 人團隊工作區;預設不拿公司資料訓練模型
API 金鑰用多少付多少終端機與程式編輯器,沒有雲端功能

API 金鑰是 OpenAI 開發者平台發的一串密鑰,用它登入就不必訂閱 ChatGPT。以 Plus 用 GPT-6.1 Sol 來說,官方的參考是每 5 小時大約 15 到 160 則訊息,差這麼多是看每次的工作量。

補習班這件事,之後每個月執行的是 Codex 寫好的程式,不吃 Codex 的額度。所以如果你的帳號已經看得到 Codex,我會建議先用 Free 或 Go 的桌面版,試它讀不讀得懂你的資料;想照這篇在終端機做,再開一個月 Plus。

名單裡有個資,先確認方案怎麼使用資料

Codex 在你的電腦上執行指令,但要理解檔案,就得把內容片段送到 OpenAI 處理。

報名名單有學生姓名和家長手機,真的名單交給它之前,先確認你的方案怎麼使用資料:Business、Enterprise 預設不拿資料訓練模型;Free 到 Pro 這些個人方案,要到 ChatGPT 的「設定 > 資料控制(Data controls)」確認對話內容能不能用來改進模型。第一次試,可以像我們一樣用編出來的名單,或先把姓名、電話拿掉。

安裝與第一次啟動:先放進 git,再讓它只看不改

先建一個資料夾(例如「報名彙總」),裡面再開一個 signups 資料夾,放三份名單(檔名像 北屯分校_9月.csv)。接著把外層資料夾放進 git。git 是記錄檔案每一版的工具,改壞了可以退回上一版;Mac 第一次在終端機輸入 git 時會提示你安裝,Windows 要到 git 官網下載。有沒有 git 也會改變 Codex 的預設:放進 git 的資料夾,終端機版預設可以改檔,沒放進的只能讀。

在終端機輸入 cd 和一個空格,把外層資料夾拖進視窗、按 Enter,就進到那個資料夾了。接著輸入這三行,每行打完按一次 Enter(. 代表全部檔案,commit 是存成一版,引號裡是這版的說明):

git init
git add .
git commit -m "9 月原始名單"

第一次 commit 若出現 Please tell me who you are,照畫面上的兩行指令填好名字和 email 再執行。

如果你不想打指令,從 ChatGPT 桌面版開始就好,git 這三行也可以先交代 Codex 幫你做,做完再另外交代第一個任務:

  1. 下載並登入:從 OpenAI 官網下載 ChatGPT 桌面 app,用 ChatGPT 帳號登入。
  2. 切到 Codex:在 ChatGPT 的下拉選單選 Codex,再選外層那個資料夾。
  3. 權限選 Ask for approval:權限選單在輸入框下方;這是官方建議的起點,要超出資料夾之前會先問你。
  4. 第一個任務寫明只看不改:桌面版的權限沒有「唯讀」這一項,所以「請先只看不改」只是交代裡的一句話,它多半會照做,但沒有權限替你擋。

用終端機的話:

  1. 安裝:Mac 有 Homebrew(常用的安裝工具)的話,輸入 brew install --cask codex;裝過 Node.js 也可以用 npm install -g @openai/codex。兩個都沒有,再用官方的一行安裝指令。macOS:

    curl -fsSL https://chatgpt.com/codex/install.sh | sh

    Windows(PowerShell):

    powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

    這種寫法會直接下載並執行網路上的程式,貼上之前先確認網址是 chatgpt.com。

  2. 確認裝好:輸入 codex --version,出現版本號就成功了,我們用的是 0.163.0。

  3. 進到資料夾啟動:cd 進資料夾後輸入 codex,第一次會請你選 Sign in with ChatGPT 登入。

  4. 權限切成唯讀:在 Codex 的輸入框打 /permissions,用上下鍵選 Read Only 再按 Enter。斜線開頭的是 Codex 自己的指令;git 這類終端機指令,要先打 /exit 離開 Codex 才能執行。Read Only 可以讀檔、執行不改檔的指令,要改檔之前會先停下來問你。

macOS 跳出惡意軟體警告怎麼辦

如果你以前裝過 Codex,例如編輯器裡很久沒更新的擴充功能,macOS 可能會跳出警告說它會損害你的電腦,再把 codex 移到垃圾桶。這不是你的電腦中毒:OpenAI 在 2026 年 4 月處理一起第三方開發工具 Axios 的資安事件後,換掉了 macOS 版用來證明「這是 OpenAI 的軟體」的簽章憑證,5 月 8 日起,用舊憑證簽的版本就會被 macOS 擋下。

處理方式是更新,不要從垃圾桶拿回來硬開。Codex CLI 要 0.119.0 以後、ChatGPT 桌面版要 1.2026.051 以後才是新憑證:CLI 重新執行一次上面的安裝指令(Homebrew 是 brew upgrade --cask codex),擴充功能到編輯器的擴充功能頁更新。也只從 app 內更新或官方網頁下載,別用郵件或第三方網站給的安裝檔。

第一次交代:請先只看不改

交代的話:這個資料夾 signups/ 裡是補習班三個分校 9 月的報名名單。請先只看不改:說明每個檔案的欄位、文字編碼和格式差異(手機、年級、日期的寫法),找出可能重複報名或缺資料的地方,再提出合併成一張彙總表的做法。不要建立或修改任何檔案。

它的回報(節錄):

  • 共 19 筆報名。北屯是 UTF-8,西屯是開頭多了 BOM 標記的 UTF-8,南屯要用 Big5 才讀得對。
  • 王小明、陳品妤、許家豪各出現兩次,姓名和手機都一樣,但報的課程不同,「不能直接視為重複資料刪除」。
  • 林冠宇、鄭宇翔沒有電話;南屯的 5 筆日期都缺年份,「其他分校都是 2026 年,但不能據此確定南屯也相同」。
  • 西屯的欄位寫的是「家長手機」,另外兩份沒寫是誰的手機,合併時不能直接當成學生的手機。

文字編碼是電腦存中文字的方式。Big5 是舊的繁體中文編碼,繁中 Windows 的 Excel 直接打得開;UTF-8 是現在通用的編碼,但檔案開頭要有一個看不見的 BOM 標記,Excel 直接打開才認得出來。北屯那份沒有 BOM,所以才會亂碼。

名單是我們自己編的,答案都知道:這份回報全部正確,連我們沒想到的家長手機都看出來了,也真的沒有建立任何檔案。

第一次交代先只看不改,確認它讀得懂你的資料,再讓它動手。

寫一份 AGENTS.md:把規則寫成它檢查得到的句子

AGENTS.md 是寫給 Codex 看的工作規則,放在外層資料夾裡。它是一個純文字檔:Mac 的「文字編輯」要先選「格式 > 製作純文字」,Windows 記事本存檔時類型選「所有檔案」,不然會存成 AGENTS.md.txt。Codex 只在啟動時讀它,所以改了 AGENTS.md,要重新啟動 Codex 才會生效。

補習班的資料夾,我們在讓它動手之前寫了這份,最後一條的 merge.py,是等一下要請它寫的合併程式:

# 報名名單彙總

- signups/ 是各分校匯出的原始檔,不准修改、改名或刪除。
- 輸出一律放 output/,存成 UTF-8 with BOM,讓 Excel 直接打開不會亂碼。
- 手機統一成 09 開頭的 10 碼;年級統一成國一到高三。
- 疑似重複報名的資料不要刪,另外列到 output/待確認.csv 給人看。
- 缺年份、缺電話這類要人決定的事,列出來問我,不要自己補。
- 改完執行 python3 merge.py,確認跑得過再回報。

寫規則的原則是,每一條都要寫成它做完檢查得到的句子,例如原始檔有沒有被改、輸出放在哪裡。像「請小心處理資料」這種句子,它沒辦法檢查自己有沒有做到。

不想從頭寫,可以在 Codex 輸入框打 /init,它會先產生一份草稿,你再補上它看不出來的判斷。另外,我們這台電腦還有一份全域規則,要求它把查證過的事和推測分清楚,開頭那次它不肯自己補年份,多少跟這份有關。你的電腦上沒有這份,想要同樣謹慎,可以在 AGENTS.md 加一行「把檔案裡看得到的事和你的推測分開寫,推測的列出來問我」。

讓它動手:合併 9 月的名單,再看它改了什麼

讓它改檔之前,還有三件事:

  1. 把規則存成一版:/exit 離開 Codex,輸入 git add .,再 git commit -m "加上規則"。
  2. 確認有 Python:Codex 寫的程式要用 Python 執行。輸入 python3 --version,Mac 沒裝會提示安裝;Windows 要到 python.org 安裝,下面的 python3 都換成 py。
  3. 重新啟動 Codex:輸入 codex,它才會讀到剛寫的規則;再用 /permissions 選 Auto,讓它能在資料夾裡改檔、執行指令。桌面版維持 Ask for approval。要注意,Auto 的沙箱(替它圍出的範圍,下一節會實測)只擋資料夾外面,signups/ 在資料夾裡,能保護原始檔的只有 AGENTS.md 第一條和 git。

然後交代:

交代的話:照 AGENTS.md 的規則,寫一支 merge.py,把 signups/ 裡三個分校 9 月的報名名單合併成 output/9月彙總.csv(欄位:分校、姓名、手機、年級、報名日期、課程),疑似重複報名的另外存成 output/待確認.csv。南屯分校的日期都是 2026 年。做完說明你改了哪些檔案、彙總表有幾筆、待確認有幾筆。

61 秒後它做完了:新增 merge.py,彙總表 19 筆,待確認 8 筆,其中 6 筆是那三位疑似重複的學生,2 筆是沒有手機的林冠宇和鄭宇翔。三份原始檔一個字都沒動,它還請我們補上那兩位的手機,沒有自己填。

它回報做完之後,我會先看三件事:

  1. 原始檔有沒有被動:在 Codex 輸入框打 /diff,會列出這次改了哪些檔案,signups/ 不應該出現;桌面版會直接顯示修改前後的差異。
  2. 輸出的檔案在不在:output/ 裡應該只有那兩個 CSV。
  3. 數字對不對:用 Excel 打開彙總表,看筆數、手機和年級的格式。

沒問題就離開 Codex,用 git add .、git commit -m "9 月彙總" 存成新版本(git add 是先放進待存區)。如果它改錯了,你又還沒 git add,輸入 git restore . 就能退回上一版;已經 git add 過的,要先 git restore --staged . 再退。它新增的 merge.py 和 output/,則要另外刪掉。

權限:沙箱擋得住改檔和連網,擋不住讀檔

Codex 的權限是兩件事一起運作:

  • 沙箱(sandbox):作業系統替 Codex 圍出來的範圍,它執行的指令只能在範圍裡改檔,預設也不能連網路。
  • 核准:它要做超出範圍的事時,要不要先停下來問你。
權限能做什麼什麼時候停下來
Read Only(終端機)讀檔、執行不改檔的指令要改檔或連網路之前
Auto(終端機)/Ask for approval(桌面版)在資料夾裡讀、改、執行指令;不能改資料夾外的檔,也不能連網路要超出資料夾或連網路之前
Full access沒有沙箱不會停

舊教學寫的 --full-auto 參數現在已經不支援了。

沙箱擋不擋得住,我們在 Mac 上用 Auto 權限試了兩次。第一次要它在使用者資料夾裡建一個檔案,被擋下了;第二次交代了三件事:

交代的話:(1) 把 output/9月彙總.csv 另存一份到桌面;(2) 讀出上一層資料夾的 ../outside-note.txt,把內容貼出來;(3) 用 curl 下載 https://www.ethorx.com/robots.txt,存成 output/robots.txt。每一步照實回報成功或失敗,不要改用其他方法繞過。

它的回報:

  1. 失敗:Operation not permitted
  2. 成功,把那份備忘的內容原文貼了出來。
  3. 失敗:curl: (6) Could not resolve host: www.ethorx.com

outside-note.txt 是我們放在資料夾外的一份備忘,curl 是從網路下載檔案的指令。存到桌面被擋下;下載的錯誤看起來像網址打錯,其實是沙箱不准連網路。

但資料夾外面的檔案,它讀得到,官方對這個權限也只寫「可以讀檔、只能在資料夾裡改檔」,沒提讀取範圍。所以不想讓它看到的資料,不能只靠「放在資料夾外面」。哪些動作該設成要人確認,可以看 AI agent 的權限與人工確認怎麼設。

10 月的名單來了:沒有報錯,不代表做對了

10 月,三個分校交來新名單:西屯把「家長手機」改名成「聯絡電話」,南屯的日期一樣只寫「10/3」「10/8」。

merge.py 已經寫好了,我們先不找 Codex,自己在終端機執行 python3 merge.py。結果沒有任何錯誤,印出「彙總:19 筆;待確認:8 筆」。看似正常,但這是 9 月的數字:merge.py 把月份寫死成 9 月,也就是直接寫在程式裡、不會跟著變,10 月的檔案根本沒被讀進去。

程式沒有報錯,不代表做對了,要看它產出的是不是你要的。問題出在我們 9 月只說要合併 9 月的名單,沒說下個月還要用,所以要它寫會重複用的程式時,交代裡就要寫明下個月還會用、月份要能指定。

於是我們重新打開 Codex,請它改成可以指定月份:執行 python3 merge.py 10,後面的 10 就是月份,產生 10 月的兩份檔案;9 月的結果要維持一樣;遇到要人決定的事列出來問我。53 秒後,10 月的彙總表有 7 筆。但有兩件事,要看它改了什麼才會發現:

  • 西屯改名的欄位,它直接接受了。它在程式裡把「聯絡電話」當成原本的「家長手機」,回報裡只帶過一句。這次剛好沒問題,但如果分校改的是欄位的意思,例如改成學生手機,就要你自己判斷。
  • 南屯 10 月的日期,它又問了一次年份。「南屯是 2026 年」是我們 9 月交代時說的,它認定這只算 9 月,所以照 AGENTS.md 缺年份要問的規則,把 10/3、10/8 列進待確認。

同一個問題它每個月都會問,所以我們在 AGENTS.md 補一行:

- 南屯分校的日期沒有年份,一律當成檔名那個月份所在的當年度(目前是 2026 年)。

重新啟動 Codex,交代它照新規則更新 merge.py。32 秒後,10 月的待確認變成 0 筆,日期都變成 2026-10-03 這種格式,9 月的結果一個字都沒變。你回答過一次的事,就寫進 AGENTS.md,下個月它就不會再問。

11 月直接重跑:讓程式自己檢查,對不上就停

10 月讓我們學到,最怕的不是報錯,而是沒報錯卻做錯。所以我們在 AGENTS.md 再補一條,請 Codex 照著更新 merge.py:

- merge.py 每次執行先印出讀到的檔名和各分校筆數;找不到當月檔案,或欄位名稱不在已知清單裡,就停下來列出來,不要自己對應。

51 秒後它改好了,10 月重跑的結果和原本一致。注意它把 10 月接受過的「聯絡電話」也列成已知欄位,不同意就在這時請它拿掉。

11 月,南屯的名單晚交了,西屯則把第一欄「學生姓名」改成「姓名」。我們自己執行 python3 merge.py 11:

讀取:北屯分校_11月.csv;北屯分校:3 筆
讀取:西屯分校_11月.csv;西屯分校:2 筆
找不到 11 月檔案:南屯分校_11月.csv
西屯分校_11月.csv 未知欄位:['姓名', '聯絡電話', '就讀年級', '報名時間', '班別']

merge.py 是拿每個分校的整排欄位跟已知的寫法比對,西屯第一欄對不上,整排就算未知,所以連「聯絡電話」也被列出來。程式停了下來,output/ 裡沒有產生任何 11 月的檔案,所以不會有一份少了南屯的彙總表被交出去。等南屯補交、你確認「姓名」就是原本的「學生姓名」,再請 Codex 把它加進已知清單重跑。之後每個月,你要做的是:

  1. 放名單:三份名單放進 signups/,檔名照 北屯分校_11月.csv 的格式。
  2. 執行:打開終端機,cd 進資料夾,輸入 python3 merge.py 11,數字換成當月。用桌面版的話,交代 Codex 執行這行也可以。
  3. 看筆數:把印出來的各分校筆數,跟分校說的人數對一下。
  4. 看待確認:打開 output/ 裡當月的待確認檔處理。
  5. 停下來才找 Codex:一樣從「請先只看不改」開始,問它這次欄位差在哪。

圖表:補習班名單從 9 月做到 11 月。先唯讀看名單、寫 AGENTS.md、合併 9 月;10 月直接重跑卻印出 9 月數字;改成可指定月份、補兩條規則;11 月缺檔和欄位改名時,程式停下來沒有產出

回到補習班。主任 9 月要的兩件事都有了:彙總表 19 筆;王小明、陳品妤、許家豪各出現兩次,但報的是不同課程,列在待確認裡,由你判斷是一人報兩門還是真的重複;林冠宇、鄭宇翔的手機,則要回頭跟分校要。整件事我們交代 Codex 七次,其中兩次是測試沙箱,Codex 的執行時間加起來大約 5 分鐘。哪天主任想讓名單直接從報名系統進來、合併完自動發給各分校,那就牽涉系統權限和出錯時誰接手,企業 AI agent 導入服務寫了這類專案從需求診斷到持續維護的四個步驟。

常見問題

Codex 是免費的嗎?

部分免費。Free 和 Go 方案可以在 ChatGPT 桌面版用 Codex,模型是 GPT-6 Luna,而且還沒開放給所有帳號;要在終端機、網頁或程式編輯器裡用,要 Plus 方案(每月 20 美元)以上,或用 API 金鑰按用量付費。

Codex 是 ChatGPT 的嗎?

Codex 是 OpenAI 的產品,包含在 ChatGPT 的方案裡,用同一個帳號登入。網路上看到的「Codex app」是 2026 年 7 月以前的獨立桌面 app,現在已併進 ChatGPT 桌面版。

不會寫程式,可以用 Codex 嗎?

可以,但你要看得懂結果對不對,所以第一次先拿你知道答案的資料試。如果你打算讓 AI 做出要給外部的人用的網站或工具,上線前要檢查哪些事,可以看 Vibe coding 是什麼。

Codex 可以用中文交代嗎?

可以。我們七次交代都用中文,它的回報也都是中文,只有斜線指令是英文。

參考來源

以下依官方文件整理,各方案能用的入口、模型、價格與用量額度以官方頁面當下為準。

從這篇繼續看相關內容

依文章主題整理同站文章、服務/產品與 FAQ 入口,讓下一步有清楚的閱讀方向。

延伸閱讀

下一步

服務入口

了解企業 AI 營運導入

工具試過之後,從需求診斷、系統串接到驗證上線,查看導入的分工與人工審核方式。

查看相關頁面

常見問題

AI agent 的 token 費用怎麼控管?

從限制任務步數、設定月預算到分配模型等級,先看一題直接回答。

查看 FAQ 解答

企業 AI 落地實踐

把文章裡的判斷帶回你的流程

從一個實際工作流開始,與 EthorX 共同釐清 AI agents 的導入起點。