AI 程式設計教學中文版
官方教學中文版產品入口

CLI 引數怎麼用

把 Codex CLI 引數按任務入口、許可權控制和自動化場景拆開,避免把會隨版本變化的命令清單寫死。

📖 本篇術語速查表
英文 / 縮寫中文一句話解釋
sandbox / approval許可權引數控制能做什麼、要不要問的核心引數。
-c 覆蓋one-off override用 -c 做一次性設定覆蓋。
Profile設定檔把常用工作模式打包成 profile。

不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你用對 CLI 引數(許可權優先看 sandbox/approval,臨時用 -c,常用模式用 profile)。

你是 Codex CLI 引數設定顧問,幫我用對啟動引數,許可權先管住、臨時用 -c、常用模式用 profile。

【角色】
你清楚 CLI 引數的三類用途、最常用入口、許可權引數優先看 sandbox 和 approval、臨時設定用 -c、profile 適合常用工作模式。

【輸入】
- 我要跑的任務和風險:___
- 是臨時一次還是常用模式:___
- 對許可權的要求:___
- 是否多場景切換:___

【工作流程】
1. 按用途歸類我要的引數
2. 先定許可權引數(sandbox / approval)
3. 臨時需求用 -c 覆蓋
4. 常用模式打包成 profile

【輸出規範】
▌一、引數用途歸類
▌二、許可權引數設定
▌三、-c 臨時覆蓋用法
▌四、profile 設計(若常用)

【硬約束】
- 許可權引數預設最小,能只讀不寫
- 臨時放開用 -c,不輕易改全域
- profile 命名清晰,避免混用
- 不確定的引數標註需查官方文件
- 給的引數能直接用

Codex CLI 的引數不要按“完整列表”學習。更實用的方式是先判斷你要啟動哪類任務,再決定使用哪些引數覆蓋預設設定。

官方 CLI 會繼續演進,完整命令和 flag 以 codex --help、子命令 --help 和官方 CLI Features 為準。本頁只保留穩定用法和風險邊界。

記住一個原則:長期預設值寫進 config.toml,專案規則寫進 .codex/,本次臨時變化才用 CLI 引數。

CLI 引數的三類用途

flowchart TB
    Start["codex 命令"] --> Entry["選擇任務入口"]
    Start --> Boundary["設定執行邊界"]
    Start --> Override["覆蓋本次設定"]

    Entry --> TUI["interactive TUI"]
    Entry --> Exec["codex exec"]
    Entry --> Cloud["cloud / apply / resume"]

    Boundary --> Sandbox["sandbox"]
    Boundary --> Approval["approval"]
    Boundary --> Workspace["working directory / extra dirs"]

    Override --> Model["model / profile"]
    Override --> Feature["feature flags"]
    Override --> Config["-c key=value"]

讀引數時先問:

  • 我是在開啟互動式 TUI,還是跑一次自動化任務。
  • 這次是否允許改檔案、聯網、執行命令。
  • 這次變化應該臨時生效,還是應該寫進設定檔。

如果這三個問題沒想清楚,引數越多越容易誤用。

最常用入口

開啟互動式 TUI:

codex

帶一個初始任務進入 TUI:

codex "检查这个 PR 的风险点"

在指定目錄啟動:

codex --cd /path/to/repo

非互動執行一次任務:

codex exec "运行测试并总结失败原因"

把 stdin 作為任務輸入:

cat prompt.md | codex exec -

這些入口的差別不是“命令長短”,而是互動模型不同:TUI 適合邊看邊改,exec 適合指令碼化、CI、批處理。

許可權引數優先看 sandbox 和 approval

Codex 會讀檔案、改檔案、呼叫工具。啟動前最重要的是許可權邊界。

常見組合:

codex --sandbox read-only --ask-for-approval on-request
codex --sandbox workspace-write --ask-for-approval on-request
codex exec --sandbox workspace-write --ask-for-approval never "运行只读审计"

使用建議:

  • 只想讓它分析專案,用 read-only
  • 允許它改目前 workspace,用 workspace-write
  • 需要訪問 workspace 外目錄時,明確傳入額外目錄,而不是放開全部許可權。
  • 自動化執行如果使用 never,必須確保外層 runner 已經隔離。
  • 不要把危險組合寫成團隊預設值。

--dangerously-bypass-approvals-and-sandbox / --yolo 只適合外部已經隔離、可回復、低價值環境。它不是“更省事”的日常模式。

臨時設定用 -c

-c / --config 用於覆蓋本次 invocation 的設定。它適合臨時實驗,不適合替代正式設定。

codex -c model_reasoning_effort='"high"'
codex -c sandbox_mode='"read-only"'
codex -c 'features.codex_hooks=true'

注意:

  • 值按 TOML 解析;字串通常要加引號。
  • Nested key 可以用點號。
  • 同一個引數可以重複傳入。
  • 如果某個覆蓋值每次都要寫,應回到 config.toml 或 profile。

這也是排查設定問題的好方法:先用 -c 驗證單次行為,再決定是否固化。

Profile 適合常用工作模式

如果你經常切換模式,不要每次手寫一長串引數。用 profile。

[profiles.review]
sandbox_mode = "read-only"
approval_policy = "on-request"

[profiles.implementation]
sandbox_mode = "workspace-write"
approval_policy = "on-request"

啟動:

codex --profile review
codex --profile implementation

Profile 最適合表達“我現在要進入哪種工作狀態”。它比臨時 flag 更穩定,也比複製命令更少出錯。

exec 用於自動化,不等於放棄審查

codex exec 常用於批處理、指令碼和 CI 風格任務。

codex exec "检查 docs 中有没有失效链接"

適合場景:

  • 對一批檔案做一致性檢查。
  • 在 CI 或指令碼里生成結構化結果。
  • 從 stdin 讀取長 prompt。
  • 讓 Codex 完成一次明確、可驗證的任務。

不適合場景:

  • 需求還在討論。
  • 需要頻繁人工決策。
  • 需要對生產環境做不可逆操作。
  • 任務邊界不清楚但許可權很大。

自動化入口更要明確 sandbox、approval、工作目錄和輸出格式。

Remote 和 app-server 要先處理認證邊界

Codex CLI 支援把 TUI 連線到 remote app-server。這類能力適合本地開發、遠端工作區和特殊整合,但預設不應暴露給不受信任網路。

使用時重點檢查:

  • endpoint 是否只在可信網路可達。
  • token 是否透過安全渠道傳遞。
  • ws:// 是否僅用於 localhost 或受控環境。
  • app-server 是否有清晰的啟動和關閉方式。

如果不確定認證和網路邊界,不要為了方便直接暴露 remote endpoint。

MCP 和外掛類命令先看用途

Codex CLI 也包含 MCP、features、completion、cloud、apply、resume 等命令。學習順序建議:

  1. 先掌握 codexcodex exec
  2. 再掌握 sandbox、approval、profile、-c
  3. 然後設定 MCP servers。
  4. 最後處理 cloud、remote、app-server、plugin marketplace 這類擴充套件能力。

這樣學不會被命令數量帶偏。CLI 的核心價值始終是:在正確邊界內把 Codex 接入真實工程任務。

日常命令模板

只讀審計:

codex --sandbox read-only --ask-for-approval on-request

普通本地實現:

codex --sandbox workspace-write --ask-for-approval on-request

單次高推理任務:

codex -c model_reasoning_effort='"high"' "审查这次重构的风险"

指令碼化檢查:

codex exec --sandbox read-only --ask-for-approval never "列出 docs 中需要人工复核的页面"

這些模板不要原樣當成永久標準。最終應該根據你的專案風險、團隊規範和執行環境沉澱成 profiles。

不建議寫死的內容

教學和團隊文件裡不建議長期寫死這些清單:

  • 完整 CLI flag 表。
  • 完整子命令表。
  • 模型列表和價格。
  • 實驗 feature flag 列表。
  • remote / app-server 的內部協議細節。

它們更新頻率高,寫死後很快變成誤導。更穩的寫法是說明“怎麼查、怎麼選、怎麼控制風險”。

團隊文件怎麼寫

團隊內部寫 Codex CLI 教學時,不要把頁面變成命令速查表。命令速查表會隨版本變化,很快失效;更穩定的寫法是把“入口選擇、許可權邊界、驗證動作、回復方式”寫清楚。新人真正需要知道的是:什麼時候進入 TUI,什麼時候用 exec,什麼時候必須只讀,什麼時候要停下來讓負責人確認。

商業專案裡還要把 CLI 引數和團隊預設 profile 對齊。文件可以給出推薦模式,但最終應落到 config.toml、專案規則和 CI 檢查裡。這樣每個人啟動 Codex 時看到的是一致邊界,而不是從聊天記錄裡複製一串臨時引數。

本頁目錄