<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Oh-My-Codex on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/oh-my-codex/</link>
        <description>Recent content in Oh-My-Codex on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Mon, 25 May 2026 07:41:45 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/oh-my-codex/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>oh-my-codex：給 Codex CLI 加上工作流、技能和執行時護欄</title>
        <link>https://knightli.com/zh-tw/2026/05/25/oh-my-codex-codex-cli-workflow-layer/</link>
        <pubDate>Mon, 25 May 2026 07:41:45 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/05/25/oh-my-codex-codex-cli-workflow-layer/</guid>
        <description>&lt;p&gt;&lt;code&gt;Yeachan-Heo/oh-my-codex&lt;/code&gt;，簡稱 OMX，是一個圍繞 OpenAI Codex CLI 的工作流層。&lt;/p&gt;
&lt;p&gt;專案地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Yeachan-Heo/oh-my-codex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Yeachan-Heo/oh-my-codex&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;它想解決的不是「再做一個新的 coding agent」，而是讓已經在使用 Codex CLI 的人，有一套更穩定的日常工作方式：啟動時帶上專案指令，任務變複雜時先釐清再規劃，執行時有 durable goal 和狀態記錄，收尾時用 review 和 QA 把結果壓住。&lt;/p&gt;
&lt;p&gt;截至寫作時，GitHub 頁面顯示倉庫約有 29.4k star，最新 release 是 &lt;code&gt;v0.18.1&lt;/code&gt;，發布時間為 2026 年 5 月 21 日。README 也明確說，官方專案是 &lt;code&gt;Yeachan-Heo/oh-my-codex&lt;/code&gt;，官方 npm 套件是 &lt;code&gt;oh-my-codex&lt;/code&gt;，不要把第三方 “OMX v2” 專案誤認為這個倉庫的官方延續。&lt;/p&gt;
&lt;h2 id=&#34;它到底是什麼&#34;&gt;它到底是什麼
&lt;/h2&gt;&lt;p&gt;OMX 不替代 Codex。&lt;/p&gt;
&lt;p&gt;它保留 Codex CLI 作為實際執行引擎，自己主要補三類東西：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;更固定的任務流程。&lt;/li&gt;
&lt;li&gt;可複用的 prompts、skills 和 specialist agents。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.omx/&lt;/code&gt; 目錄下的計劃、日誌、狀態和執行時記錄。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;換句話說，Codex 負責「動手幹活」，OMX 負責「讓幹活過程更像工程流程」。這也是它和普通 prompt 包最大的差別：它不是只往系統提示詞裡塞規則，而是把釐清、規劃、執行、檢查、團隊協作和執行時診斷拆成一組可呼叫的工作面。&lt;/p&gt;
&lt;h2 id=&#34;推薦安裝方式&#34;&gt;推薦安裝方式
&lt;/h2&gt;&lt;p&gt;README 和 Getting Started 文件都強調：OMX 預設推薦在 macOS 或 Linux 上搭配 Codex CLI 使用。原生 Windows 和 Codex App 不是它目前最主要的體驗路徑，可能會有不一致或不完整支援。&lt;/p&gt;
&lt;p&gt;如果你已經裝好了 Codex CLI，可以這樣開始：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g oh-my-codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;omx setup
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;omx doctor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你還沒有 Codex CLI，並且希望 npm 管理安裝：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @openai/codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g oh-my-codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;omx setup
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;omx doctor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這裡有一個細節：不要在已經由 Homebrew 管理 &lt;code&gt;codex&lt;/code&gt; 的機器上，直接把 &lt;code&gt;@openai/codex&lt;/code&gt; 和 &lt;code&gt;oh-my-codex&lt;/code&gt; 合併成一個全域安裝命令。README 提到，Homebrew 擁有的 &lt;code&gt;codex&lt;/code&gt; 二進位可能會和 npm 安裝發生 &lt;code&gt;EEXIST&lt;/code&gt; 衝突。OMX 只需要一個可用、已登入、在 &lt;code&gt;PATH&lt;/code&gt; 上的 &lt;code&gt;codex&lt;/code&gt; 命令，並不要求 Codex 一定由 npm 安裝。&lt;/p&gt;
&lt;p&gt;安裝完成後，建議再跑一次真實執行煙測：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex login status
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;omx &lt;span class=&#34;nb&#34;&gt;exec&lt;/span&gt; --skip-git-repo-check -C . &lt;span class=&#34;s2&#34;&gt;&amp;#34;Reply with exactly OMX-EXEC-OK&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;omx doctor&lt;/code&gt; 只能證明本地安裝結構大體正常，不能證明目前 shell/profile 裡的 Codex 帳號、代理、base URL 和認證鏈路真的能發起模型呼叫。這個區分很實際，尤其是你在不同 HOME、容器、遠端環境或本地 OpenAI 相容代理裡切換時。&lt;/p&gt;
&lt;h2 id=&#34;預設工作流&#34;&gt;預設工作流
&lt;/h2&gt;&lt;p&gt;OMX 的主線工作流大致是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$deep-interview &amp;#34;clarify the authentication change&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ralplan &amp;#34;approve the auth plan and review tradeoffs&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$prometheus-strict &amp;#34;stress-test the plan before durable execution&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ultragoal &amp;#34;turn the approved plan into durable Codex goals&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;其中最常用的是三步：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$deep-interview&lt;/code&gt;：在需求還不清楚時追問邊界、目標和非目標。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ralplan&lt;/code&gt;：把需求整理成計劃，並經過架構與批判視角確認。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ultragoal&lt;/code&gt;：把批准後的計劃轉成更耐跑的目標和檢查點。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果任務需要並行協作，可以在 Ultragoal story 裡用 &lt;code&gt;$team&lt;/code&gt;；如果只需要一個持續推進的單人循環，可以用 &lt;code&gt;$ralph&lt;/code&gt;。這套命名看起來有點重，但背後的想法很清楚：不要讓 agent 一聽到需求就急著改文件，而是先把「要做什麼、怎麼做、怎麼驗收、什麼時候停」寫清楚。&lt;/p&gt;
&lt;h2 id=&#34;skills-和-agents-提供了什麼&#34;&gt;skills 和 agents 提供了什麼
&lt;/h2&gt;&lt;p&gt;OMX 文件把技能分成幾類。&lt;/p&gt;
&lt;p&gt;Canonical Workflow 裡有 &lt;code&gt;$deep-interview&lt;/code&gt;、&lt;code&gt;$ralplan&lt;/code&gt;、&lt;code&gt;$prometheus-strict&lt;/code&gt;、&lt;code&gt;$ultragoal&lt;/code&gt;、&lt;code&gt;$code-review&lt;/code&gt; 和 &lt;code&gt;$ultraqa&lt;/code&gt;。這些面向的是完整工程任務：先釐清，再規劃，再執行，再審查，再 QA。&lt;/p&gt;
&lt;p&gt;Execution Modes 裡有 &lt;code&gt;$team&lt;/code&gt;、&lt;code&gt;$ralph&lt;/code&gt;、&lt;code&gt;$autopilot&lt;/code&gt;、&lt;code&gt;$ultrawork&lt;/code&gt; 等。它們決定任務是單線推進、團隊並行，還是更強的自動循環。&lt;/p&gt;
&lt;p&gt;Agent Catalog 則更像角色庫，包括 &lt;code&gt;analyst&lt;/code&gt;、&lt;code&gt;planner&lt;/code&gt;、&lt;code&gt;architect&lt;/code&gt;、&lt;code&gt;debugger&lt;/code&gt;、&lt;code&gt;executor&lt;/code&gt;、&lt;code&gt;verifier&lt;/code&gt;、&lt;code&gt;security-reviewer&lt;/code&gt;、&lt;code&gt;performance-reviewer&lt;/code&gt;、&lt;code&gt;code-reviewer&lt;/code&gt;、&lt;code&gt;test-engineer&lt;/code&gt;、&lt;code&gt;designer&lt;/code&gt;、&lt;code&gt;researcher&lt;/code&gt; 等。你不一定每天都要手動點名這些角色，但它們說明 OMX 的定位不是「萬能大 prompt」，而是把工程過程拆成可複用的角色和階段。&lt;/p&gt;
&lt;p&gt;這對長期專案有意義。AI 編程裡很多失敗不是模型完全不會寫程式碼，而是它太快進入執行，跳過需求確認、架構邊界、測試基線和收尾審查。OMX 試圖用技能和角色把這些步驟固化下來。&lt;/p&gt;
&lt;h2 id=&#34;插件形態和執行時狀態&#34;&gt;插件形態和執行時狀態
&lt;/h2&gt;&lt;p&gt;README 提到，倉庫裡也包含官方 Codex plugin layout，路徑是 &lt;code&gt;plugins/oh-my-codex&lt;/code&gt;，並帶有 marketplace metadata。&lt;/p&gt;
&lt;p&gt;但文件也強調：這個插件形態不是 &lt;code&gt;npm install -g oh-my-codex&lt;/code&gt; 加 &lt;code&gt;omx setup&lt;/code&gt; 的替代品。插件作用更像是把 hooks、skill surface 和 Codex 生命週期整合包裝起來，真正執行時仍然依賴已安裝的 &lt;code&gt;omx&lt;/code&gt; CLI。&lt;/p&gt;
&lt;p&gt;最新 &lt;code&gt;v0.18.1&lt;/code&gt; release 的重點也集中在這條線上：插件安裝會使用 pinned OMX launcher，hook 失敗時更保守，Ultragoal 狀態變更會序列化，release packaging 會排除 crate-local &lt;code&gt;.omx&lt;/code&gt; runtime cache，並同步 npm、Cargo workspace、lockfile 和插件 manifest 的版本號。&lt;/p&gt;
&lt;p&gt;這些變化說明 OMX 已經不只是 prompt 倉庫，它開始認真處理安裝形態、hook 安全、狀態寫入、release 包內容和跨執行時一致性。對工具鏈來說，這些都屬於「不炫但很要命」的工程細節。&lt;/p&gt;
&lt;h2 id=&#34;適合誰&#34;&gt;適合誰
&lt;/h2&gt;&lt;p&gt;OMX 比較適合已經在認真使用 Codex CLI 的開發者，尤其是這些場景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;經常讓 Codex 處理多文件、多步驟任務。&lt;/li&gt;
&lt;li&gt;希望 agent 先釐清需求，而不是直接改程式碼。&lt;/li&gt;
&lt;li&gt;想把計劃、執行、檢查、review 和 QA 分開管理。&lt;/li&gt;
&lt;li&gt;需要在專案裡保留 &lt;code&gt;.omx/&lt;/code&gt; 狀態、計劃和日誌。&lt;/li&gt;
&lt;li&gt;想嘗試 tmux/team runtime 或更強的長任務推進方式。&lt;/li&gt;
&lt;li&gt;團隊願意把自己的工程習慣沉澱成 skills 和 prompts。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是偶爾讓 Codex 改一行設定、生成一個腳本、解釋一段程式碼，OMX 可能會顯得偏重。它更像是給高頻 AI 編程使用者準備的工具腰帶，而不是新手必須安裝的第一層入口。&lt;/p&gt;
&lt;h2 id=&#34;使用時要注意什麼&#34;&gt;使用時要注意什麼
&lt;/h2&gt;&lt;p&gt;第一，不要把 OMX 當成「無人值守自動完成一切」的保證。它能強化流程，但不能替你判斷需求是否合理、架構是否該改、風險是否可接受。&lt;/p&gt;
&lt;p&gt;第二，平台邊界要看清楚。README 現在明確推薦 macOS/Linux + Codex CLI。Windows 原生路徑存在，但不是預設最佳體驗。如果你在 Windows 上使用，WSL2 通常比原生終端更穩。&lt;/p&gt;
&lt;p&gt;第三，&lt;code&gt;omx doctor&lt;/code&gt; 不是最終驗收。真正能證明環境可用的是 &lt;code&gt;codex login status&lt;/code&gt; 加 &lt;code&gt;omx exec&lt;/code&gt; 這種實際模型呼叫測試。&lt;/p&gt;
&lt;p&gt;第四，流程越強，越需要你寫清楚任務邊界。&lt;code&gt;$ultragoal&lt;/code&gt;、&lt;code&gt;$team&lt;/code&gt;、&lt;code&gt;$autopilot&lt;/code&gt; 這類能力適合有驗收標準的任務。如果需求本身還很含糊，應該先用 &lt;code&gt;$deep-interview&lt;/code&gt; 或普通對話把邊界拉清楚。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;oh-my-codex 的價值不在於讓 Codex「變成另一個工具」，而在於給 Codex CLI 加了一層更工程化的工作方式。&lt;/p&gt;
&lt;p&gt;它把 AI 編程從「我說一句，你改一輪」往「釐清、規劃、執行、檢查、記錄狀態」推進了一步。對輕量任務來說，這可能有點重；但對經常用 Codex 做真實專案的人來說，穩定流程、可複用技能、執行時診斷和 durable goal 反而是省心的關鍵。&lt;/p&gt;
&lt;p&gt;如果你已經把 Codex CLI 當成日常開發工具，OMX 值得試一下。即使不直接安裝，它對 skills、agents、計劃和驗收流程的拆法，也很適合拿來改造自己的 AI 編程工作流。&lt;/p&gt;
&lt;h2 id=&#34;參考資料&#34;&gt;參考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Yeachan-Heo/oh-my-codex：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Yeachan-Heo/oh-my-codex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Yeachan-Heo/oh-my-codex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Getting Started：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Yeachan-Heo/oh-my-codex/blob/main/docs/getting-started.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Yeachan-Heo/oh-my-codex/blob/main/docs/getting-started.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Agent Catalog：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Yeachan-Heo/oh-my-codex/blob/main/docs/agents.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Yeachan-Heo/oh-my-codex/blob/main/docs/agents.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills Reference：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Yeachan-Heo/oh-my-codex/blob/main/docs/skills.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Yeachan-Heo/oh-my-codex/blob/main/docs/skills.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;v0.18.1 release：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Yeachan-Heo/oh-my-codex/releases/tag/v0.18.1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Yeachan-Heo/oh-my-codex/releases/tag/v0.18.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
