Codex CLI 0.140.0で追加された /import で Claude Code の設定とチャット履歴を取り込んでみた
どうも!オペ部の西村祐二です!
Codex CLI 0.140.0 で /import というスラッシュコマンドが追加されました。Claude Code をメインで使いつつ Codex CLI も併用しているので、設定候補やチャット履歴をどこまで引き継げるか実際に TUI 内で試してみました。
あわせて Codex の実装も確認し、スクリーンショットで見えている選択状態と、実際に取り込まれる対象がずれないように整理しています。
/import とは
Codex CLI 0.140.0 で追加された、Claude Code の設定・スキル・チャット履歴を Codex CLI へ取り込むスラッシュコマンドです。
以前は起動時の自動マイグレーションフローとして実装されていましたが、ユーザーが意図的に実行する形に変更されました。CLI のサブコマンドではなく、Codex CLI の TUI内でのみ使えるスラッシュコマンドです。
画面上は大きく 3 グループにまとまって表示されます。
Tools & setup: Settings / Skills / Plugins / MCP servers / Agents / Hooks / Slash commandsCurrent project: Instructions(CLAUDE.md を AGENTS.md に変換)/ プロジェクトレベルの PluginsChat sessions: 過去のチャット履歴
実装上は、Codex がその時点で「未取り込み」「差分あり」と判断した項目だけが表示されます。そのため、Claude Code 側に settings.json や skills/ が存在していても、既に Codex 側に同等の設定やディレクトリがある場合は、画面に出ないことがあります。
試してみる
環境
- Codex CLI 0.141.0
/importの追加リリース: Codex CLI 0.140.0- macOS
1. /import を実行する
Codex CLI のインタラクティブセッションを起動し、TUI 内で /import と入力します。
すると次のような概要画面(Step 1)が表示されます。

この画面では、最初は Tools & setup、Current project、Chat sessions の 3 グループがすべて選択された状態でした。表示上は Selected 5 of 5 items. となっています。これは 3 グループそのものではなく、グループの内側で検出された項目(次の Step 2 で個別に展開される 5 件)の合計を指します。
2. 取り込み対象を選ぶ
概要画面から 2. Customize selection を選ぶと、カスタマイズ画面(Step 2)に進みます。スペースキーで個別アイテムをトグルできるため、「設定だけ取り込む」「チャット履歴は不要」といった選択が可能です。

今回の環境では、カスタマイズ画面で以下の 5 件が検出されていました。
- Home の MCP servers
- Home の Hooks
- Home の Plugins
- Recent chat sessions
- Current project の MCP servers
私の Claude Code 環境には、~/.claude/settings.json の環境変数・フック設定、~/.claude/skills/ のスキル群、~/.claude/plugins/ のプラグイン、ローカルのチャット履歴が蓄積されています。ただし、今回のスクリーンショットで未取り込み項目として表示されているのは上記 5 件です。前述の通り、Codex 側に既に同等の設定があるものはこの選択画面に出ません。
今回は Recent chat sessions だけを選択し、動作を確認してみました。カスタマイズ後に概要画面へ戻ると、Chat sessions (50) だけが選択された状態になっていました。概要画面ではグループ名 Chat sessions として表示され、(50) は検出されたセッション数を表します。

この状態で 1. Import selected を実行しました。
3. インポート結果を確認する
実行すると、チャット欄に開始ログと完了ログが表示されます。

今回のログには 4 additional items remain. と出ています。これは、検出された 5 件のうち 1 件だけを選択してインポートしたため、残り 4 件がまだ未取り込みとして残っている、という意味です。
インポートはバックグラウンドで非同期実行されます。インポート中も TUI での作業は続けられます。完了後に /import を再実行すると、残っている項目を改めて確認できます。
画面上にも表示されている通り、取り込んだ setup は新しいチャットセッションから有効になります。設定やプラグイン類まで取り込んだ場合は、実行中のセッションだけで判断せず、新しいチャットで確認するのが無難です。
実装から確認した挙動
Codex の 0.140.0 時点の実装を読むと、設定の挙動は次のように整理できます。
- リモートセッションやローカル app-server daemon 接続時は実行できません。埋め込み app-server のローカル TUI セッションで動く前提です。
- 検出時は Home 側と現在のプロジェクト側の両方を見ます。今回のように Home の MCP servers / Hooks / Plugins と、Current project の MCP servers が別項目として出るのはこのためです。
settings.jsonのうち、実装上 Codex のconfig.tomlに変換されるのは主にenvとsandbox.enabledです。既存の Codex 設定がある場合は、足りない値を足す形でマージされます。~/.claude/skills/は、未取り込みのスキルディレクトリを Codex 側の skills ディレクトリへコピーします。ただし、同名ディレクトリが既にある場合はスキップされ、SKILL.mdは Claude / CLAUDE.md などの表記が Codex 向けに置換されます。~/.claude/plugins/は、ディレクトリを丸ごとコピーする挙動ではありません。Claude Code のsettings.jsonにある有効 plugin と marketplace 情報をもとに、Codex 側で marketplace を追加し、plugin をインストールする形です。- Claude Code の hooks は Codex の
hooks.jsonに変換されます。ただし、変換対象は同期的な command hook が中心で、対応していない hook 形状はスキップされます。 - チャット履歴は
~/.claude/projects配下の JSONL から、更新日時が過去 30 日以内のものを最大 50 件まで検出します。既にインポート済みの履歴は ledger で除外されます。
このため、「Claude Code 側にあるものが常にすべてコピーされる」というより、「Codex が変換でき、かつ未取り込みと判断した項目が候補として出て、選択したものだけが取り込まれる」と理解するとよさそうです。
試してみた感想
今回インポートまで試したのはチャット履歴だけで、設定・スキル・プラグイン・hooks の挙動は実装を読んで確認しました。その前提での感想です。
AI コーディングエージェント間のルール同期には rulesync のような OSS ツールもあります。そうした選択肢があるうえで、追加ツールを挟まずに使える公式の取り込み口が Codex CLI 側に用意されたのは良い点だと感じました。
import の実装は単純なリネームではなく、前述のように CLAUDE.md や Claude Code などの用語も Codex 向けに置き換えながらコピーされます。
ただ機械的な変換なので、たとえば AskUserQuestion のような Claude Code 固有のツール名や、Claude Code 前提の運用ルールはそのまま残ります。import 後の AGENTS.md は、Codex で実際に使うツール名や運用に合っているかを一度見直したほうが良さそうです。
/import が自動実行ではなくユーザー操作になったことで、「知らないうちに設定が混入する」という状況を避けられる設計になっています。必要なタイミングで自分で実行できる点は使いやすいと感じました。
ただし、既に dotfiles や同期ツールで仕組み化している環境では注意点もあります。/import は選択した項目を Codex 側へ追加・マージするため、既存の設計と重なる項目を取り込むと意図しない設定差分が入る可能性があります。
まとめ
Codex CLI の /import で、Claude Code の設定候補やチャット履歴を Codex CLI へ引き継げることを確認しました。
- TUI 内で
/importと入力するだけで実行できる(リモートセッション・デーモン接続時は使用不可) - Tools & setup / Current project / Chat sessions の 3 グループを個別にトグル可能
- 実際にインポートされるのは、検出された項目のうち選択したものだけ
- チャット履歴は過去 30 日以内、最大 50 件が候補になる
- バックグラウンドで非同期実行され、setup は新しいチャットセッションから有効になる
- 手動で差分を取り込みたい場面では便利だが、既に同期を仕組み化している環境では取り込み対象を絞る必要がある
誰かの参考になれば幸いです。
参考リンク:








