預設斷網、寫入只限工作目錄:Codex CLI 把 agent 關進沙箱再放進終端機
摘要
斷網是預設值,可寫的範圍也只有當前工作目錄,改檔與跑指令都先過審批。這個用 Rust 重寫的靜態二進位檔,還能用 codex exec 接進流水線。
推薦- 軟體名稱
- Codex CLI
- 版本
- 0.154
- 開源
- 開源
- 作業系統
- WindowsmacOSLinux
- 更新時間
- 2026-10-29 22:00
Codex CLI 是一套開源的編碼 agent,跑在你自己的終端機裡。在專案目錄敲下一行指令,它會讀檔案、改程式、執行命令,而它動過的每一處都只是普通的工作區改動:git diff 看得到,git checkout 退得掉。
同一個終端機,同一套 Git 習慣,旁邊多了一個真的會自己伸手動鍵盤的助手。

預設不出網
第一次跑起來的時候,它並不急著把你的程式碼往外送。官方文件講得很白:網路存取預設是關掉的,能寫的範圍也只到當前工作目錄。這條預設值比任何宣傳語都更能說明它的自我定位,因為它根本沒假設你一開始就完全信任它。
管住自己的方式分成兩道各自設定的閘門。一道是沙箱,管它「能碰什麼」;一道是審批,管它「什麼時候得先問你」。
沙箱有三段。唯讀模式完全不允許寫入;工作區寫入模式可以改當前目錄、預設不連網;完全開放模式把限制整個拿掉,官方建議只放在容器這種已經隔離好的環境裡。
審批自己也有三段。最嚴的那段,凡是它沒把握的命令都要先問;中間那段讓常規操作自己走,越界了才舉手;最後一段全程不打斷,留給已經準備妥當的受控環境。

日常做法其實很務實:改程式、跑測試這類活讓它自己做,碰上要裝相依套件、要連網路,再停下來讓你點一下。想放寬也不必把沙箱整個關掉,把需要存取的目錄單獨加進允許清單就夠了。
用 Rust 重寫之後
它最早是一個 Node.js 專案,2025 年下半年重寫成 Rust,現在的主線就是這版 Rust 實作。差別很具體:交付出來的是一個靜態編譯的單一執行檔,不必額外準備執行環境,對一台剛裝好系統、什麼都還沒有的機器特別友善。專案會自己發各平台的組建,macOS 上 Apple Silicon 與 Intel 分開,Linux 上兩種常見架構也分開。
它以 Apache 許可釋出,用 Rust 寫,專案描述一句話就夠:跑在你終端機裡的輕量編碼 agent。截至 2026 年 9 月中旬,這個專案已經累積了十二萬多個星標與將近兩萬個分支。
給它一份專案記憶
每次從零開始跟它解釋專案規矩,實在太累。解法是在儲存庫裡放一個 AGENTS.md,寫清楚怎麼建置、怎麼跑測試、哪些目錄別碰、程式風格偏哪一邊。這個檔案會被自動讀取,同樣的話不必每次重講。
查找是分層的:先看你本機的全域預設,再找儲存庫根目錄,最後看當前子目錄,從上層往下合併。所以個人習慣放全域,團隊約定放儲存庫,某個模組的特殊規矩就放進那個模組,各管一段。在會話裡敲 /init,它會把儲存庫讀一遍,順手把這個檔案搭出個初稿。
坐在旁邊用,或者掛起來跑
平常走的是互動式介面:用自然語言描述任務,它規劃、改檔案、執行命令,你在旁邊看進度、隨時插話。同一個畫面裡還有一串斜線命令處理日常。一個回報目前模型、權限設定與剩下多少上下文;一個列出這次會話動過什麼;一個讓它先自查一遍改動;一個在長會話裡把上下文壓一壓。

要放進流水線,就用 codex exec。它不開介面,接一個任務、跑完、退出,輸出可以直接交給下游消費:跑一次唯讀的儲存庫審查、把結論寫成檔案,或者用 JSON 事件流餵給腳本。會話也能接著上一次繼續,上下文不必重講一遍。定時任務與持續整合裡那種沒人盯著的活,走的正是這條路。
登入方式與花費
登入有兩條路:用 ChatGPT 帳號登進去,或者自己配一個 API key。走帳號這條,Codex 已經併進 ChatGPT 的訂閱體系,Plus、Pro、Business、Edu、Enterprise 都包含在內,Free 與 Go 兩檔目前也開放,屬於限時。額度按方案分層,用超了可以另外買 credits;走 API key 則按用量計費,帳單另計。

它把 agent 放進你已經在用的終端機,也把「能碰什麼」和「什麼時候問你」拆成兩個旋鈕。想讓它幫上忙,先把它關進沙箱——這不是不信任,而是讓它可以放心一直跑下去的前提。