
你是否也有跟我遇過一樣的問題,在 Claude Code 裡累積了一批 skill,現在可能因為 Claude code 的額度用完,所以想嘗試把相關的 skill 放到 ChatGPT 的 Codex 來使用,這時通常浮現的第一個問題是「這樣我要從頭重寫嗎?」其實大多數情況下不用。但有幾個地方如果不知道,複製過去會默默失效。
兩個工具用的是同一套規格

2025 年 12 月,Anthropic 把 Agent Skills 的格式發布為開放標準。規格公開後 48 小時內,OpenAI 的 Codex CLI 就加入支援,Microsoft 的 VS Code Copilot 也是。截至 2026 年 3 月,這套格式已被 32 個工具採用,包括 Gemini CLI、JetBrains Junie 和 AWS Kiro。
這套標準刻意維持極簡。一個 skill 就是一個資料夾,裡面放 SKILL.md,前言(frontmatter)只有兩個必填欄位:
---
name: skill-name
description: 說明這個 skill 做什麼、在什麼情境使用
---
body 是 markdown,可以是任何指令格式。這個最小結構,Claude Code 和 Codex 都完全支援。
直接複製就能用的部分
基礎格式相容代表下面這些不需要改:
- frontmatter 的
name和description - 整個 markdown 指令 body
scripts/、references/、assets/目錄結構- body 裡寫的步驟列表、範例、邊界條件說明
唯一需要調整的是儲存路徑。Claude Code 從 ~/.claude/skills/ 和 .claude/skills/ 讀取 skill;Codex 放在 ~/.agents/skills/。內容一樣,只是資料夾位置不同。
搬到 Codex 會出問題的三個地方

1. 動態上下文注入(! 語法)
Claude Code 有一個自己擴充的功能:在 SKILL.md 裡用 ! 語法,Claude Code 會在把指令傳給模型之前先執行 shell 指令,把輸出嵌入進去。例如:command
## 目前的改動
!`git diff HEAD`
這行在 Claude Code 裡會變成實際的 diff 內容再送給模型。Codex 看到的卻是原始文字,不會被執行。這是 Claude Code 的專屬語法,Agent Skills 基礎標準不包含它,OpenAI 也沒有相對應的機制。
移植時最直接的做法是把這些行改成指令,讓模型自己去執行:
## 目前的改動
請先執行 git diff HEAD,再根據輸出繼續。
效果接近,差別是動態注入在模型看到任何東西之前就執行完了,改成指令則需要一個工具呼叫的來回。
2. Claude Code 專屬的 frontmatter 控制欄位
Claude Code 在 SKILL.md frontmatter 裡加了許多自己的控制欄位,Codex 遇到這些欄位直接忽略:
| Claude Code frontmatter | 用途 | Codex 的對應做法 |
|---|---|---|
disable-model-invocation: true | 關掉 AI 自動觸發,只能手動用 /name 呼叫 | 在 agents/openai.yaml 設 allow_implicit_invocation: false |
context: fork | 用獨立 subagent 執行 | 無直接對應,拿掉即可 |
user-invocable: false | 隱藏,只讓 AI 自動載入 | 無對應 |
argument-hint、arguments | 定義命名參數 | 無對應,在 body 說明參數格式即可 |
paths | 限定特定檔案路徑才觸發 | 無對應 |
最需要注意的是 disable-model-invocation: true。如果你的 skill 設了這個,搬到 Codex 之後 Codex 看不懂,預設把 skill 當成可以自動觸發的,跟你原本想要的相反。需要另外在 skill 資料夾加一個 agents/openai.yaml:
policy:
allow_implicit_invocation: false
Codex 把 UI 設定和觸發控制放在這個獨立檔案,而不是塞進 SKILL.md frontmatter,兩個工具的設計概念不一樣。
3. 儲存路徑
前面提過,但值得單獨確認一次。Codex 的 skill 放在 ~/.agents/skills/,Claude Code 放在 ~/.claude/skills/。兩個工具不會互相讀對方的目錄,所以複製時要把整個 skill 資料夾複製到對的位置。
從 Codex 搬回 Claude Code 更容易
方向反過來反而沒什麼障礙。Codex 的 agents/openai.yaml 在 Claude Code 裡完全被忽略,不會壞任何東西。Codex 的 SKILL.md 通常只有標準的 name 和 description,Claude Code 完全支援。
搬進 Claude Code 之後,如果想用 Claude Code 的進階功能,才需要另外加 frontmatter 欄位或 ! 注入語法,但這是選擇要不要加,不是必須改才能動。command
學術論文有研究這件事嗎?
專門研究「CLI skill 跨工具移植性」的論文目前沒有,Agent Skills 標準到 2025 年底才出現,這個問題太新。
比較相關的是這篇 arXiv 論文,研究的是 agentic coding assistant 裡 skill 生態圈的安全問題。Snyk 的研究團隊在測試過的 skill 裡發現 36% 有 prompt injection 風險,在公開 skill 倉庫裡抓到 1,467 個惡意 payload。這跟移植性無關,但如果你是從公開倉庫搬別人寫的 skill,這個數字值得知道。
還是不確定怎麼改?讓 Codex 幫你轉
如果看完還是不確定自己的 skill 哪裡需要改,最省事的做法是直接把 SKILL.md 的內容貼給 Codex,然後說:「這是一個 Claude Code skill,請幫我改成 Codex 相容的版本,並把檔案存到正確的資料夾。」Codex 認得 Claude Code 的專屬語法,通常能幫你處理掉動態注入和 frontmatter 欄位的轉換,不用自己逐行對照。





