Skip to content

haotool/ChatGPT-Memory-Toolkit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatGPT Memory Toolkit v2.0.0

專業的 ChatGPT 記憶管理 Chrome 擴充套件 - React + TypeScript 重構版

Version Chrome License


✨ 主要功能

🎯 核心功能

  • 智能檢測: 自動檢測 ChatGPT 記憶容量狀態
  • 一鍵匯出: 支援 Markdown 和純文字格式匯出
  • 歷史記錄: 完整的匯出歷史管理
  • 自動提醒: 記憶已滿時的視覺增強提示
  • 設定管理: 可自訂的擴充套件行為

🚀 v2.0 新特性

  • React 18 UI: 現代化的使用者介面
  • TypeScript: 完整的類型安全
  • 智能去重: 基於內容 hash 的去重算法
  • 快速建置: esbuild 驅動,建置時間 < 100ms
  • Manifest V3: 符合最新 Chrome Extension 標準

📦 安裝

方法 1: 從原始碼安裝(開發者)

  1. Clone 專案

    git clone https://github.com/s123104/ChatGPT-Memory-Toolkit.git
    cd ChatGPT-Memory-Toolkit
  2. 安裝依賴

    pnpm install
    #
    npm install
  3. 建置擴充套件

    node build.mjs
  4. 載入到 Chrome

    • 開啟 chrome://extensions/
    • 啟用「開發者模式」
    • 點擊「載入未封裝項目」
    • 選擇 dist/ 資料夾

方法 2: 從 Chrome Web Store 安裝(即將推出)

目前版本尚未上架,請使用方法 1


🎨 使用說明

1. 檢測記憶狀態

擴充套件會自動在 ChatGPT 頁面檢測記憶狀態:

  • 🟢 正常: 記憶容量充足
  • 🔴 已滿: 記憶容量已達上限,會顯示視覺提示

2. 匯出記憶

  1. 點擊擴充套件圖示開啟 Popup
  2. 點擊「📥 匯出記憶」按鈕
  3. 擴充套件會自動:
    • 導航到 ChatGPT Personalization 設定
    • 讀取所有記憶內容
    • 儲存到歷史記錄

3. 管理歷史記錄

  • 點擊「📋 歷史記錄」查看所有匯出記錄
  • 每筆記錄顯示:日期時間、使用量、記憶數量
  • 可刪除單筆記錄或清空全部

4. 自訂設定

點擊「⚙️ 設定」可調整:

  • ✅ 記憶已滿時自動開啟視窗
  • ✅ 自動清理舊記錄
  • 📊 保留歷史記錄數量上限(10-200 筆)
  • 🔧 開發者模式(顯示詳細日誌)

🏗️ 技術架構

技術棧

前端框架: React 19 + TypeScript
建置工具: esbuild
樣式: CSS3 (模組化)
Chrome API: Manifest V3
儲存: chrome.storage.local

專案結構

ChatGPT-Memory-Toolkit/
├── build.mjs                      # 自定義建置腳本
├── dist/                          # 建置輸出
│   ├── background.js              # Service Worker
│   ├── content/
│   │   └── chatgpt-memory.js      # Content Script
│   ├── popup/
│   │   ├── index.html             # Popup HTML
│   │   ├── index.js               # React Popup (bundled)
│   │   └── index.css              # Popup 樣式
│   └── manifest.json              # Extension Manifest
├── pages/
│   ├── content/src/
│   │   └── chatgpt-memory.ts      # Content Script 原始碼
│   └── popup/src/
│       ├── Popup-simple.tsx       # React Popup 組件
│       ├── Popup.css              # Popup 樣式
│       └── index.tsx              # React Entry Point
├── packages/
│   └── storage/
│       └── lib/impl/
│           └── memory-storage.ts  # Storage Manager
├── chrome-extension/
│   ├── manifest.ts                # Manifest 配置
│   └── src/background/
│       └── index.ts               # Background Script
└── dev/                           # 開發文檔
    ├── BUILD-SUCCESS.md
    ├── CHROME-TESTING-GUIDE.md
    ├── MIGRATION-COMPLETE.md
    └── ...

核心模組

1. Storage Manager (packages/storage)

  • 記憶歷史管理
  • 設定持久化
  • 智能去重算法
  • 儲存空間監控

2. Content Script (pages/content)

  • DOM 操作與檢測
  • 自動導航
  • 視覺增強
  • Message Passing

3. Popup UI (pages/popup)

  • React 組件
  • 狀態管理
  • 使用者互動
  • 資料展示

4. Background Service (chrome-extension/src/background)

  • 事件協調
  • 跨 Tab 通訊
  • 擴充套件生命週期管理

🔧 開發

開發環境需求

  • Node.js 18+
  • pnpm 或 npm
  • Chrome 88+

開發指令

# 安裝依賴
pnpm install

# 建置(開發模式)
node build.mjs

# 建置(生產模式 - 需修改 build.mjs 啟用 minify)
node build.mjs --production

# 快速重建
node build.mjs && echo "✅ Rebuilt"

開發工作流

  1. 修改原始碼
  2. 執行 node build.mjs
  3. chrome://extensions/ 點擊重新載入
  4. 測試功能
  5. 重複 1-4

除錯技巧

// Popup Console (右鍵 Popup → 檢查)
chrome.storage.local.get(null, console.log)

// Content Script Console (頁面 F12)
console.log('[Memory Manager] Debug info')

// Background Console (chrome://extensions/ → 檢查檢視)
chrome.runtime.onMessage.addListener((msg) => {
  console.log('[Background]', msg);
});

📊 性能指標

指標 數值
建置時間 < 100ms
Content Script 大小 17.5KB
Background Script 大小 35KB
Popup Bundle 大小 1.1MB (含 React)
Popup 開啟時間 < 200ms
記憶體使用 ~ 15MB

🧪 測試

執行測試

詳細測試指南: dev/CHROME-TESTING-GUIDE.md

快速測試清單:

  • 擴充套件載入無錯誤
  • Popup 可正常開啟
  • 設定可儲存和讀取
  • Content script 正常載入
  • 匯出功能可執行
  • 歷史記錄管理正常

測試覆蓋率

  • ✅ Popup UI: 完整
  • ✅ Content Script: 完整
  • ✅ Storage Manager: 完整
  • ⏳ 整合測試: 需實際環境驗證

📝 變更日誌

v2.0.0 (2025-10-27)

重大更新:

  • 🎨 完全重寫為 React + TypeScript
  • ⚡ 使用 esbuild 大幅提升建置速度
  • 🧹 移除不必要的模板代碼
  • 📦 簡化專案結構

新功能:

  • ✨ 智能去重算法
  • ✨ 完整的 TypeScript 型別支援
  • ✨ 現代化的 React UI

修復:

  • 🐛 修復 manifest default_locale 錯誤
  • 🐛 優化 Storage API 使用
  • 🐛 改進錯誤處理

文檔:

  • 📚 5000+ 行專業開發文檔
  • 📚 完整的測試指南
  • 📚 詳細的架構說明

v1.6.0 (之前版本)

詳見 CHANGELOG.md


🤝 貢獻

歡迎提交 Issue 和 Pull Request!

貢獻指南

  1. Fork 本專案
  2. 建立功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交變更 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 開啟 Pull Request

開發原則

本專案遵循 Linus Torvalds 實用主義:

  • ✅ 簡單勝於複雜
  • ✅ 實用勝於完美
  • ✅ 刪除不需要的代碼
  • ✅ 好品味的代碼設計

詳見: LINUS_GUIDE.md


📄 授權

MIT License - 詳見 LICENSE


👥 作者

ChatGPT Memory Toolkit Team


🙏 致謝


📞 支援

遇到問題?

  1. 查看 Issues
  2. 閱讀 dev/CHROME-TESTING-GUIDE.md
  3. 提交新 Issue

🗺️ Roadmap

v2.1.0 (計劃中)

  • Chrome Web Store 上架
  • 支援匯出為 JSON 格式
  • 記憶搜尋功能
  • 批次操作

v2.2.0 (計劃中)

  • 多語言支援 (i18n)
  • 自動備份到雲端
  • 記憶分類功能
  • 統計圖表

⭐ Star History

如果這個專案對你有幫助,請給一個 Star ⭐


Made with ❤️ by ChatGPT Memory Toolkit Team

Report Bug · Request Feature

About

Chrome Extension Boilerplate with React + Vite + Typescript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 72.0%
  • CSS 23.1%
  • JavaScript 3.1%
  • Shell 1.2%
  • Other 0.6%