開源的 Chrome 擴充功能。在 ChatGPT / Claude / Gemini 的對話頁面擷取重要討論片段,自動寫進你自己 Google Drive 的指定資料夾:
- 一場對話一份 Google Doc:同一對話存幾次都累加在同一份文件,附時間戳
- 自動命名:
日期_主題_平台,例如20260813_品牌定位討論_ChatGPT - 文件底部自動附上原始討論的連結,隨時跳回當時的對話
- 多客戶:popup 切換客戶,寫入目標資料夾跟著切換
- 最小權限:只用
drive.filescope,只碰這個擴充自己建立的檔案,看不到你 Drive 裡的其他東西
- 圈選:在對話頁面選取重要段落 → 浮出「⚡ 存入脈絡」按鈕 → 按一下寫入。
- AI 標記:把下面這段 prompt 貼進 AI 的個人化設定,對 AI 說「記錄脈絡」時,
它會在回覆結尾輸出
[CONTEXT]區塊,頁面右下角跳出確認卡,按「寫入」即可。 - 整場對話:popup 按「📄 收錄整場對話」,把目前分頁的完整問答依序寫入同一份 Doc。
當我說「記錄脈絡」或這段討論產生重要結論時,
請在回覆的最後面輸出這個區塊(原樣輸出,不要解釋)。
請寫得具體:key_points 五到八條,寫出「為什麼」與推導過程,不要只寫結論標題;
quotes 摘錄我原話裡最關鍵的句子。
[CONTEXT]
{"summary":"一句話總結",
"background":"這段討論的來龍去脈、從哪裡開始的",
"key_points":["具體重點,含理由或推導","..."],
"quotes":["使用者的關鍵原話"],
"decision":"做了什麼決定",
"open_questions":["還沒解決的問題"],
"next_steps":["下一步要做什麼"]}
[/CONTEXT]
寫入時預設會一併收錄標記前的最近 6 則問答原文(popup 可調整或關閉)—— 摘要是索引,原文才是脈絡。
| 平台 | 貼在哪裡 |
|---|---|
| ChatGPT | 設定 → 個人化 → 自訂指令 |
| Claude | Settings → Profile 偏好欄位,或 Project 自訂指示 |
| Gemini | 設定 → Saved Info |
標記內容不是 JSON 也沒關係,會原樣收進 Doc。安裝完成時會自動打開設定導覽頁
(onboarding.html)帶你做這件事。
拿到 mesh-sync-local-v*.zip 之後,三分鐘就能裝好。
-
解壓縮,會看到一個
mesh-sync-extension資料夾。 把它放到你放得住的地方(例如「文件」)。⚠️ 安裝後不能刪除或搬走它,擴充是直接從這個資料夾執行的。 -
打開 Chrome,網址列輸入
chrome://extensions, 右上角把「開發人員模式」打開。 -
按左上角**「載入未封裝項目」**,選取那個資料夾 (選到裡面看得到
manifest.json的那一層),按「選取」。 -
裝好後會自動打開設定導覽頁,照著做兩件事:
- 點工具列的 Mesh Sync 圖示 → 「連接 Google」 → 用自己的 Google 帳號授權。你的內容只會寫進你自己的雲端硬碟。
- 把導覽頁上那段 prompt 複製,貼到 ChatGPT 自訂指令 (或 Claude 個人偏好、Gemini Saved Info)。
-
開一個 AI 對話,選取任一段文字,旁邊會浮出「⚡ 存入脈絡」, 按下去就寫進你的 Google Drive 了。
-
選了資料夾卻說「資訊清單檔案遺失」 選錯層了。要選到裡面有
manifest.json的那一層。 -
按了沒反應 回到對話分頁按
Cmd+R(Windows 是F5)重新整理。 擴充需要頁面重新載入才會生效。 -
想確認有沒有正常運作 點擴充圖示 → 按「檢查」,會顯示這個分頁偵測到幾則訊息。
-
Chrome 重開後跳出「停用開發人員模式擴充功能」 按「取消」就好,這是 Chrome 對未上架擴充的例行提醒。
-
「連接 Google」出現錯誤 多半是授權視窗被關掉或逾時,再按一次即可。
manifest 內含固定的 key(公鑰),所以每個人載入後的擴充 ID 都相同:
mgeigmfkagbfbgngheecjlcdiemajpdg,共用同一個 OAuth client 才會成立。
使用者按「連接 Google」時走的是標準 Google 登入,背後需要一個 OAuth client。 維護者設定一次即可:
- 到 Google Cloud Console 建立專案。
- 「API 和服務」→ 啟用 Google Drive API 與 Google Docs API。
- 「OAuth 同意畫面」:使用者類型選「外部」,填 App 名稱與聯絡信箱。
scope 只需要
.../auth/drive.file(非敏感 scope,發布正式版不需要 Google 審查, 也沒有測試使用者 100 人上限)。填完把發布狀態改成「正式版」。 - 「憑證」→ 建立憑證 → OAuth 用戶端 ID → 應用程式類型選「Chrome 擴充功能」,
項目 ID 填
mgeigmfkagbfbgngheecjlcdiemajpdg。 - 把拿到的 client ID 填進
extension/manifest.json的oauth2.client_id。
想完全自主? 你也可以不用維護者的 client:自己走一次上面五步 (client_id 換成你自己的即可),資料流從頭到尾都只經過你自己的 GCP 專案。 client_id 是公開資訊,Chrome 擴充的 OAuth client 沒有 secret,寫在開源 repo 是標準做法。
extension/
├── manifest.json # MV3,含固定 key(公鑰)與 oauth2 設定
├── popup.html # 多客戶切換、連線狀態、prompt 複製、寫入紀錄
├── onboarding.html # 安裝後自動打開的設定導覽
├── icons/
└── src/
├── background.js # OAuth、Drive 資料夾/Doc 管理、片段累加寫入
├── content.js # 圈選按鈕+ [CONTEXT]/[SYNC] 標記偵測
├── popup.js
├── onboarding.js
└── toast.css
key.pem(專案根目錄、不進 git):打包 .crx 時才需要的私鑰。載入未封裝不需要它。
在 popup 開啟「同步到 Focus4ai 知識庫」後,每次收錄除了寫進 Google Drive,
還會以 Markdown 寫進知識庫並當場切片建索引(走 PUT /api/doc,不需修改 Focus4ai)。
- 網址填站台根位址(線上站台是
https://app.focus4ai.com,本機自架是http://localhost:8000)。注意focus4ai.com是官網、沒有 API,填了會失敗。 - 資料夾預設
00_inbox/mesh-sync:屬於收件匣底下的子資料夾, 所以搬移、標籤、刪除的動線跟一般筆記完全共用,但跟手動匯入的資料分開放。 - local_only:預設會在 frontmatter 寫
privacy: local_only。 AI 對話常有客戶名與報價,知識庫端沒寫這個欄位的檔預設是可送外部模型的, 對這批內容太寬鬆。要改用預設值就把這個開關關掉。 - 站台有登入牆時,擴充會帶著你在同一個瀏覽器的登入 session;請先登入再同步。 被導到登入頁時會明確報錯,不會謊報成功。
完整隱私權政策:https://joanna8521.github.io/MeshSync/privacy.html(docs/privacy.html)
- 擷取動作全部由使用者手動確認(按「存入脈絡」或確認卡的「寫入」),不會自動上傳任何內容。
- 資料只寫進使用者自己的 Google Drive;本擴充沒有任何自己的伺服器。
drive.filescope 之下,擴充只能看到、修改它自己建立的資料夾與文件。
- 各平台的 DOM 結構改版可能讓「標記自動偵測」失效(selector 在
content.js的SELECTORS),圈選模式不受影響。 - Gemini 的對話網址需要該對話已在網址列出現(
gemini.google.com/app/<id>)。 - 換機器或重灌後,「一場對話一份 Doc」的對應表(存在
chrome.storage.local)不會跟著走, 同一場對話會開新的 Doc。
MIT