codex-config-optimizer について
Codex CLI の設定管理と最適化記録を支援するスキルです。Nix home-manager を保守する開発者向けに、設定・フック・ルール・MCP サーバーの宣言的な管理と、インストール済みバージョンまでのリリース確認手順をまとめています。
主な機能
- 01Nix による宣言的な設定管理
- 02Codex の設定・フック・ルールを生成
- 03スクリプト・スキル・MCP サーバー設定の管理
- 04フックの対応範囲と制限を記録
- 05ローカルバージョンまでのリリース確認
活用シーン
- 01Codex CLI 設定の変更後に構成を再生成
- 02Bash 拒否ポリシーとフックスクリプトの保守
- 03Codex の指示ファイルを確認・改善
- 04インストール済みバージョンまでの変更を要約
MCP 対応
MCP サーバー設定は Nix ファイルで管理され、Codex CLI の静的設定の一つとして記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ i9wa4/ dotfiles --skill codex-config-optimizerインストール後、Claude Code で/codex-config-optimizerを入力して読み込まれたか確認します。
詳細
Codex CLI 最適化スキル
Codex CLI の設定最適化に関するルールと追跡情報です。
1. 設定ファイルの場所
設定は、Nix(programs.codex home-manager モジュール)を使って宣言的に管理します。
信頼できる情報源:
- @~/ghq/github.com/i9wa4/dotfiles/nix/home-manager/agents/codex-cli.nix
- @~/ghq/github.com/i9wa4/dotfiles/nix/home-manager/agents/
| 配置先 | ソース | 管理元 |
|---|---|---|
~/.codex/config.toml | アクティベーションスクリプトによって生成 | codex-cli.nix |
~/.codex/AGENTS.md | AGENTS.md + インライン化された rules/*.md から生成 | instruction-artifacts.nix |
~/.codex/rules/ | 拒否対象の Bash ポリシーから default.rules を生成 | codex-cli.nix |
~/.codex/hooks.json | フック設定を生成 | codex-cli.nix |
~/.codex/scripts/ | codex-* スクリプトと共通の拒否パターンをシンボリックリンク | codex-cli.nix |
~/.codex/skills/ | 複数の flake 入力 + ローカル | agent-skills.nix |
| MCP サーバー | nix/home-manager/agents/mcp-servers.nix | codex-cli.nix |
2. 設定管理
静的設定(モデル、分析、機能、MCP サーバー)は、codex-cli.nix の Nix 属性として定義されています。信頼されたプロジェクトは、home-manager switch の実行時に fd で動的に検出され、config.toml に追加されます。
フックも codex-cli.nix で宣言されています。実行時スクリプトは nix/home-manager/agents/scripts/codex-* にあり、切り替え時に ~/.codex/scripts/ に配置されます。
設定を更新するには、nix/home-manager/agents/codex-cli.nix を編集して再ビルドしてください。
3. リリースの取得
3.1. ローカルバージョンの検出
必ず最初にインストール済みのバージョンを検出してください。
codex --version
これにより、ローカルにインストールされているバージョン(例:codex-cli 0.113.0)が返されます。
すべてのリリース分析は、このバージョン以下を対象にする必要があります。
ローカルのインストールより新しいバージョンの機能や変更を報告しないでください。
3.2. GitHub からの取得
FILE=$(mkmd --dir tmp --label output)
gh api repos/openai/codex/releases --jq '.[0:10]' > "$FILE"
次に、以下を使ってローカルバージョンまでのエントリーを抽出します。
jq '.[] | select(.tag_name == "rust-v<LOCAL_VERSION>") | {tag_name, body}' "$FILE"
4. CHANGELOG の操作
重要:以下のすべての操作は、ローカルにインストールされているバージョンを対象とします。
codex --version より新しいバージョンのリリースエントリーは無視してください。
4.1. 最新リリースの概要
codex --versionでローカルバージョンを検出します- 上記のコマンドでリリースを取得します
rust-v<local-version>のリリースエントリー(最初のエントリーではありません)を抽出します- 変更を以下のように分類します:
- 新機能(Added)
- バグ修正(Fixed)
- 改善(Improved/Changed)
- 破壊的変更
- 簡潔な説明を添えて日本語で提示します
4.2. バージョン間の差分
codex --versionでローカルバージョンを検出します- 開始バージョンをユーザーに尋ねます(終了バージョンはデフォルトでローカルバージョンです)
- 開始バージョンからローカルバージョンまで(両端を含む)のすべてのリリースを抽出します
- 累積した変更を要約します
- 破壊的変更と非推奨項目を強調します
4.3. 破壊的変更の検出
codex --versionでローカルバージョンを検出します- ローカルバージョンまでのリリースで、
breaking、removed、deprecated、changed(動作の変更)を検索します - 影響を受けるコマンドとオプションを一覧表示します
- 移行方法を提示します
5. 設定カテゴリ
| カテゴリ | 例 |
|---|---|
| モデル | model、model_reasoning、model_reasoning_effort |
| 動作 | approval_mode、sandbox、network_access |
| 表示 | notify、tui.notifications_method |
| シェル | shell_environment_commands |
| フック | features.codex_hooks、hooks.json、scripts/codex-* |
| 履歴 | history、project_doc_max_bytes |
| 機能 | features.skills、features.web_search_request |
| 無効化 | disable_response_storage、hide_agent_* |
| アナリティクス | analytics.enabled、feedback.enabled |
6. フックのガイダンス
- 必須:
hooks.jsonの動作に依存する前に、features.codex_hooks = trueを設定してフックを有効にしてください - 必須:Codex のホームレベルのフックは、意図的にリポジトリローカルで上書きする必要がある場合を除き、
nix/home-manager/agents/codex-cli.nixに保持してください - 必須:Codex のフックスクリプトは、
nix/home-manager/agents/scripts/codex-*の下に配置してください - 必須:Bash の拒否ポリシーを別途 Codex 専用コマンドリストとして手動管理せず、
denied-bash-commands.nixを SSOT として再利用してください - 必須:共有の Bash 拒否理由は修復を促す内容にしてください。拒否されたことを伝えるだけでなく、エージェントが次に何をすべきかを示してください
- 必須:現時点では、Codex の
PreToolUseとPostToolUseは Bash のみを対象とするものとして扱ってください - 必須:
PostToolUseの Bash フックはフィードバック専用にしてください。コマンドはすでに実行済みなので、擬似的な強制ではなく、簡潔な修正方法を提示するために使用してください - 禁止:Codex が現在
Write|Edit|NotebookEditをインターセプトすると主張しないでください。これらのマッチャー例は正規表現として有効ですが、現在の Codex ランタイムには一致しません - 禁止:
PreToolUseでサポートされていないpermissionDecision: "ask"/"allow"、updatedInput、additionalContextフィールドに依存しないでください。現在のランタイムはこれらを解析しますが、フェイルオープンになります - 注:公式ドキュメントによると、現在サポートされているイベントは
SessionStart、PreToolUse、PostToolUse、UserPromptSubmit、Stopです - 注:公式ドキュメントによると、複数の
hooks.jsonファイルにある一致するフックはすべて実行され、同じイベントに一致するコマンドフックは並行して起動します - 注:現在の Codex で Claude の
PreCompactに最も近いのはStopです。完全な同等性の証明としてではなく、軽量な引き継ぎ情報の永続化に使用してください
7. AGENTS.md の設計ガイドライン
- 必須:ペルソナと基本ガイドラインのみに焦点を当ててください
- 必須:Claude Code と Codex CLI の両方に対応する指示にしてください
- 禁止:ツール固有の構文(例:Claude Code の TodoWrite)を含めないでください
8. 最適化チェックリスト
AGENTS.md または config.toml を編集するときは、以下を確認してください。
- ペルソナの定義は簡潔ですか?
- 基本ルールは常に本当に必要ですか?
- 詳細な説明を skills/ に移動できますか?
- config.toml では適切な approval_mode が使用されていますか?
- 共有の Bash 拒否メッセージは、拒否を伝えるだけでなく、安全な次の手順を示していますか?
- Codex のフックの制限(ツール前後のフックは Bash のみ)が正直に記載されていますか?
-
PostToolUseは強制ではなく、決定論的な Bash フィードバックに限定されていますか? - フックの状態は
hooks.jsonとscripts/codex-*に正しく分けられていますか?
9. 最適化の追跡
最終確認済みの Codex CLI バージョン:v0.117.0 (2026-03-30)
9.1. 適用済みの最適化
- 共有の
AGENTS.mdとインライン化したルールの Markdown から AGENTS.md を生成 - skills/ を Claude Code のスキルにシンボリックリンク
- 拒否する Bash ポリシーから
default.rulesを生成 - ホームレベルの Codex フックを有効化:
UserPromptSubmit、SessionStart、PreToolUse(Bashのみ)、PostToolUse(Bashのみ)、Stop - Claude Code と Codex CLI のフックで共有の deny-bash パターンを再利用
- 共有の deny-bash に関する説明を、単なる拒否から Claude Code と Codex CLI の両方に向けた修正ガイダンスに強化
- Codex の
UserPromptSubmitに時刻、ロール、cwd、git コンテキストを追加 -
StopとSessionStartによる軽量な Codex の引き継ぎ情報の永続化 -
model_auto_compact_token_limit = builtins.floor (codexContextWindow * 0.7)により、70% で自動コンパクト化(gpt-5.x の 272k ウィンドウでは 190,400 トークン) -
tui.terminal_title = []で Codex によるターミナルタイトルの書き込みを無効化し、tmux のpane_titleをロール識別用に確保(v0.117.0)
9.2. 検討事項
- 必要に応じて prompts/ から
../claude/commands/へのシンボリックリンクを作成 -
config.tomlを自動生成する generate-config.sh を作成 - MCP サーバーの統合を評価(AWS docs MCP など)
- プランモード(
/plan)- 安定し、デフォルトで有効化済み(v0.94.0) -
command_attribution = "disable"- 共著者の帰属表示を無効化(v0.103.0) - PostToolUse Bash のフィードバックヒューリスティクス - 新たなリポジトリの失敗パターンが繰り返されても、対象範囲を狭く、決定論的に保つ
-
code_modeの実験的機能 - 独立したコーディングワークフロー。安定化を注視(v0.114.0) - バンドルされたシステムスキルの設定切り替えを無効化 - カスタムスキルで十分な場合、より軽量なセッションに役立つ(v0.114.0)
- 権限プロファイルの設定言語 -
config.tomlでファイルシステム/ネットワークのサンドボックスポリシーを分割し、より細かく制御(v0.113.0) - サブエージェントのサポート - マルチエージェント機能が安定化(v0.115.0)。Nix のビルド時に subagents/*.md から .toml エージェントを自動生成(codex-cli.nix)
-
openai_base_urlの設定オーバーライド - カスタム API エンドポイント(v0.115.0) - Smart Approvals guardian - 承認の手間を軽減するため、レビュー依頼を guardian サブエージェント経由で処理(v0.115.0)
9.3. 採用しない項目
personality設定 - デフォルト(「friendly」)を維持。変更しても利点なしlog_dir設定 - デフォルトのログ保存先で問題なしtui.notifications_method- デフォルトを維持CLAUDE_CODE_DISABLE_CRON環境変数 - Codex CLI では該当なしapproval_policy: on-failure- 非推奨(v0.102.0)。設定では未使用Write|EditのようなPreToolUse/PostToolUseのマッチャーパターン - 現在の Codex ランタイムが出力するのはBashのみのため、これらの設定は現状を誤解させるPreToolUseのpermissionDecision: "ask"/"allow"とupdatedInput- 現在のランタイムは解析するものの、適用しない- Bash 修正フックの PostToolUse における判定/ブロックのセマンティクス - Codex が生のコマンド結果を確認できるよう、フィードバックのみに限定
AfterToolUseフック - 文書化されたフックエンジンに置き換え済みsmart_approvals- デフォルトの動作を維持(v0.93.0)
9.4. バージョンに関する注意事項
- v0.117.0:
/titleのターミナルタイトル選択機能がクラシックと app-server TUI の両方で動作するようになり、プラグインが正式なワークフローの一部となりました。app-server TUI がデフォルトで有効になり、従来のartifact、read_file、grep_filesハンドラーが削除されました - v0.116.0:確認時点でのローカルインストール済みバージョンです。公式のフックドキュメントでは、引き続きフックが実験的機能とされ、現在サポートされているイベントと制限が記載されています。https://developers.openai.com/codex/hooks
- v0.115.0:
view_imageによるフル解像度の画像検査、セルをまたいで永続化するcodex.cwd/codex.homeDirがjs_replに追加、リアルタイム WebSocket 文字起こしモードと v2 ハンドオフ、Python SDK を使った v2 app-server ファイルシステム RPC、レビューの振り分けを行う Smart Approvals ガーディアン・サブエージェント、フォールバック付きの Responses API によるツール検索、マルチエージェント機能の安定化、wait_agentツールの名前変更、Linux サンドボックスで bubblewrap をデフォルトに設定、openai_base_urlによる設定の上書き - v0.114.0:実験的なコードモード(分離されたコーディング)、フックエンジン(
SessionStart/Stop)、app-server WebSocket 用のヘルスエンドポイント(/readyz//healthz)、バンドルされたシステムスキルを無効にする設定、ターンの継続性を保つハンドオフのトランスクリプトコンテキスト、カテゴリラベル付きの$メンション選択機能、Linux tmux のセグメンテーション違反を修正、ターンをまたいだ承認の保持、Python SDK v2 のスキーマ基盤 - v0.113.0:
request_permissionsツール(実行時の権限リクエスト)、プラグインマーケットプレイスと厳選されたプラグインの発見・アンインストール、TTY/PTY 対応の app-server ストリーミング実行、Web 検索ツールの完全な設定、権限プロファイルの設定言語、画像生成結果の cwd への保存、ログ用 SQLite DB、winget の自動更新 - v0.112.0:プラグインを直接参照する
@pluginメンション、権限プロファイルのターンごとのサンドボックスへの統合、JS REPL のバインディング永続化を修正、SIGTERM による正常なシャットダウン、bubblewrap の userns 強化、macOS Seatbelt の改善 - v0.111.0:高速モードがデフォルトで有効になり、TUI に高速/標準モードが表示されるようになりました。
js_replでローカルの.js/.mjsファイルをインポート可能に。セッション開始時にモデルへプラグインを通知。構造化されたリクエスト/レスポンス形式による app-server v2 MCP エリシテーション - v0.110.0:プラグインシステム(設定またはマーケットプレイスからのスキル/MCP/アプリコネクター)、永続化される
/fast切り替え、承認プロンプト付きのマルチエージェント TUI フロー、ワークスペース単位のメモリ書き込み、Windows インストーラー - v0.107.0:スレッドをサブエージェントに分岐、リアルタイム音声デバイスの選択、マルチモーダルなカスタムツール出力、設定可能なメモリ(
codex debug clear-memories) - v0.104.0:WebSocket プロキシ用の
WS_PROXY/WSS_PROXY環境変数、app-server のConfigChangeフック、コマンド承認 ID の連携 - v0.103.0:
command_attribution設定によるコミットの共同作成者表記、一覧表示のアプリ詳細を拡充 - v0.102.0:TUI 履歴を含む権限フローの統一、サンドボックスの読み取りアクセスを許可するスラッシュコマンド、カスタマイズ可能なマルチエージェントの役割、
model/rerouted通知、approval_policy: on-failureの非推奨化 - v0.101.0:メモリとモデル解決のバグ修正
- v0.100.0:実験的な JS REPL ランタイム、メモリ用スラッシュコマンド(
/m_update、/m_drop)、ReadOnlyAccessサンドボックスポリシー、AfterToolUseフック - v0.99.0:TUI フッターを設定する
/statuslineコマンド、シェルコマンドが実行中のターンを中断しないよう変更、GIF/WebP 画像のサポート、AfterToolUseフックの追加、セキュリティ修正(RUSTSEC-2026-0009) - v0.98.0:GPT-5.3-Codex モデルを導入、ステアモードがデフォルトで安定版に(Enter で送信、Tab でキューに追加)
- v0.97.0:MCP/アプリツールの「許可して記憶」、スキルのライブ更新、
/debug-configスラッシュコマンド、設定可能なlog_dir - v0.96.0:Windows 以外のすべてのプラットフォームで
unified_execを有効化 - v0.95.0:
~/.agents/skillsから個人スキルを読み込み、/planが引数と画像を受け付けるよう変更、並列シェルツール、CODEX_THREAD_ID環境変数を注入 - v0.94.0:プランモードがデフォルトで有効に、
personality設定が安定版に(デフォルト:フレンドリー)、.agents/skillsからスキルを読み込み
10. 応答形式(CHANGELOG)
# Codex CLI vX.X.X 更新内容
## 新機能
- [機能名]: [説明]
## バグ修正
- [修正内容]
## 改善
- [改善内容]
## 破壊的変更
- [影響を受ける機能と移行方法]
---
Source: https://github.com/openai/codex/releases
11. 重要な注意事項
- Codex CLI の変更履歴は CHANGELOG.md ではなく、リリースページにあります
- リリースノートを取得するには、GitHub releases API を使用してください
- 参照するバージョンを必ず明記してください
- 公式リリースページがある場合は、そちらにリンクしてください
12. 参考リンク
- Codex CLI:https://github.com/openai/codex
- Codex hooks のドキュメント:https://developers.openai.com/codex/hooks