ChatGPTの会話をワンクリックで保存!

「会話ログ保存くん」の作り方・使い方【Windows対応】

ChatGPTで大事な会話が増えてくると、
「あとから見返したいのに履歴が消えた…」
「ログが消えて寂しい…」
という経験をされた方も多いと思います。

そこで今回は、
ChatGPTの画面の内容を “ワンクリックで .md ファイルに保存できる”
Windowsアプリ『会話ログ保存くん(じーさん版)』の作り方と使い方をまとめました。

技術の知識が無くてもできます。
実際に筆者が使っているツールの構成そのままです。


■ このツールでできること

  • ChatGPT画面を Ctrl+A → Ctrl+C でコピー
  • ボタンひとつで Markdown(.md) として保存
  • 保存先は自動的に日付入りで生成
  • 後から検索しやすく、整理しやすい
  • ChatGPT の仕様変更に影響されにくい
  • 完全ローカルなので安全

■ 使うもの

  • Windows パソコン
  • Python(無料)
  • PyInstaller(無料)
  • コピペした Python ファイル(後述)

■ 導入手順


▼ ① Pythonをインストールする

公式サイトからPythonを入れます。

https://www.python.org/downloads/windows

※ インストール時に
「Add Python to PATH」 にチェックを必ず入れてください。


▼ ② 「chatlog_saver.py」を作成する

  1. デスクトップを右クリック → 新規作成 → テキスト文書
  2. ファイル名を
chatlog_saver.py

に変更
3. メモ帳で開く
4. 下のコードを全文コピペ
5. 保存して閉じる


▼ ③ コード全文(そのままコピペでOK)

import os
import datetime
import tkinter as tk
from tkinter import filedialog, messagebox

APP_TITLE = "ChatGPT 会話ログ保存くん"

def get_default_folder() -> str:
    docs = os.path.join(os.path.expanduser("~"), "Documents")
    default = os.path.join(docs, "ChatLogs")
    os.makedirs(default, exist_ok=True)
    return default

class ChatLogSaverApp:
    def __init__(self, root: tk.Tk):
        self.root = root
        self.root.title(APP_TITLE)
        self.root.geometry("520x260")

        self.save_dir = tk.StringVar(value=get_default_folder())

        # 保存先
        frm_dir = tk.Frame(root)
        frm_dir.pack(fill="x", padx=10, pady=10)

        tk.Label(frm_dir, text="保存フォルダ:").pack(side="left")
        self.ent_dir = tk.Entry(frm_dir, textvariable=self.save_dir, width=50)
        self.ent_dir.pack(side="left", padx=5)
        tk.Button(frm_dir, text="参照", command=self.choose_dir).pack(side="left")

        # 説明
        txt = (
            "使い方:\n"
            " 1) ChatGPT画面で Ctrl + A → Ctrl + C で会話をコピー\n"
            " 2) 下のボタンを押すと .md ファイルとして保存されます\n\n"
            "※ ファイル名は chatlog_日時.md で自動作成されます。"
        )
        lbl = tk.Label(root, text=txt, justify="left")
        lbl.pack(fill="x", padx=10, pady=10)

        # ボタン
        btn = tk.Button(
            root,
            text="いまのクリップボード内容を保存する",
            command=self.save_from_clipboard,
            height=2,
            bg="#4caf50",
            fg="white",
        )
        btn.pack(fill="x", padx=10, pady=10)

        # ステータス
        self.status = tk.StringVar(value="待機中")
        lbl_status = tk.Label(root, textvariable=self.status, anchor="w", fg="#555")
        lbl_status.pack(fill="x", padx=10, pady=(0, 10))

    def choose_dir(self):
        folder = filedialog.askdirectory(initialdir=self.save_dir.get())
        if folder:
            self.save_dir.set(folder)

    def save_from_clipboard(self):
        try:
            text = self.root.clipboard_get()
        except tk.TclError:
            messagebox.showwarning(APP_TITLE, "クリップボードにテキストがありません。Ctrl + C でコピーしてから押してください。")
            return

        text = text.strip()
        if not text:
            messagebox.showwarning(APP_TITLE, "クリップボードが空です。")
            return

        folder = self.save_dir.get()
        os.makedirs(folder, exist_ok=True)

        now = datetime.datetime.now()
        ts = now.strftime("%Y%m%d_%H%M%S")
        filename = f"chatlog_{ts}.md"
        path = os.path.join(folder, filename)

        content_lines = []
        content_lines.append(f"# ChatGPT 会話ログ ({now.strftime('%Y-%m-%d %H:%M:%S')})")
        content_lines.append("")
        content_lines.append("---")
        content_lines.append("")
        content_lines.append(text)
        content = "\n".join(content_lines)

        try:
            with open(path, "w", encoding="utf-8") as f:
                f.write(content)
        except Exception as e:
            messagebox.showerror(APP_TITLE, f"保存中にエラー:\n{e}")
            return

        self.status.set(f"保存しました:{path}")
        print(f"[ChatLogSaver] saved: {path}")

def main():
    root = tk.Tk()
    app = ChatLogSaverApp(root)
    root.mainloop()

if __name__ == "__main__":
    main()

▼ ④ EXEに変換する(Windowsアプリ化)

1. PyInstaller をインストール

pip install pyinstaller

2. EXE を作成

pyinstaller --onefile --noconsole chatlog_saver.py

成功すると
dist/chatlog_saver.exe
が生成されます。

これをデスクトップに置けばOK。


■ 実際の使い方(超カンタン)

  1. ChatGPT画面で
     Ctrl + A → Ctrl + C
  2. アプリの
     「いまのクリップボード内容を保存する」
  3. Documents/ChatLogs/
     chatlog_YYYYMMDD_HHMMSS.md が自動生成

Markdownなので読みやすく、管理もしやすいです。


■ まとめ:

ChatGPTの会話は「自動じゃなくても確実に残せる仕組み」が最強

ChatGPT は UI変更が多く、
ユーザースクリプト(Tampermonkey)も弾かれやすい仕様です。

だからこそ今回のように
「画面コピー → ローカル保存」
という古典的な方式が一番安定して長持ちします。

興味がある方はぜひ導入してみてください。

おすすめの記事