Grok Conversation Copy Tool
このプロジェクトは、Grok (grok.com) の会話ページにおいて、全ての会話ターン(ユーザーの質問とAIの回答)を一括でクリップボードにコピーするためのユーザースクリプト grok-copy-all.user.js を提供します。
概要
Grokの会話ページでは、各ターンごとに「コピー」ボタンが用意されていますが、会話全体を一度にコピーする方法は提供されていません。 本スクリプトは、画面上の全てのコピーボタンを自動的に検出し、順次クリックをエミュレートすることで、全てのテキストを結合してクリップボードに保存します。
機能
- ボタン追加: 画面右上にオレンジ色の 「Copy All」 ボタンを追加します。
- 自動収集: 会話の上から下まで、全ての「コピー」ボタン(
aria-label="コピー"またはaria-label="Copy")を自動的に処理します。 - スマート結合: 各ターンのテキストを区切り線(
--------------------)で結合し、読みやすい形式でクリップボードに格納します。 - 通知: コピーが完了するとボタンの表示が「Done!」に変わります。
対象ページ
以下のような Grok の共有会話ページ(/c/を含むURL)で動作します。
https://grok.com/c/abaf5ee3-7047-48fe-b7e6-62b3e9006810https://grok.com/c/50d6285c-e555-4e44-81b4-d5f40762f976https://grok.com/c/9425d7a7-...?rid=...(リビジョンID付きも可)
インストール方法
- Tampermonkeyの導入: Chrome等のブラウザ拡張機能「Tampermonkey」をインストールしてください。
- スクリプトの追加:
grok-copy-all.user.jsの内容を新しいスクリプトとして追加、保存します。 - 有効化: スクリプトが有効になっていることを確認してください。
使い方
- Grokの会話ページを開きます。
- ログインしていない場合やCloudflareの認証が表示された場合は、手動で認証を済ませてページを表示してください。
- ページ右上に表示される 「Copy All」 ボタンをクリックします。
- ボタンの色が変わり、処理が開始されます。完了後「Done!」と表示されたら、クリップボードに全会話がコピーされています。
開発情報
検証環境
- 対象ボタン仕様:
sample1.html,sample2.htmlに基づく構成。 - 検証ツール: スタティックHTMLでの自動テストおよび実サイトでの動作確認(ユーザーによる)。
技術的な仕組み
navigator.clipboard.writeText を一時的にフック(ジャック)し、各ボタンがこの関数を呼び出した際に渡されるテキストを配列に保存します。これにより、DOM構造が変化しても「ボタンがコピーしようとした内容」を正確に取得できます。