codex-keysmithでCodex指示を版から切り離す
ドライラン、バックアップ、フック分離、リカバリを備えた、バージョンに依存しない Codex 命令の展開。
ひと目でわかる
- これは何?
- 指示ファイルの展開と更新を扱うリポジトリの構成、コマンド、適用対象を具体的に見る。
- 誰に向いている?
- codex-keysmithを使用する人にとって、展開が期待通りに動作しない場合に最初に参照すべきは、READMEのリカバリフローとリファレンスドキュメントです。 採用前は、READMEに記載されたコマンドと設定名を対象環境で一つずつ照合し、実行ログ、生成物、対応するリリースを記録してください。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 3 日前です。
- 何の言語で書かれている?
- 主に Python です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
1つのファイル、1つの指示ファイル、すべての新しいセッション
codex-keysmith は、ゼロ依存の単一ファイルPythonスクリプトで、指示MarkdownファイルをCodex設定ディレクトリに展開し、新しいCodexセッションごとにそれを読み込むようにします。デフォルトではプレビューモードで実行され、明示的な確認後にのみディスクに書き込みます。すべての展開は元に戻せます。このツールは ~/.codex/config.toml のトップレベルの model_instructions_file を編集するため、プロジェクト単位の設定ではなくCodexのグローバルな動作を変更します。READMEはこれが広範な動作変更であり、安全境界ではないと警告し、同梱のサンプルプロンプト examples/gpt-unrestricted.md を読むか、--file で独自のファイルを提供することを推奨しています。クイックスタートの手順では、リリースファイルをダウンロードし、SHA256SUMSを検証し、浮遊するmainブランチからインストールしたり、curlの出力をPythonにパイプしたりしないよう指示しています。
デプロイが触れるもの
展開は4つの場所に書き込みます:指示Markdownファイル(デフォルトはgpt-unrestricted.md、またはカスタムの--name)、config.toml(トップレベルのmodel_instructions_fileのみ)、hooks.json(デフォルトではバックアップ後にhooks.json.disabledにリネーム)、そして展開が何を変更したかを記録して後でアンインストールするためのマニフェストファイル .codex-keysmith-manifest.json です。READMEのファイル表には各パスで何が起こるかが正確にリストされています。このツールはmodel_instructions_fileキーのみを所有します。他の設定フィールドの外部での書き換えは、ステータスやアンインストールをブロックせず、アンインストール後も保持されます。--codex-dirを省略すると、自動検出されたすべてのディレクトリを処理しますが、READMEは意図的なマルチディレクトリ展開でのみ行うべきとしています。展開後は、設定がセッション開始時にのみ読み込まれるため、古いCodexタスクを閉じて新しいセッションを開始する必要があります。
CCSwitchプロファイルをアクティベーションスイッチとして使う
READMEは、CCSwitchプロファイルをアクティベーションスイッチとして使用するワークフローを説明しています。CCSwitchはプロバイダーごとに完全なconfig.tomlを置き換えるため、Keysmithオンとmodel_instructions_fileなしの2つのコピーを保持できます。手順には、そのフィールドのCommon Config Snippetを確認し、フックがグローバルな副作用にならないようにする場合は --skip-hooks-isolation で展開し、--status で検証することが含まれます。オフのコピーは inactive-by-config と報告されるはずです。READMEはまた、アンインストール後にCCSwitchの通常モードでクリーンアップされたオンのコピーから切り替え、「outgoing provider backfill failed」警告を確認し、そのコピーの保存設定を検査する必要があると述べています。このワークフローはCCSwitch v3.18.0で確認されましたが、プロキシ乗っ取りのホットスイッチングはプロバイダーの有効設定からライブ設定を再構築する可能性があるため、Keysmithはそれを安定した互換性契約とは見なしていません。設定の切り替えは新しいセッションにのみ影響し、hooks.jsonはそれに伴って切り替わりません。
アンドゥ、および実行が中断されたとき
アンインストールは実行ごとに最新の展開レイヤーを削除するため、繰り返し実行することで以前のレイヤーを剥がすことができます。--restore-hooks はhooks.jsonのみを復元し、--uninstall は設定、指示、フックを一緒に削除します。どちらもプレビューと--yes確認をサポートしています。実行がハードに中断された場合(SIGKILLや停電)、READMEはまず --status を実行し、blockedと報告された場合は --recover をプレビューしてから確認するよう指示しています。.codex-keysmith-transaction-* ディレクトリ、バックアップ、マニフェストを手動で削除しないよう明示的に警告しています。model_instructions_fileが欠落している場合、読み取り専用ステータスは inactive-by-config と報告しますが、アクティブなプロファイルが管理対象参照を復元するまで、展開とアンインストールは失敗します。別のターゲット、ターゲットフィールドの曖昧さ、またはサポートされていないステートメント構造は引き続き競合です。
サポート環境とWindowsの欠陥
READMEはPython 3.10から3.14を推奨し、codex-cli 0.144.1で検証済みと述べています。macOSとLinuxが主要なサポート範囲です。Windowsには、公開されたv0.1.0に既知の欠陥があります:os.utimeの失敗に続いて2回目のPermissionErrorが発生し、古いスクリプトが回復できないジャーナルが残ります。v0.1.1以降には、EXPLICIT_BETAの下で書き直されたWindowsファイルシステムバックエンドが含まれていますが、正式にはサポートされていません。v0.1.0がWindowsにジャーナルを残した場合、回復手順は --status、--recoverプレビュー、--recover --yes、そして--statusです。証拠を手動で削除しないでください。このツールは単一ファイルCLIで、pip installや自動更新はなく、バックアップやアンインストールアーカイブは自動的にクリーンアップされません。完全な制限、トランザクション保証、メンテナー検証はdocs/reference.mdにあります。
ライセンスと問題報告先
このプロジェクトはMITライセンスでリリースされており、著作権表示と許可表示が含まれている限り、使用、コピー、変更、結合、公開、配布、サブライセンス、販売を許可します。ライセンステキストは、ソフトウェアが「現状のまま」提供され、いかなる保証もなく、著者は請求、損害、その他の責任について責任を負わないと述べています。READMEは、SECURITY.mdのプライベートチャネルを通じて脆弱性を報告し、コントリビュータは提出前にCONTRIBUTING.mdを読むよう求めています。プロジェクトはまた、LINUX DOコミュニティからの監視とフィードバックを受け入れています。READMEは、これらの文書以外の具体的なセキュリティ保証、サポート契約、本番準備について言及していません。ライセンスの免責事項が責任に関する唯一の正式な声明です。
編集部の結論
codex-keysmithを使用する人にとって、展開が期待通りに動作しない場合に最初に参照すべきは、READMEのリカバリフローとリファレンスドキュメントです。 採用前は、READMEに記載されたコマンドと設定名を対象環境で一つずつ照合し、実行ログ、生成物、対応するリリースを記録してください。
コミュニティノート