搭配 Codex CLI 使用
這個外掛也支援 OpenAI 的 Codex CLI。開啟 Codex support 後,專案裡的 codex session 就會拿到操作 Unreal 工具的 MCP server,以及涵蓋長尾工具的 cu CLI——不用手動編輯任何設定。
兩種進入方式
Section titled “兩種進入方式”- Unreal CLI Bridge for Codex 版本——用同一份原始碼建置的第二個 Fab 產品,Codex support 預設就是開啟的。
- Claude Unreal 版本——自己手動開啟:Project Settings → Plugins → Claude Unreal → Agents → Codex support,或工具列的 Claude 按鈕 → 箭頭 → AGENTS → Codex support。
會寫入哪些檔案
Section titled “會寫入哪些檔案”| 寫入項目 | 位置 | 說明 |
|---|---|---|
| MCP server 註冊 | Codex 的全域設定,透過 codex mcp add | 名稱為 unreal-<ProjectName> |
AGENTS.md | 專案根目錄 | 從 CLAUDE.md 產生,是 Claude Code CLAUDE.md 的 Codex 版本 |
.codex/cu | 專案根目錄 | 跟 Claude Code 的 .claude/cu 是同一份 cu CLI 包裝,額外設定了 sandbox 可寫入的 uv 快取路徑 |
.codex/config.toml | 專案根目錄 | 完整的 MCP server 設定表,加上 sandbox 網路權限——內容如下 |
關閉 Codex support 時,只會移除外掛自己寫入、且你沒有動過的內容。
.codex/config.toml 的內容大致如下(角括號內為佔位字串):
# claude-unreal:managed 0a1b2c3d# Written by <displayName> when Codex support is turned on. Edit freely: an edited copy is never overwritten or removed.# Codex reads this file only once you trust the project.
[sandbox_workspace_write]network_access = true
[mcp_servers.unreal-<Project>]command = "<uv>"args = ["--directory", "<MCP dir>", "run", "<server script>"]default_tools_approval_mode = "approve"先信任專案一次
Section titled “先信任專案一次”Codex 只會在已信任的專案裡讀取 .codex/config.toml——codex 問是否信任這個資料夾時選是即可。
在未信任的專案裡,工具仍會從全域註冊載入,但每次呼叫都要手動核准,而且 .codex/cu 在 sandbox 裡連不到編輯器。
.codex/config.toml 授予了什麼
Section titled “.codex/config.toml 授予了什麼”- 網路權限:這個專案裡跑在 sandbox 中的指令可以對外連到所有網路,不只 loopback。Codex 沒有只開放 loopback 的選項,而
.codex/cu需要網路權限才能連到127.0.0.1:55557。 - 自動核准:
unreal-<ProjectName>這組工具會自動通過核准,相當於 Claude support 寫進.claude/settings.local.json的 allow 規則的 Codex 對應版本。這些工具在編輯器的行程裡執行,不在 Codex 的 sandbox 內:它們可以修改或刪除目前開啟的關卡裡的東西,跟你每次手動核准時一樣。
想關掉任一項,刪除或編輯這個檔案即可;改過的檔案不會被覆寫。
在 Windows 上
Section titled “在 Windows 上”-
執行
.codex\cu.cmd,不是.codex/cu。 沒有副檔名的.codex/cu是 POSIX shell 腳本;在 PowerShell 請用.\.codex\cu.cmd ping。產生的AGENTS.md也會這樣告訴 Codex。 -
注意 PowerShell 對 JSON 參數的引號處理。 PowerShell 傳參數給
.cmd檔時會去掉雙引號,所以--params-json '{"name": "X"}'到cu時變成{name: X},無法解析。建議改用 typed flags(.\.codex\cu.cmd exec exec_console_command --command "stat fps"),或--params-file params.json(用Set-Content寫檔,不要用>);一定要用--params-json時,把 JSON 裡的每個"寫成\"。產生的AGENTS.md也會告訴 Codex 同樣的規則。 -
設定 Codex 的 sandbox 模式。 沒設定時,Codex 會以
blocked by policy拒絕所有 shell 指令,MCP 工具可用但cu不行。在 Codex 設定裡指定:[windows]sandbox = "unelevated"
- 開啟有載入外掛的 UE 編輯器。
- 在專案目錄下執行
codex。 - 請它呼叫
ping工具。 - 請它執行
.codex/cu ping。
專案信任後,這兩項應該都會成功。
- Codex 的 MCP server 是全域的。 全域項目
unreal-<ProjectName>會被所有同名專案的 checkout 共用;在已信任的專案裡,.codex/config.toml會用這個 checkout 的路徑覆蓋它。專案搬移或刪除後,對應項目仍會留著,要自己執行codex mcp remove unreal-<ProjectName>才會移除。 - 重新註冊會覆寫全域項目。 只有在註冊項目不存在或已過時,外掛才會重新執行
codex mcp add;而codex mcp add會重寫這個項目——手動加上的欄位(例如env)以及緊接在設定表上方的註解都會被拿掉。自己的設定(例如startup_timeout_sec)請改寫進.codex/config.toml。 - 改過的
.codex/config.toml就不會再更新。 你一旦編輯過這個檔案,外掛就不會再更新它。如果外掛的路徑變了(例如為了另一個引擎版本重新安裝),請自己更新args路徑,或刪掉這個檔案讓外掛重新寫入——在已信任的專案裡,過時的設定表會蓋過全域項目。 - Codex 沒有 slash command、prompt 或 skill。 kit 跟 wall 的工作流程是純 Markdown 指南,agent 直接讀取(
Resources/Commands/kit.md、wall.md)。 - 沒有內建的城堡 blockout kit。 Codex 版本不含
Content/裡打包的 kit,城堡相關工具會回報找不到預設 kit——請自備 kit 並指定路徑。 - Windows:專案路徑中有資料夾名稱剛好是已定義的環境變數。 例如資料夾名稱就是
%USERNAME%時,用絕對路徑執行cu.cmd會失敗:cmd會先展開批次檔自身的路徑,才讀取檔案內容。MCP 工具不受影響。