1,124· 191 forks· Python· MIT开发工具

Codex CLI 指令部署工具:全域性提示詞管理與回滾

Jia-Ethan/codex-keysmith

為 Codex CLI 提供版本化指令部署、預演、備份與分層解除安裝的 Python 單檔案工具,支援中斷恢復和 hooks 隔離

成熟度維護活躍,3天前最新提交,open issues 1個,新專案處於早期階段

项目体检

技术 · Python 单文件脚本,标准库实现,支持 Python 3.10-3.14

许可 · MIT 协议,可自由商用、修改与分发

活跃 · 3天前最新提交,1个贡献者,v0.1.0 发布于2026年7月,新项目活跃开发中

解決什麼

Codex CLI 的全域性指令配置分散在 config.tomlmodel_instructions_file 欄位中,手動修改容易出錯且難以回滾。codex-keysmith 提供版本化的指令部署流程:預演(dry-run)展示即將修改的檔案、備份原配置、寫入新指令 Markdown、隔離現有 hooks 防止衝突,並生成帶指紋的部署清單支援分層解除安裝。工具還實現了持久化事務日誌,即使 SIGKILL 中斷也能通過 --recover 檢查和恢復到一致狀態,避免配置損壞導致 Codex 無法啟動。

為何火

該專案在 GitHub 上獲得 1124 stars,主要因為填補了 Codex CLI 生態的配置管理空白。Codex 的指令檔案是全域性生效的頂層配置,影響所有新會話,但官方未提供版本控制或回滾機制。codex-keysmith 用單檔案 Python 指令碼(零執行時依賴)實現了類似包管理器的部署流程,並內建了一個移除模型拒絕機制的提示詞示例(gpt-unrestricted.md),吸引了需要突破預設限制的開發者。專案強調"先預覽再確認"的安全流程,以及通過 SHA-256 校驗防止供應鏈篡改,在安全敏感場景中獲得認可。

核心功能

  1. 版本化部署: 將 Markdown 指令檔案部署到 Codex 配置目錄,自動更新 config.toml 中的 model_instructions_file 路徑
  2. 預演模式: --dry-run 顯示將修改的檔案、備份路徑、hooks 隔離計劃和內建提示詞的 SHA-256,無需 --yes 即可安全檢查
  3. hooks 隔離: 預設將活躍的 hooks.json 重新命名為 .hooks.json.codex-keysmith-disabled,避免與全域性指令衝突,可通過 --skip-hooks-isolation 跳過
  4. 分層解除安裝: 生成 .codex-keysmith-manifest.json 記錄部署的檔案和配置變更,解除安裝時只移除工具管理的資源,保留使用者手動新增的內容
  5. 中斷恢復: 首次修改前建立持久化事務日誌,中斷後通過 --recover 檢查並恢復到部署前或部署後的一致狀態
  6. 內建提示詞: v0.1.0 嵌入 gpt-unrestricted.md(SHA-256: 0ac8420d...),指示模型避免拒絕式回覆、重解釋安全請求為本地樣本、覆蓋成人題材等,也可通過 --file 部署自定義指令

安裝

固定版本安裝(推薦):

# 下載 v0.1.0 Release 資產
base='https://github.com/Jia-Ethan/codex-keysmith/releases/download/v0.1.0'
curl -LO "$base/codex-instruct-v0.1.0.py"
curl -LO "$base/SHA256SUMS"

# 校驗完整性
shasum -a 256 -c SHA256SUMS  # macOS/Linux
# 或 sha256sum --check SHA256SUMS  # Linux

# 驗證安裝
python3 codex-instruct-v0.1.0.py --version

首次部署:

# 檢查當前狀態
python3 codex-instruct-v0.1.0.py --codex-dir ~/.codex --status --lang zh-CN

# 預演部署計劃
python3 codex-instruct-v0.1.0.py --codex-dir ~/.codex --dry-run --lang zh-CN

# 確認後執行(需顯式 --yes)
python3 codex-instruct-v0.1.0.py --codex-dir ~/.codex --yes --lang zh-CN

部署後需關閉舊 Codex 會話並啟動新會話,配置才會生效。解除安裝用 --uninstall --yes,中斷恢復用 --recover --yes

適合誰

  1. Codex 重度使用者: 需要定製全域性模型行為(如移除安全護欄、新增領域知識、統一程式碼風格),且希望配置可版本控制和回滾
  2. 安全研究者: 在隔離環境中測試模型的邊界行為,內建的 gpt-unrestricted.md 提供了繞過拒絕機制的起點
  3. 團隊協作場景: 通過 Git 管理自定義指令檔案,用 codex-keysmith 在團隊成員機器上一致部署
  4. 配置潔癖者: 不想手動編輯 TOML 或擔心誤刪配置,需要工具保證原子性操作和自動備份

不適合: 只用 Codex 預設配置的普通使用者;需要專案級(而非全域性)指令隔離的場景(工具修改的是頂層配置,影響所有會話)。

社群評價

暫無足量社群公開討論,以下為基於專案本身的中立評估:

專案在一個月內獲得 1124 stars 和 191 forks,增長速度較快,表明 Codex 使用者對配置管理工具有明確需求。程式碼庫包含完整的測試套件(pytest + coverage ≥80%)、CI 工作流和詳盡的事務文件(docs/transactions/),工程質量較高。README 用大量警告框強調全域性行為邊界和內建提示詞的影響範圍,顯示作者對安全責任的重視。

潛在爭議點在於內建提示詞的激進設定:移除拒絕機制、重解釋安全請求、覆蓋成人內容等,這在生產環境或共享裝置上可能引發合規風險。專案通過強制預覽 + SHA-256 校驗 + 顯式 --yes 的三層確認流程緩解風險,但使用者仍需自行評估法律和倫理邊界。另一個限制是 Windows 支援標記為 experimental,CI 中 Windows 矩陣為非阻斷觀察項,跨平臺可靠性有待驗證。

選型對比

vs 手動編輯 config.toml:

  • codex-keysmith 優勢: 原子性操作、自動備份、中斷恢復、分層解除安裝、SHA-256 校驗
  • 手動編輯優勢: 無需額外工具,適合一次性修改
  • 取捨: 頻繁切換指令或團隊協作場景選 codex-keysmith,偶爾調整選手動

vs Git 直接管理 .codex 目錄:

  • codex-keysmith 優勢: 不汙染 Git 歷史(備份在 .bak 目錄),支援 hooks 隔離和事務恢復
  • Git 優勢: 通用版本控制,可管理更多配置檔案
  • 取捨: 只管理指令檔案選 codex-keysmith,需管理整個配置目錄選 Git

vs 同系列工具(claude-keysmith/zcode-keysmith):

  • 功能類似,分別針對 Claude Code 的 CLAUDE.md 和 ZCode 的 AGENTS.md
  • codex-keysmith 特有: hooks 隔離機制(Codex 的 hooks.json 可能與全域性指令衝突)
  • 選型依據: 根據使用的 AI 程式設計助手選擇對應工具

已知坑

  1. 全域性生效非沙箱: 部署的指令影響所有新 Codex 會話,不是專案級隔離。多專案場景需頻繁切換指令或用 --uninstall 恢復預設
  2. hooks 預設被停用: 部署時會重新命名 hooks.json.hooks.json.codex-keysmith-disabled,需手動恢復或用 --skip-hooks-isolation 跳過。恢復 hooks 需確保其與全域性指令不衝突
  3. Windows 支援未穩定: v0.1.0 標記為 experimental,原子重新命名在某些 Windows 檔案系統上可能失敗,生產環境建議先在測試機驗證
  4. 內建提示詞的合規風險: gpt-unrestricted.md 移除安全護欄,可能違反企業政策或當地法規。部署前務必審閱 examples/gpt-unrestricted.md 或用 --file 指定自己的指令
  5. Python 3.8 已 EOL: 雖保留相容性測試,但不建議作為生產執行時,推薦 Python 3.10+
  6. 需手動重啟會話: Codex 在會話啟動時載入配置,部署後必須關閉舊會話才能生效,自動化場景需額外處理

中國使用者特別注意: 工具本身是本地 Python 指令碼無需網路,但 Codex CLI 呼叫 OpenAI 模型需解決網路訪問問題(代理或 API 中轉)。內建提示詞包含敏感內容重解釋邏輯,在受監管環境使用前需評估合規性。

安装方式:直接下载 Python 脚本