
「会話ログ保存くん」の作り方・使い方【Windows対応】
ChatGPTで大事な会話が増えてくると、
「あとから見返したいのに履歴が消えた…」
「ログが消えて寂しい…」
という経験をされた方も多いと思います。
そこで今回は、
ChatGPTの画面の内容を “ワンクリックで .md ファイルに保存できる”
Windowsアプリ『会話ログ保存くん(じーさん版)』の作り方と使い方をまとめました。
技術の知識が無くてもできます。
実際に筆者が使っているツールの構成そのままです。
■ このツールでできること
- ChatGPT画面を Ctrl+A → Ctrl+C でコピー
- ボタンひとつで Markdown(.md) として保存
- 保存先は自動的に日付入りで生成
- 後から検索しやすく、整理しやすい
- ChatGPT の仕様変更に影響されにくい
- 完全ローカルなので安全
■ 使うもの
- Windows パソコン
- Python(無料)
- PyInstaller(無料)
- コピペした Python ファイル(後述)
■ 導入手順
▼ ① Pythonをインストールする
公式サイトからPythonを入れます。
※ インストール時に
「Add Python to PATH」 にチェックを必ず入れてください。
▼ ② 「chatlog_saver.py」を作成する
- デスクトップを右クリック → 新規作成 → テキスト文書
- ファイル名を
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。
■ 実際の使い方(超カンタン)
- ChatGPT画面で
Ctrl + A → Ctrl + C - アプリの
「いまのクリップボード内容を保存する」 Documents/ChatLogs/に
chatlog_YYYYMMDD_HHMMSS.mdが自動生成
Markdownなので読みやすく、管理もしやすいです。
■ まとめ:
ChatGPTの会話は「自動じゃなくても確実に残せる仕組み」が最強
ChatGPT は UI変更が多く、
ユーザースクリプト(Tampermonkey)も弾かれやすい仕様です。
だからこそ今回のように
「画面コピー → ローカル保存」
という古典的な方式が一番安定して長持ちします。
興味がある方はぜひ導入してみてください。


