Skip to content
docs / codex
更新日誌 ← 回到網站 GitHub

搭配 Codex CLI 使用

這個外掛也支援 OpenAI 的 Codex CLI。開啟 Codex support 後,專案裡的 codex session 就會拿到操作 Unreal 工具的 MCP server,以及涵蓋長尾工具的 cu CLI——不用手動編輯任何設定。

  • Unreal CLI Bridge for Codex 版本——用同一份原始碼建置的第二個 Fab 產品,Codex support 預設就是開啟的。
  • Claude Unreal 版本——自己手動開啟:Project Settings → Plugins → Claude Unreal → Agents → Codex support,或工具列的 Claude 按鈕 → 箭頭 → AGENTS → Codex support。
寫入項目位置說明
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"

Codex 只會在已信任的專案裡讀取 .codex/config.toml——codex 問是否信任這個資料夾時選是即可。

在未信任的專案裡,工具仍會從全域註冊載入,但每次呼叫都要手動核准,而且 .codex/cu 在 sandbox 裡連不到編輯器。

  • 網路權限:這個專案裡跑在 sandbox 中的指令可以對外連到所有網路,不只 loopback。Codex 沒有只開放 loopback 的選項,而 .codex/cu 需要網路權限才能連到 127.0.0.1:55557。
  • 自動核准:unreal-<ProjectName> 這組工具會自動通過核准,相當於 Claude support 寫進 .claude/settings.local.json 的 allow 規則的 Codex 對應版本。這些工具在編輯器的行程裡執行,不在 Codex 的 sandbox 內:它們可以修改或刪除目前開啟的關卡裡的東西,跟你每次手動核准時一樣。

想關掉任一項,刪除或編輯這個檔案即可;改過的檔案不會被覆寫。

  • 執行 .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"
  1. 開啟有載入外掛的 UE 編輯器。
  2. 在專案目錄下執行 codex。
  3. 請它呼叫 ping 工具。
  4. 請它執行 .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 工具不受影響。