ClaudeのチャットをMarkdownで保存する方法(Artifacts、引用、Projects対応)

·

Claudeでのチャットは、本格的なリサーチやコーディング作業の場としてますます重要になっています。Artifacts、引用、数時間に及ぶやりとりを含む長いスレッドには、あなたのノートにあるどんなドキュメントよりも多くの推論が詰まっていることが少なくありません。それなのに、Anthropicはエクスポート機能を提供していません。「Markdownでダウンロード」ボタンも、JSONダンプも、アーカイブ用エンドポイントもありません。スレッドがサイドバーから見えなくなってしまうと、戻る手段は claude.ai 上の検索だけで、しかも記憶どおりのものが必ずヒットするとは限りません。

ClaudeのチャットをMarkdownで保存すれば、3つの問題が一度に解決します。永続的なローカルアーカイブが手に入り、過去の推論をObsidianやNotion内で参照でき、モデルを切り替えるときに古いClaudeスレッドをChatGPTやGeminiにコンテキストとして渡せます。

このガイドでは、簡単なチャットから200KトークンのリサーチスレッドwithArtifactsまで、Claudeのチャットをクリーンなマークダウンに変換するすべての方法を解説します。

なぜClaudeのチャットをMarkdownで保存するのか?

Markdownは、チャットを持ち出したい先がどこであっても通用するフォーマットです。

  • 別のLLMに渡す --- セカンドオピニオンや異なる推論スタイルが欲しいときに、古いClaudeスレッドをChatGPT、Gemini、ローカルモデルに貼り付ける
  • ObsidianやNotionに取り込む --- 1チャット1ファイル、完全に検索可能、プロジェクトのノートからリンク可能
  • 特定のターンを引用する --- 50ターンのスレッドの中で「Claudeがリファクタを提案した瞬間」を見つけるのは検索一発
  • Artifactsを実ファイルとしてアーカイブ --- Claudeが作ったコード、ドキュメント、Reactコンポーネントが、リポジトリにコピーできるコードブロックになる
  • 引用を保持 --- Claudeが回答の根拠としたウェブ検索結果が、後から監査できる脚注になる

2026年にClaude-to-Markdownのトラフィックを牽引している主なユースケースは1つ目です。人々はClaudeを使って深い作業をした後、最終回答だけでなくアウトプットと推論を残したいと考えています。

方法1:Save(最速、ワンクリック)

Save はChrome拡張機能で、ClaudeのどんなチャットでもワンクリックでMarkdownファイルに変換します。チャットのDOMを走査し、ユーザーとアシスタントの各ターンを順番に抽出し、Artifactsを正しい言語識別子付きのコードブロックとして取り出し、引用を脚注として保持します。

使い方:

  1. Chromeで Claude のチャットを開く(claude.ai/chat/... および共有チャットのリンクで動作)
  2. ツールバーのSave拡張機能アイコンをクリック
  3. .md ファイルが即座にダウンロードされる(接続済みであればSave Vaultに着地)

得られるもの:

  • チャットのタイトルと日付がフロントマターに
  • ユーザーとアシスタントの全ターンが、順番に、ロールラベル(## You / ## Claude)付きで
  • ClaudeのArtifacts(コード、ドキュメント、HTML、Reactコンポーネント)が正しい言語識別子付きのコードブロックとして抽出される
  • 返信内のコードブロックの言語ヒントも保持
  • Claudeのウェブ検索結果の引用がMarkdownの脚注として
  • Claudeがツールを呼び出したときのtool-useターン(呼び出しと結果の両方が現れる)
  • チャットがClaude Project内にあり、システムプロンプトや知識ファイルが見えている場合、そのProjectのコンテキストも保持

削除されるもの:

  • Claude.aiのナビゲーションchrome、サイドバー、モデルピッカー
  • あなたが選ばなかった、空の再生成ブランチ
  • インラインのUIアフォーダンス(「Edit」「Copy」「Retry」ボタン)
  • ローディングスケルトンや途中のストリーム

こんな人に最適: 研究者、エンジニア、AIユーザー、Claudeで長いスレッドを回していて作業を残しておきたいすべての人。別のモデルに貼り付ける、Obsidianにアーカイブする、チームメイトに渡す、そんなクリーンなトランスクリプトが欲しいなら、これが最もきれいな道です。

出力例

短いClaudeチャット(Artifact入り)をSaveするとこうなります:

---
title: "Refactor my Express middleware into Hono"
url: https://claude.ai/chat/a1b2c3d4-...
model: Claude Opus 4.7
date: 2026-05-22
turns: 6
---

## You

Here's my Express middleware. Can you port it to Hono? I want to keep
the same auth behavior but drop the body-parser dependency.

```js
app.use((req, res, next) => {
  if (!req.headers.authorization) return res.sendStatus(401)
  // ...
})

Claude

Hono ships JSON parsing in core, so the body-parser dependency goes away on its own. The middleware shape is almost identical --- c.req instead of req, and you return instead of calling next().

Here’s the port 1:

import { Hono } from 'hono'

const app = new Hono()

app.use('*', async (c, next) => {
  const auth = c.req.header('Authorization')
  if (!auth) return c.text('Unauthorized', 401)
  await next()
})

このファイルは、貼り付け1回でChatGPTで使えるコンテキストになり、キー1つで永続的なObsidianノートになり、中のArtifactはコピー1回でリポジトリにコミットできます。

## 方法2:手動コピー&ペースト

Claude.aiでは、チャットペインのテキストを通常のウェブページと同じように選択してコピーできます。

**手順:**

1. チャットの一番上までスクロール
2. クリック&ドラッグで全ターンを選択
3. コピーして、Markdownエディタに貼り付け
4. 手作業でロールラベルを追加、コードブロックのフェンスを修正、コピーされなかったArtifactsの中身を再追加、引用リンクを再構築

**このアプローチの問題点:**

- 長いスレッドで全チャットを選択するのは脆い --- ClaudeはDOMを仮想化するので、スクロールするとそれより前のターンがドキュメントから外れる
- Artifactsはテキストとしてコピーされない。プレースホルダーか何も出ない
- コードブロックは言語ヒントを失う
- ウェブ検索の引用は `[1]` `[2]` だけで宛先URLなしで通る
- ロールの境界が崩壊する --- ユーザーとClaudeのターンが一枚のテキストの壁に
- ブランチありのチャット(応答を再生成したもの)は、すべてのブランチを一度に持ってくる

2ターンのやりとりなら何とかなる。画面1つを超える長さでは破綻します。

## 方法3:ブラウザコンソール+スクリプト

開発者向けには、チャットデータはDOMの中にあります。Chrome DevToolsのコンソールで小さなスクリプトを書いて走査できます。

```js
const turns = document.querySelectorAll('[data-testid="conversation-turn"]')
const md = Array.from(turns).map(t => {
  const role = t.querySelector('[data-role]')?.dataset.role
  const body = t.querySelector('.prose')?.innerText
  return `## ${role === 'user' ? 'You' : 'Claude'}\n\n${body}`
}).join('\n\n---\n\n')
console.log(md)

こんな人に最適: 出力を一回限り自分で制御したいエンジニア、または多数のスレッドをまたいだ一括抽出をスクリプト化する必要がある人。

このアプローチの問題点:

  • セレクターは公式APIの一部ではない。AnthropicはUI変更を定期的にリリースしており、スクリプトは予告なく壊れる
  • ArtifactsはiframeやReactのツリー外ポータルでレンダリングされる。innerText ではこれらを取り逃す
  • 引用は初期DOMに含まれないツールチップ内にある
  • tool-useターンはテキストターンと異なるネスト構造になっている
  • ログインしてチャットタブにいる必要がある。バッチジョブとしては動かない

環境を自分で制御している場合の妥当な逃げ道。頼りにする方法ではありません。

方法4:AnthropicのWorkbench API(チャットを再構築する)

Anthropic APIはMessagesエンドポイント経由でチャットのプリミティブを公開していますが、過去のclaude.aiチャットを返すエンドポイントはありません。APIはあなたがAPI経由で送ったチャットしか見えません。claude.aiのスレッドをプログラム的に再構築するには、自分で再生する必要があります。

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-4-5",
    "messages": [{ "role": "user", "content": "..." }]
  }'

こんな人に最適: 独自のClaudeラッパーを構築していて、チャットを自前のデータベースに保存するチーム。呼び出しを制御しているなら、エクスポートも制御できます。

既存チャットのユースケースで困ること:

  • 過去のclaude.aiチャットはAPI経由では到達不能
  • APIクレジットと自前のストレージレイヤーが必要
  • 既にウェブUIで持っていたスレッドのアーカイブには役立たない
  • ArtifactsもAPIの機能ですが、レンダリングパイプラインはウェブアプリのものでAPIのものではない

これは製品を作る場合の正解です。昨日のリサーチスレッドをアーカイブしようとしている場合は、間違った方法です。

どの方法を使うべきか?

シナリオベストな方法
既にあるClaudeのリサーチスレッドをアーカイブSave --- ワンクリック、構造化された出力
古いClaudeチャットをChatGPTやGeminiに貼り付けるSave --- 全ターン、Artifactsもそのまま
Claudeが作ってくれたArtifact(コード、ドキュメント、React)を残すSave --- コードブロックとして抽出
スレッドをプロジェクトのノートと並べてObsidianに入れるSave --- クリーンなフロントマターと見出し
自分のチャットロガーをゼロから作るAnthropic API --- 呼び出しを自分で制御するなら
2ターンのやりとりを手早く雑にコピー手動コピー&ペースト --- 無料、速い、雑
カスタム変換付きの一回限りの抽出コンソールスクリプト --- セレクターに慣れているなら

ほとんどの人にとって --- 特にClaudeをリサーチ、エンジニアリング、ライティングに使う人にとって --- 答えはSaveです。セットアップなしで最もクリーンなマークダウンを生成し、200Kトークンのスレッドを1ターンのチャットと同じ速さで処理します。

Saveが対応するエッジケース

  • Claude Projects. Project内の各チャットはスタンドアロンのファイルとして抽出されます。Projectのシステムプロンプトや知識ファイルがチャットヘッダーに見えている場合、Saveがそれらをフロントマターに取り込むのでコンテキストが失われません。
  • マルチArtifactのチャット. Claudeが3つのArtifacts(例:HTMLページ、Reactコンポーネント、SQLスキーマ)を作ったスレッドは、各Artifactがそれぞれ独立したコードブロックとして、登場順に、正しい言語識別子付きで出力されます。
  • 非常に長いチャット. Claudeの200Kコンテキストウィンドウは、数百ターン・数万語のスレッドを生み出すことがあります。SaveはスクロールしながらDOMをストリームするので、フルスレッドが、それより前のターンを落とすことなく通ります。
  • ブランチ化された応答や再生成された応答. Claudeの返答を再生成した場合、エクスポートされるのはあなたが残したブランチ(現在表示されているもの)だけです。破棄されたブランチはスキップされます。
  • tool-useターン. Claudeがツール(ウェブ検索、コード実行、computer use)を呼び出すと、呼び出しと結果の両方が tool_usetool_result のマーカー付きのコードブロックとして取り込まれ、推論の連鎖が壊れません。
  • 共有チャットのリンク. claude.ai/share/... のURLは、あなた自身のチャットと同じように動きます。誰かがシェアしてくれたスレッドのアーカイブに便利です。
  • Computer Useセッション. DOMで見えているものに限定されます --- スクリーンショットとモデルの推論は通りますが、その背後のVMの状態は通りません。
  • Claude Codeのチャット. Claude Codeはターミナルで動き、claude.ai では動きません。ターミナルセッションについては、別途キャプチャするための Claude Code + Obsidian ワークフローガイド を参照してください。

あなたのワークフローと組み合わせる

このMarkdown出力は、必要な場所どこでも動きます:

  • ChatGPT / Gemini / ローカルモデル --- ファイルを貼り付けて、別のモデルにフォローアップ質問
  • Obsidian --- vaultに入れて、プロジェクトのノートからリンクし、これまで保存したすべてのClaudeスレッドを横断検索
  • Notion --- 直接貼り付けると、見出しとArtifactのコードブロックが正しくレンダリング
  • Apple Notes --- Markdownシェア拡張機能できれいにインポート
  • gitリポジトリ --- コードブロックから直接Artifactsを正しいファイルにコミット
  • Save Vault --- 接続済みなら、Claudeで保存するたびに自動でそこに着地。バックリンクとタグ付き

FAQ

Saveは共有チャットのリンクで動きますか? はい。claude.ai/share/... 配下のものは、あなた自身のチャットと同じ方法でエクスポートされます。同僚が送ってくれたスレッドのアーカイブに便利です。

Claude Projectsはどうですか? Project内の各チャットは個別に保存されます。Projectのシステムプロンプトや知識ファイルがページに見えている場合(ヘッダーやサイドバー)、Saveがそれらをフロントマターに取り込むので、そのチャットが依存していたコンテキストを失わずに済みます。

Artifactsはキャプチャされますか? はい --- ここが核となる差別化要素です。Artifacts(コード、ドキュメント、HTML、Reactコンポーネント、Mermaidダイアグラム)は、Claudeが作った順に、正しい言語識別子付きのコードブロックとして通ります。そのままリポジトリやドキュメントにコピーできます。

Claudeのウェブ検索の引用はどうなりますか? 引用はMarkdownの脚注として保持されます。脚注のテキストはソースURLなので、後で元のスレッドに戻らずにClaudeの根拠を監査できます。

Claude Code(CLI)でも動きますか? Claude Codeはターミナルで動き、ブラウザでは動きません。拡張機能は claude.ai を対象としています。CLIセッションについては、チャットのトランスクリプトが ~/.claude/ のディスクに存在し、別途キャプチャできます --- Claude Code + Obsidian ワークフローガイド で扱っています。

非常に長いスレッドにも対応しますか? はい。Claudeの200Kコンテキストは、数百ターンのチャットを生み出せます。SaveはチャットペインをスクロールしながらDOMに再仮想化される各ターンを読むので、最も長いスレッドでも完全に通ります。

ブランチ化された応答も含まれますか? UIに現在表示されているブランチ(あなたが残したもの)だけです。あなたが選ばなかった再生成ブランチはスキップされ、ファイルがClaudeがあなたに見せているチャットと一致します。

料金はいくらですか? Saveには無料枠があり、いくつかのチャットで試せます。それ以降は、継続利用は小さなサブスクリプションでカバーされます。

関連するSaveガイド

Footnotes

  1. https://hono.dev/docs/guides/middleware

## Continue reading

Jean-Sébastien Wallez

Written by

Jean-Sébastien Wallez

I've been making internet products for 10+ years. Built Save on weekends because I wanted my own reading library in clean markdown for Claude and Obsidian. Write here about web clipping, AI workflows, and the small things that make a personal knowledge base actually useful.

## try save

よりスマートに保存しませんか?

あらゆるウェブページをワンクリックでMarkdownに変換。

Chromeに追加 🐿️