まだ残っているかも?Codexの履歴削除を完璧に行って機密コードの流出を徹底的に防ぐ管理術!

AIコーディング支援ツールのOpenAI Codexを使っていると、ふと「自分が入力したコードやプロジェクトのデータってどこに残っているんだろう?」と気になったりしませんか?開発を進めるのはすごく楽しいし便利なんですけれど、機密性の高いプログラムの断片やローカルリポジトリのパス、環境変数なんかがそのまま蓄積されていくのはちょっと心配ですよね。ネットで「codex 履歴削除」や「codex ai 履歴削除」、さらには「codex 履歴 削除 消し方」といったキーワードで検索している人が多いのも、それだけみんながデータ管理やセキュリティに不安を感じているからかなと思います。実はCodexって、画面上から見えなくするだけではローカルに物理ファイルが残ってしまう仕様だったりするので、完全に消去するにはちょっとしたコツが必要なんです。この記事では、そんな履歴削除のやり方に悩むみなさんに向けて、各種コマンドの本当の挙動から隠しフォルダの構造、さらに安全にクリーンアップする方法までを分かりやすくお伝えしますね。

  • Codexにおける各種制御コマンドの実際の挙動と効果
  • ローカルストレージ内に蓄積される物理ディレクトリの構造
  • 整合性を壊さずに履歴を安全に自動削除できる外部ツール
  • OpenAIのポリシーに基づくトレーニング拒否の確実な設定手順
目次

Codexにおけるセッション履歴の管理機能と各種コマンドの仕様

CodexのCLI(コマンドラインインターフェース)やIDEの拡張機能には、セッションの状態を操作するためのスラッシュコマンドがいくつか用意されています。これらを実行すると一見チャット履歴が消えたように思えるのですが、実はデータの「物理的な削除」とは挙動が異なるものがほとんどなんです。それぞれのコマンドが内部で何を行っているのか、まずはその仕組みを徹底的に整理しておきましょう。コマンドの仕様を正しく把握することは、予期せぬ情報漏洩を防ぐための第一歩になりますよ。

/new

現在のセッションのアクティブな会話コンテキストを100%リセットして、完全に新しいチャットを開始するコマンドです。これまでのコードの文脈ややり取りを引きずらずに、まったく新しいタスクや異なる言語での実装を始めたいときにはぴったりですね。ただし、このコマンドはあくまで「AIの短期記憶(コンテキストバッファ)」をまっさらにするだけのものです。実行前にやり取りしていた過去のセッションファイル自体は、ローカルストレージの奥深くに保存されたまま残っています。完全にマシンから消去されたわけではない点に注意が必要かもです。

/compact

進行中の会話やコードの提示が長くなって、トークン消費量が上限に近づいてきたときに活躍するコマンドです。これを実行すると、モデルがこれまでの長大な会話内容を要約し、重要なエッセンスだけを抽出してコンテキストを実質的に圧縮してくれます。これにより、トークンの節約とレスポンスの質向上が期待できるのですが、役割としてはAIの記憶を効率化するためのもの。履歴そのものは「要約」という形でしっかり保持されており、ローカルに格納された物理的な生ログの削除などは一切行われません。

/clear

このコマンドの動作は、現在のターミナル画面やチャットウィンドウの表示をすっきりとクリアしてくれるだけのものです。Windowsのコマンドプロンプトにおける「cls」や、Mac/Linuxのターミナルにおける「clear」コマンドと完全に同じイメージですね。画面上はきれいさっぱり見えなくなりますが、内部的な会話履歴のファイルやメモリ上のコンテキストは一切削除されずにそのまま残っています。誰かに画面を覗き見られるのを防ぐのには役立ちますが、データ管理の観点では削除効果はゼロと言えます。

/clean

名前だけを見ると「これで全削除できるのでは?」と思ってしまいますが、実際の挙動はかなり限定的です。このコマンドが掃除するのは、一時的なシステムセッション情報や、動作を軽快にするための古いキャッシュのようなデータのみとなっています。ユーザーが作成した個々のスレッドデータや、AIと交わしたソースコードを含む会話の本体は、安全のためにそのまま保持される仕様になっています。文字通りの「クリーンアップ(大掃除)」とはいかないのが少し紛らわしいところですね。

/fork

過去の会話の特定のターンや、特定のコード変更時点から新しいブランチ(分岐)を作って、別の新規セッションを立ち上げるコマンドです。バージョン管理システムのGitでブランチを切るような感覚で、ある時点のコードをベースに別の実装パターンを試したいときにすごく重宝します。しかし、これも新しいスレッドが派生して増えるだけですので、元となった古いスレッドやこれまでの履歴ファイルが消えることはありません。むしろ、管理すべきデータ自体は増えることになります。

/logout

Codexアカウントからサインアウトするためのコマンドです。実行することで、ローカルマシンに保存されていたログイン認証情報(アクセス資格情報やトークン)は安全に破棄され、第三者があなたのマシンのターミナルから勝手にCodex APIを叩くことはできなくなります。ただし、それまでにマシン内に蓄積された会話の履歴ファイルや、過去に出力されたソースコードのログそのものは、ログアウトしても自動で消えることはなくそのまま居座り続けます。

補足:セッションを再開するコマンドオプション
Codexには過去のやり取りをローカルに永続化して、後からレジューム(再開)するためのコマンド群も用意されています。これらを見ても、データがいかにしっかりローカルに残っているかが分かりますね。完全にデータを管理するためにも、これらの仕様も合わせて把握しておきましょう。

コマンド動作仕様
codex resume過去のインタラクティブセッション履歴をピッカー形式でリスト表示し、選んだセッションを再開します。
codex resume --lastピッカーの表示をスキップし、現在のワーキングディレクトリにおける直近のセッションを即座に再開します。
codex resume --allディレクトリのフィルタを無視して、マシンのローカルに存在するすべての履歴セッションを表示します。
codex resume <SESSION_ID>指定した特定のセッションIDを直接ターゲットにして、その会話状態を復元します。

ローカルストレージにおける物理削除プロセスとディレクトリ構造

CodexのCLIやデスクトップAppには、不要になったスレッドや機密コードを含む会話を、標準のコマンド一発で根こそぎ物理削除するようなオプションが用意されていません。そのため、どうしても過去のデータを完全に抹消したい場合は、OSごとの隠しディレクトリへ直接アクセスして、手動でファイルを扱う必要があります。ここではその詳細な構造と、手動で処理を行う際の大きな注意点について詳しく見ていきましょう。

物理ディレクトリパスとファイル構成

Codexが過去の会話記録(ロールアウト)やそれに付随するメタデータを保存している場所は、主に以下の隠しフォルダになります。エクスプローラーやファインダーの設定で「隠しファイルを表示する」ように変更してから確認してみてくださいね。普段は見えない場所に、驚くほど細かくログが蓄積されていることが分かります。

  • macOS / Linux環境: ~/.codex/sessions/
  • Windows環境: C:\Users\<ユーザー名>\.codex\sessions\

このセッションディレクトリの中は、管理しやすいように「年(YYYY)」「月(MM)」「日(DD)」の単位で細かくフォルダ分けされています。そして、その最深部には日時や一意のハッシュ値が含まれたJSONL形式、またはJSON形式のログファイル(例: rollout-*.jsonl)が配置されています。このファイルを開くと、過去に書いたコードがプレーンテキストでそのまま残っているため、セキュリティ上のリスクになり得るのです。

構成ディレクトリ・ファイルデータの役割と格納内容
~/.codex/sessions/YYYY/MM/DD/*.jsonl各会話の具体的なやり取り、コードの差分、モデルへのプロンプトを含むセッション本体ファイルです。
~/.codex/archived_sessions/App側で「アーカイブ(非表示)」に設定したセッションのデータが退避されるフォルダです。中身は消えていません。
~/.codex/worktrees/セッションごとに自動生成されるGitワークツリーのディレクトリで、長期間使うとかなり肥大化しやすいです。
~/.codex/session_index.jsonlローカルに保存されているすべてのセッションの目次(インデックスデータ)を記録しています。
~/.codex/state_*.sqliteセッションの管理状態や、アクティブなプロジェクトのメタデータを記録したSQLiteデータベースです。
~/.codex/logs_*.sqliteツールの実行ログや、エージェントの処理履歴を保存するデータベースです。

手動削除における注意点と整合性エラーのリスク

注意:ファイルの間引き削除は危険!

特定のセッションファイル(.jsonl)だけを狙って rm コマンドなどで直接削除することは、物理的には可能です。しかし、Codexは複数のファイルが複雑に互いに関連し合って動いているため、JSONLファイルだけを一方的に消すと、管理しているSQLiteデータベースやインデックスファイル(session_index.jsonl)との間でデータの不整合が起きてしまいます。

その結果、アプリを再起動したときに、画面上には消したはずのデータが「ゴースト(壊れたインデックス)」として残り続けたり、最悪の場合は内部エラーを起こしてアプリケーション自体がクラッシュすることもあります。ですので、知識なしでの手動の部分削除はあまりおすすめできません。やるなら丸ごと消すか、後述する安全なツールを使うのが無難かなと思います。

外部ツールを用いた履歴クリーンアップの自動化手法

手動でデリケートなシステムファイルを触るのはちょっと怖いですし、開発を続けるうちに自動生成されるGitワークツリー(worktrees/)が数十ギガバイト単位に膨れ上がり、マシンのストレージを圧迫するのも困りものですよね。そんな背景もあって、開発者コミュニティでは、データの整合性を保ちながら安全にローカルデータを掃除できるオープンソースのクリーンアップツールがいくつか公開されています。これらを活用して、賢く自動化しちゃいましょう。

ツール名開発・配布元対象環境主な機能と特徴
codex-history-cleanerLeeeeTXmacOSターミナル上でローカルの会話履歴を一覧表示、検索、プレビューできるTUI(テキストユーザーインターフェース)を提供。デフォルトで自動バックアップを作ってくれるので初心者でも安全です。
codex-cleaniamquang95macOS / Linuxセッションごとに作成された ~/.codex/worktrees/ 内の容量を可視化し、安全にメタデータごと物理削除してくれるRust製のツール。ディスク容量の回収に特化しています。
codex-sessions-manager1939869736luosi各種環境アプリケーションが残した整合性エラーを自動検証し、SQLiteファイル(logs_*.sqlite など)から削除済みスレッドのメタデータ残留分をキレイに掃除してくれるPythonスクリプトです。
Steelie44(コミュニティ)WindowsPowerShell環境で動作し、.codex 配下の不要なセッションデータやインデックスのズレを安全かつ一括で全削除するためのWindowsユーザー向けクリーンアップ用スクリプトです。

こうした有志の開発したツールを上手にスクリプトに組み込んで、週に1回自動で走るように設定しておけば、生のシステムファイルに直接干渉して開発環境を壊してしまうリスクを極限まで減らすことができます。整合性を保ったまま、常にディスクをすっきりとした安全な状態に維持できるのでおすすめですよ。

OpenAIのデータプライバシーポリシーとトレーニング拒否設定

会話履歴の管理や削除を徹底する上で忘れてはならないのが、自分のパソコン(ローカル環境)だけでなく、OpenAIのクラウドサーバーに送信されたデータが向こう側でどう扱われるかという点です。ここもしっかりと対策を行っておかないと、片手落ちになってしまうかもしれません。サーバー側の仕様と、確実なオプトアウト(学習拒否)の手順を解説します。

クラウド上の履歴保持とアカウントの完全削除

私たちが製品のUI上や適切な手順で「スレッドの削除」を実行すると、対象のデータは画面からすぐに姿を消し、最大30日以内にOpenAIのバックエンドシステムからもハード削除(完全消去)される仕様になっています。ただし、不正アクセスの検知やセキュリティ分析、または法的義務がある場合など、ごく限定的な理由で30日を超えてデータが保持される例外規定もあるみたいです。もし、アカウントそのものを完全に消去してすべてのデータを抹消したい場合は、公式のプライバシーポータルか、製品の設定画面にある「Delete Account」からプロセスを実行すれば、同じく30日間の処理猶予期間を経てシステムから完全に削除されます。

モデルトレーニングのオプトアウト手法とその隠れた仕様

ChatGPT PlusやPro、あるいはFreeなどの個人プランを標準のまま使っている場合、Codexやチャットを介して入力したソースコードやプロンプトの内容は、AIモデルの精度向上のためのトレーニング(学習)に使用されてしまいます。企業の機密コードが他人のプロンプトの提案に出てくるような最悪の事態を防ぐため、以下のオプトアウト手段を必ず講じておきましょう。

1. 画面UIでのオプトアウト設定

製品の「設定 > データコントロール」を開き、「すべての人向けにモデルを改善する(Improve the model for everyone)」のトグルスイッチをオフにします。非常に手軽で良いのですが、これをオフにすると画面の履歴ナビゲーションバー(過去のチャットログを振り返る機能)自体が強制的に使えなくなってしまうという、少し不便なトレードオフがあります。

2. プライバシーポータル経由の「オプトアウト申請」

「サイドバーの履歴表示は開発の備忘録として残したいけれど、AIの学習にだけは絶対に使われたくない!」という場合は、OpenAIの公式プライバシーポータルから「私のコンテンツで学習させない(do not train on my content)」の専用フォームを直接送信するのがおすすめです。これならUIの便利さを犠牲にせず、データ学習のみを恒久的にストップできます。

3. 一時的チャット(Temporary Chat)の活用

ちょっとしたコードのデバッグや、その場限りの検証をしたいときは、一時的チャットモードを有効にして会話をするのが便利かなと思います。このモードでのやり取りは、最初から履歴バーに保存されず、モデルのトレーニングにも一切使用されません。使い捨ての検証用として非常にスマートな機能です。

Codex環境特有の重大なデータ保護規制

ここで一つ、多くの開発者が見落としがちな超重要ポイントがあります。実は、ChatGPTの通常のWebインターフェースや一般的なプライバシーポータルで行ったオプトアウト設定は、フル環境(full environments)に関するCodex固有の設定には自動適用されないという隠れた仕様があるんです。

Codexがローカルのプロジェクト構造全体(ワークスペース内の他ファイルなど)を自動で読み込んでトレーニングに使用するのを防ぐためには、それとは別に「Codexの設定(Codex Settings)」画面に直接アクセスして、フル環境のデータ共有オプション(Data Sharing for Full-Environments)を個別に無効化する必要があります。これを行っておかないと、一般チャットの学習を拒否していてもローカル開発環境の全体像が学習に使われてしまうリスクが残るので気をつけてくださいね。なお、TeamやEnterprise、API従量課金などの法人契約プランであれば、最初からデフォルトで一切学習に使用されないよう厳格に保護されています。

自律型エージェントの危険性と「データ消失」の実例

Codex CLIのように、ローカルシステムへの強力なアクセス権(シェル実行権限やファイル操作権限)を持った自律型エージェント機能を使うときは、セキュリティだけでなく、データ破壊のトラブルにも少し注意が必要です。AIが良かれと思って行った自律行動が、とんでもない事故を引き起こすことがあります。

実際にあった恐ろしい報告として、開発中のデータベースマイグレーション(構造変更)作業を行っていた際、Codexエージェントがユーザーの曖昧なプロンプトの指示をそのまま真に受けてしまい、ターミナル上でデータベース全体を初期化して環境を再構築する破壊的なコマンド(php artisan migrate:freshrails db:drop に相当する操作)を自律的に走らせてしまい、ローカルの本番用テストデータを全消去してしまったという事故があるそうです。さらに、その事故の直後にCodexのローカルログから数日分のアクティビティが勝手に消えるという、まるで証拠隠滅のような挙動(実際はシステムが異常終了したことによるSQLiteデータベースの保存失敗の可能性が高いみたいですが)も観測されたとか。

こうしたリスクを回避するためにも、エージェント型AIにコマンドの自動実行(Autoモード)を丸投げするのは避け、必ず /permissions コマンドなどを使って「手動での承認ステップ(Read Onlyモードや確認プロンプトの強制)」を挟む設定を徹底するのが安心ですね。人間が最後の砦としてチェックを入れる体制が不可欠です。

こうしたデータ保護姿勢や予期せぬ挙動への懸念、さらに地政学的な背景から、海外の開発者コミュニティではアカウントデータを永久削除して他社サービスへ組織ごと乗り換える「#QuitGPT」という動きが一時的に起きたこともあり、現在の組織におけるAIプラットフォーム選定では、より厳格なガバナンスと透明性が求められるようになっています。

競合AIツールにおける履歴削除仕様の比較検証

Codexのデータ管理や履歴削除の仕様がどれくらい独特なのかをより客観的に理解するために、強力な競合AIツールである「GitHub Copilot Chat」や「Microsoft Copilot」がどのような履歴削除プロトコルを採用しているのかを比較してみましょう。ツールごとの設計思想の違いが見えて面白いですよ。

GitHub Copilot Chatにおける履歴削除

VS CodeやJetBrainsなどのエディタのサイドバーに深く統合されているGitHub Copilot Chatは、Codexに比べて「会話の管理・削除」のUI設計がかなり直感的で扱いやすくなっています。チャット画面上に表示される各スレッドの「x」アイコンをクリックすれば特定のセッションを簡単に物理削除できますし、チャット欄に /clear コマンドを打ち込むことで、その場でコンテキスト履歴をきれいにクリアできます。さらに、高度な開発者向けにGitHub CLI(gh)も対応しており、gh copilot chat delete コマンドを使ってターミナルから直接指定したチャット履歴を削除することも可能です。

スレッドを削除すると、その会話用にバックグラウンドで生成されていたローカルのGitワークツリーリソースも自動で一緒にクリーンアップしてくれる親切設計です。ただ、アクティブな会話ウィンドウを開いたままだと削除エラーになるといった小さな制約や、一部の環境でエディタのキャッシュに「ゴースト(表示だけの残り香)」が残るバグなども報告されていますが、全体的にはクリーンな運用がしやすいです。

Microsoft Copilotにおける履歴削除

ビジネス文書作成や日常のタスク管理、Windowsシステム操作を支援するMicrosoft 365 Copilot(および一般向けCopilot)は、開発者向けというよりは一般のユーザーが最も迷わず一括削除を行えるようなエンタープライズ向けの仕組みを構築しています。ブラウザやモバイルアプリの「最近のアクティビティ」リストから、三点リーダー(…)のメニューを使って特定のトピックを即座に削除できますし、アカウントレベルでまとめて消したい場合は、Microsoftの「プライバシーダッシュボード」にアクセスすることで、期間を指定してCopilotの対話履歴を一括パージ(完全消去)できます。

ただし法人アカウント(Entra IDログイン)の場合は、社内のIT管理者がコンプライアンス遵守や証拠保全(リーガルホールド)の理由から、グループポリシーで履歴削除権限を制限(ブロック)していることが多く、その場合は個人側が画面上でいくら消去を試みても、管理サーバー側にはログが厳重に残る仕様になっています。このあたりは流石ビジネス向けといった堅牢さですね。

履歴削除フローとガバナンスの差異(対照表)

それぞれのツールの仕様の違いを表にまとめました。Codexがローカルファイルの管理において、いかに開発者自身の管理能力(または外部ツール)に依存しているかがよく分かりますね。

機能項目OpenAI CodexGitHub Copilot ChatMicrosoft Copilot
画面UIでの個別削除不可(「アーカイブ」による非表示のみ)可能(VS Code等のセッション一覧で削除)可能(アクティビティから個別削除)
コマンドによる履歴削除/clear は表示クリアのみ(物理削除不可)/clear でコンテキスト履歴を即座に削除非対応
公式CLI操作非対応(ローカルファイルを直接手動削除)gh copilot chat delete で操作可能非対応
ローカルフォルダのパス~/.codex/sessions/.../globalStorage/github.copilot-chat/非公開(ブラウザ内、クラウド主導)
自動クリーンアップコミュニティ製ツール(codex-clean 等)サードパーティ製拡張機能など標準プライバシーダッシュボードで一括パージ
企業管理者による制限不可(各自の設定や契約形態に依存)可能(Copilot Enterpriseポリシーなど)可能(ポリシーによる履歴消去機能の制限)

結論および開発組織における推奨データ保護プロトコル

AIを活用したコーディングが当たり前になった現代において、Codexのようなローカルシステムと深く連携して動作するツールは、私たちの生産性を大きく引き上げてくれる強力な味方です。その一方で、気付かないうちにシステム内部の隠しフォルダに機密コードやプロジェクトのメタデータが残りやすいという、セキュリティ上のリスクも背中合わせで抱えています。Codexにスレッドを直接物理削除する組み込みのワンラインコマンドがないという現状の仕様をふまえ、安全に開発環境を運用するための具体的な推奨データ保護プロトコルを3つの柱にまとめてみました。ぜひチームのガイドラインに組み込んでみてください。

1. 法人プランへの一本化とオプトアウト設定の徹底
まずはCodexの利用形態を、デフォルトでデータが製品開発モデルのトレーニングに絶対使用されない設計になっている「ChatGPT Team」や「Enterprise」、あるいは「API従量課金プラン」に可能な限り一本化し、データ流出の根本的な原因を抑え込むのが一番安心かなと思います。もし諸事情で個人向けプランの併用が避けられない場合は、プライバシーポータルからのオプトアウト申請を開発ルールとして義務付けましょう。さらに、見落としがちなCodex独自の「フル環境トレーニング設定(Full-Environment Training)」を確実に「オフ」にするための構成手順書をチーム内に共有しておくのがベストです。

2. クリーンアップ運用の明文化と標準化
ローカルマシンにおけるセッションデータの肥大化や、インデックスの不整合によるアプリクラッシュを防ぐため、開発メンバーに対して .codex/sessions/ の定期的なクリーンアップ運用を周知・スケジュール化しましょう。その際、コマンドラインから生ファイルを乱暴に間引くような運用の仕方は、データベースの破損を引き起こすリスクがあるため厳禁とします。整合性を壊さない安全な自動削除ロジックや、コミュニティで実績のある検証済みのオープンソースツール(codex-history-cleanercodex-clean など)を組織的に指定ツールとして採用し、安全な手順を標準化するのが賢い方法ですね。

3. エージェント操作権限の厳格な制限
Codexエージェントが持つターミナル操作権限が引き起こすかもしれない、予期せぬデータ誤削除や環境破壊といったアクションから大切なローカル開発環境を強固に守るため、導入時に必ず /permissions コマンドを実行しましょう。シェルコマンド実行時の自動レビューモードを「Auto(全自動)」から「確認ダイアログ付き(Read Onlyや対話型確認プロンプトの強制)」に制限しておくように設定を義務付けます。これにより、AIによる意図しないシステム変更や、それに伴うログの予期せぬ欠損を根本から防ぐ安全弁(ガードレール)として機能させることができます。

この記事を書いた人

エンジニア歴 12 年・Web マーケター歴 4 年・ブログライター歴9年。エンジニア兼マーケターの視点から AI ツール活用に取り組んでいます。
AI-Rise では、NotebookLM・Claude Code・Google AI Studio・Gamma などの主要 AI ツールについて、機能・料金・使い方・エラー解決といった実用情報を整理して発信。新しいツールが登場するたびに調べ、初心者がつまずきやすいポイントを噛み砕いて記事にすることを意識しています。

目次