ByteScope

Chat Export Viewer

ChatGPT や Claude のデータエクスポートの zip——conversations.json 単体でも——を放り込むと、履歴全体を一か所で読めます。全メッセージを横断して検索し、編集や再生成でできた別の版を切り替え、いつどれだけ話したかを眺め、一つでも全部でも Markdown に保存できます。すべてこのブラウザのタブの中で完結し、アップロードも保存もしません。

ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。

ChatGPT や Claude からダウンロードした zip(または conversations.json)を置くだけ。全会話を検索し、編集や再生成で分かれた分岐をたどり、Markdown に書き出せます。アップロードはしません。

ChatGPT / Claude のエクスポートを置く、またはクリックして選ぶ

.zip、conversations.json、または展開済みフォルダ

フォルダを渡すと、チャットの隣にある画像やファイルも表示できます。

できないこと・注意点

  • ChatGPT と Claude はエクスポート形式を公開しておらず、いつでも変わり得ます。ここでの読み取りは公開されている説明をもとにした推定で、正式な仕様書に基づくものではありません。読み取れない内容は黙って飛ばさず、はっきり印を付けます。
  • 扱えるのはエクスポートに入っているものだけです。ツール呼び出しの途中結果、削除した会話、共有された会話などは、ファイルに含まれていないことがあります。
  • 画像やファイルが見られるのは、zip 全体かフォルダを渡したときだけです。conversations.json だけだと「含まれていません」と表示されます。
  • 処理はすべてこのタブのメモリ内で行い、閉じれば消えます。保存もアップロードもしません。

このツールについて

ChatGPT も Claude も自分のデータの書き出しを申請でき、届くのは conversations.json を含んだ zip です。中身は JSON の壁で、人が読むためのものではありません。このページはそのファイルを開くためのものです。zip ごと(推奨)、展開した conversations.json、または展開したフォルダを放り込むと、どちらのサービスの書き出しかは自動で判別されます。左の欄には全会話がタイトル・最終更新・メッセージ数つきで並び、時間順の並べ替えとタイトルでの絞り込みができます。右の欄には選んだ会話が表示され、自分と AI の発言は区別され、時刻はあなたのタイムゾーンで、コードブロックは等幅フォントにコピーボタンつきで出ます。大きなファイルは Web Worker の中でストリームとして一会話ずつ読むので、ページは固まらず、進捗バーは実際に読んだバイト数を示します。

読めるもの、分からないもの

ChatGPT も Claude もエクスポート形式を公開していません。このページが理解している項目は公開されている説明から推定したもので、向こうの更新ひとつで変わりうるものです。だから原則は「分からないものは捨てない」。メッセージの一部にページが知らないコンテンツ種別があれば「未対応のコンテンツ種別」というプレースホルダーとして表示し、ボタン一つで元の JSON を見られるようにします。ページ上部の「形式カバレッジ」カードがその数を数え——「全 N 件のうち M 件に未対応の種別を含む」と種別ごとに一覧——何が漏れたかをそのまま見せます。思考過程、ツール呼び出しとその結果、コード実行の出力、ブラウジングの引用といった既知の補助的な内容は折りたたみや薄い表示になり、「分からない」には数えません。ファイル全体がどちらの会話一覧でもなければ、推測せずにそう告げて先頭の 500 文字を表示します。

編集した質問、再生成した回答

質問を書き直したり、もう一度答えさせたりすると、エクスポートはそのすべての版を同じ会話の枝として残しています。版が二つ以上あるメッセージには「バージョン 2/3」の切り替えが現れます。既定ではエクスポートが「現在」と印をつけた枝を表示し、印がなければ最新の枝を表示します。公式の画面では矢印を一つずつたどる必要がありますが、ここではどの版もワンクリックで、いくつあるかも一目で分かります。

検索と統計

検索は Worker の中で全メッセージのプレーンテキスト索引を作ります。小文字化と NFKC 正規化のうえで部分文字列として照合するので、日本語や中国語も分かち書きなしで引っかかります。結果は会話ごとにまとまり、前後の抜粋がつき、クリックするとそのメッセージへ飛んでハイライトされます。統計の画面では会話数とメッセージ数、月ごとのメッセージ数の棒グラフ、最も長い会話 10 件、そしてどのモデルが答えたかがエクスポートに記録されていればよく使ったモデルが出ます。どれもタブの外には出ません。索引は Worker のメモリにあり、ページと一緒に消えます。

Markdown として保存

どの会話も .md として保存でき、全体を zip 一つにまとめることもできます。会話ごとに一ファイル、ファイル名は YYYY-MM-DD-タイトル.md——タイトルは Windows でも使える名前に整えられます——で、添付ファイルは assets/ フォルダに入り相対パスでリンクされます。既定では今見ている枝だけを書き出し、「すべての枝を含める」にチェックすると他の版が ## Branch k of n の節として後ろに続きます。Markdown は HTML を含まないプレーンテキストで、末尾にはエクスポートから無改変で変換した旨と元ファイルの SHA-256 が記され、あとでそのコピーが元のエクスポート由来かを照合できます。

見えないもの

このビューアが知っているのはエクスポートに入っているものだけです。削除した会話、誰かから共有された会話、ツール呼び出しの中間結果の一部は、たいていファイルに含まれていないので、ここにもありません。画像やファイルの添付は zip ごと、または展開したフォルダを渡したときだけ表示され、conversations.json 単体では各添付が「このファイルには含まれていません」と表示されます。すべてはこのタブのメモリにあり、閉じれば消えます。アップロードも保存もせず、送る先のサーバーもこのページにはありません。ChatGPT と Claude はそれぞれの所有者の商標です。これは両者が書き出すファイルのための独立したビューアであって、公式のツールではありません。

よくある質問

会話の履歴はどこかにアップロードされますか?

いいえ。zip の展開も conversations.json の解析もブラウザ内の Web Worker が行い、検索索引・統計・Markdown ファイルもそこで作られます。このページには受け取るサーバーがなく、ストレージにも何も書かず、タブを閉じればすべて消えます。何年分もの履歴を開いても、テキストエディタで開くのと同じくらいプライベートで、ただ読みやすいだけです。

zip と conversations.json、どちらを放り込めばいいですか?

zip が一番です。ダウンロードしたのがそれで、画像やファイルの添付をこのページが表示できる唯一の方法でもあります。添付は zip の中で conversations.json の隣に入っています。展開したフォルダを放り込んでも同じです。conversations.json 単体でも読む・検索する・テキストを書き出すことはできますが、添付はすべて「このファイルには含まれていません」と表示されます。

「未対応のコンテンツ種別」と表示されるのはなぜ?

そのメッセージの一部が、このページの知らないコンテンツ種別を使っているからです。ChatGPT と Claude はエクスポート形式を公開したことがなく、このページが知っているのは公開情報からの推定で、向こうの変更ひとつで古くなります。黙って捨てる代わりに、印をつけ、ボタンの奥に元の JSON を置き、上部の「形式カバレッジ」カードにすべて数えて、何が漏れたかを分かるようにしています。思考過程やツール呼び出しなどの補助的な内容は認識していて折りたたんで表示します。このラベルはそれとは別物です。

画像や添付ファイルはどこにありますか?

zip の中、conversations.json の隣です。だからこのページは zip ごと、または展開したフォルダを求めます。メディアはそれを使う会話を開いたときにだけ展開するので、大きなエクスポートでも丸ごと解凍する必要はありません。conversations.json だけを放り込んだなら、画像を持っているファイルがそもそもないので、各添付がそう表示します。

メッセージの「バージョン 2/3」とは?

その地点で会話が枝分かれしたということです。質問を書き直すか回答を再生成して、エクスポートが三つの版をすべて残しています。切り替えはエクスポートが「現在」と印をつけた枝——印がなければ最新の枝——を表示し、他の版へ順に移れます。それに続く返答も選んだ版に合わせて変わります。枝はそれぞれ別々に続いているからです。

全部をまとめて Markdown に書き出せますか?

はい。「すべて書き出し」で zip が一つでき、会話ごとに日付とタイトルの名前がついた .md と、エクスポートに入っていた添付を収めた assets/ フォルダが入り、相対パスでリンクされます。各会話は既定で今表示している枝だけを書き、「すべての枝を含める」にチェックすると他の版が ## Branch k of n の節として続きます。各ファイルの末尾には無改変で変換した旨と元のエクスポートの SHA-256 が入ります。

とても大きなエクスポートでも動きますか?

そのように作ってあります。conversations.json は Web Worker の中でストリームとして解析し、会話が一つ完成するたびに正規化して要約を作り、元のオブジェクトはすぐ手放します。メモリの使用量はファイル全体ではなく一番大きな会話の大きさに従い、メインスレッドが全体を抱えることはありません。進捗バーは読んだバイト数/総バイト数を示します。実際にどこまで開けるかはブラウザが一つのタブに許すメモリ次第なので、上限の約束はしていません。