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 Features
檢視 Codex CLI 的 TUI、slash commands、remote app server、MCP、exec 等官方能力說明。
Configuration Reference
檢視引數背後的設定 key、型別、預設值和可用範圍。
Agent Security
理解 approval、sandbox、network access 和 agent 執行邊界。
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 implementationProfile 最適合表達“我現在要進入哪種工作狀態”。它比臨時 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 等命令。學習順序建議:
- 先掌握
codex和codex exec。 - 再掌握 sandbox、approval、profile、
-c。 - 然後設定 MCP servers。
- 最後處理 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 時看到的是一致邊界,而不是從聊天記錄裡複製一串臨時引數。