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.toml 的 model_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 校验防止供应链篡改,在安全敏感场景中获得认可。
核心功能
- 版本化部署: 将 Markdown 指令文件部署到 Codex 配置目录,自动更新
config.toml中的model_instructions_file路径 - 预演模式:
--dry-run显示将修改的文件、备份路径、hooks 隔离计划和内置提示词的 SHA-256,无需--yes即可安全检查 - hooks 隔离: 默认将活跃的
hooks.json重命名为.hooks.json.codex-keysmith-disabled,避免与全局指令冲突,可通过--skip-hooks-isolation跳过 - 分层卸载: 生成
.codex-keysmith-manifest.json记录部署的文件和配置变更,卸载时只移除工具管理的资源,保留用户手动添加的内容 - 中断恢复: 首次修改前创建持久化事务日志,中断后通过
--recover检查并恢复到部署前或部署后的一致状态 - 内置提示词: 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。
适合谁
- Codex 重度用户: 需要定制全局模型行为(如移除安全护栏、添加领域知识、统一代码风格),且希望配置可版本控制和回滚
- 安全研究者: 在隔离环境中测试模型的边界行为,内置的
gpt-unrestricted.md提供了绕过拒绝机制的起点 - 团队协作场景: 通过 Git 管理自定义指令文件,用 codex-keysmith 在团队成员机器上一致部署
- 配置洁癖者: 不想手动编辑 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 编程助手选择对应工具
已知坑
- 全局生效非沙箱: 部署的指令影响所有新 Codex 会话,不是项目级隔离。多项目场景需频繁切换指令或用
--uninstall恢复默认 - hooks 默认被禁用: 部署时会重命名
hooks.json为.hooks.json.codex-keysmith-disabled,需手动恢复或用--skip-hooks-isolation跳过。恢复 hooks 需确保其与全局指令不冲突 - Windows 支持未稳定: v0.1.0 标记为 experimental,原子重命名在某些 Windows 文件系统上可能失败,生产环境建议先在测试机验证
- 内置提示词的合规风险:
gpt-unrestricted.md移除安全护栏,可能违反企业政策或当地法规。部署前务必审阅examples/gpt-unrestricted.md或用--file指定自己的指令 - Python 3.8 已 EOL: 虽保留兼容性测试,但不建议作为生产运行时,推荐 Python 3.10+
- 需手动重启会话: Codex 在会话启动时加载配置,部署后必须关闭旧会话才能生效,自动化场景需额外处理
中国用户特别注意: 工具本身是本地 Python 脚本无需网络,但 Codex CLI 调用 OpenAI 模型需解决网络访问问题(代理或 API 中转)。内置提示词包含敏感内容重解释逻辑,在受监管环境使用前需评估合规性。
安装方式:直接下载 Python 脚本