Community寫作與編輯github.com

Amiyadesi/agent-session-bridge

在 Codex、Pi、DeepSeek Harness、OpenCode、Qwen Code、Claude Code、WorkBuddy、Antigravity CLI (agy) 與桌面 IDE 之間複製或剪下對話上下文。支援逐筆轉錄稿、精確對話 ID 或專案批量處理,包含原生資料庫索引;排除憑證與代理設定。

agent-session-bridge 是什麼?

`agent-session-bridge` (asb) 是一款 CLI 工具,可在多種 AI 代理平台之間遷移對話上下文,包括 Codex、Pi、DeepSeek Harness、OpenCode、Qwen Code、Claude Code、WorkBuddy、Antigravity CLI 與其桌面 IDE。它完全在本機運作,不呼叫任何模型或上傳資料,僅處理使用者/助理訊息、壓縮摘要與部分圖片,自動過濾工具呼叫、系統記錄等。支援按檔案、精確對話 ID、專案目錄或匯出資料夾選擇來源,並能將目標記錄註冊至對應的原生資料庫以便後續恢復。執行時需先以 `--apply` 確認複製或剪下,並對每個批次檢查結果與錯誤,確保來源清理只刪除選定的對話 ID 與相符轉錄稿。

相容平台✓Claude Code✓Codex CLI~Cursor✓Antigravity✓Gemini CLI✓OpenCode
npx skills add https://github.com/Amiyadesi/agent-session-bridge/tree/HEAD/skills/migrate-agent-session

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

遷移代理對話

使用 asb / agent-session-bridge;JSON 標準輸出為機器介面。 CLI 只使用本機檔案,不進行任何模型呼叫,也絕不上傳轉錄稿。 複製與移動僅包含對話上下文:使用者/助理訊息、壓縮摘要及支援的使用者圖片。工具呼叫/結果、思考過程及系統/執行時期記錄會自動過濾。過濾項目會以 filtered:* 顯示在清單中,無需額外標記。

若目標平台支援,保留來源標題。原生 Codex 標題來自對應的資料庫列(name 優先,次為 title);獨立匯出的檔案需在記錄中包含標題。來源模型/供應商與思考設定皆不保留。

使用已安裝的命令或此專案 checkout 中的 .venv/Scripts/asb.exe (Windows) / .venv/bin/asb (POSIX)。 若尚未安裝,此專案需要 Python 3.14+;建立專案 venv 並執行 python -m pip install -e .。

選擇對話

  • 單一檔案:asb inspect <檔案> 然後 asb convert <檔案> --to pi。
  • 精確 ID:asb convert --from codex --session <完整-id> --to pi。
  • 專案:asb list --from codex --project <絕對路徑>,然後 asb convert --from codex --to pi --project <絕對路徑>。
  • 匯出資料夾:asb convert <目錄> --from codex --to pi。
  • 專案篩選條件比對記錄的 cwd 及其子目錄(以路徑邊界為準)。不會搜尋訊息內容。
  • --source-root 可覆蓋來源儲存位置;--target-home 是指目標代理的家目錄(非其 sessions 子目錄)。
  • 僅在使用者打算重新定位工作目錄時才使用 --cwd。
  • Pi 需要一個目標模型,因為它會從歷史助理訊息還原模型選擇。CLI 會從目標 home 的 settings.json 讀取預設值,再從目標 cwd 的 .pi/settings.json 讀取;--provider / --model 可覆蓋這些設定。若無完整的目標預設值,請提供預期的目標配對。絕不可改用來源模型。不會修改任何設定檔。

支援的名稱:codex、pi、dsh、opencode、qwen、claude、workbuddy、antigravity、antigravity-desktop。 使用 asb formats / asb convert --help 查看可用選項。

執行

先不加 --apply 執行。檢視 count、errors、source、target、dropped_events 與 warnings。 報告選取的集合與實質損失,但不輸出對話主體。 在進行破壞性移動前,先解決非預期的匹配或不支援的內容。

  • 使用者要求複製,或未指定保留方式:加上 --apply;保留來源。
  • 使用者明確要求在遷移後移動/剪下/刪除那些來源對話:加上 --move --apply。
  • 保留已授予的授權。僅在刪除意圖或選取集合不明確時才詢問。
  • 在移動前停止進行中的來源對話。CLI 會拒絕在轉換期間被修改的來源,但無法阻止其他客戶端寫入。
  • 切勿以手動 rm、del 或遞迴刪除取代 CLI 的驗證式移動。
  • 檢查批次中的每一個結果/錯誤。非零 exit 可能代表部分成功;不要盲目重複已成功的項目,它們會獲得新的 ID。

CLI 會在刪除前驗證寫入的位元組、解析目標並註冊必要的原生資料庫列。來源清理只會針對選定的對話 ID、相符的轉錄稿及已知的索引。此檢查不會呼叫模型。 使用傳回的 resume argv 作為命令建議;原生 ID 查詢假設使用一般目標家目錄。 對於自訂目標家目錄,請以對應的家目錄環境覆蓋啟動客戶端。

格式限制

  • 原生 OpenCode 選擇:asb convert --from opencode --session <id> --to pi --move --apply。預設選擇會讀取其資料庫;--source-root 可指向包含 opencode.db 的目錄。手動提供的 JSON 匯出是獨立檔案;剪下該匯出不會刪除其原始資料庫對話。
  • Codex / WorkBuddy / OpenCode / Antigravity 原生目標家目錄必須已包含客戶端初始化的資料庫。未知的架構或必要欄位會清楚失敗。使用 --output-dir 產生可攜式檔案,不進行資料庫註冊。
  • 對於 Git 專案,先在預期的工作目錄啟動一次 OpenCode,以初始化其專案索引,再進行匯入。
  • WorkBuddy 處理本機會話及其資料庫/快取。多個目標帳戶需要 --workbuddy-user-id。從 WorkBuddy 的對話清單恢復。點陣圖圖片會被省略並計數。
  • DSH 讀取 v4 JSONL/zstd。較舊的記錄必須先由 DSH 升級。多個世代會阻擋移動。
  • DSH 圖片目前會被省略並計數。摘要會變成標記的使用者上下文。
  • Antigravity 是指 agy CLI 的 SQLite 格式,而非直接桌面 .pb 或加密儲存。其家目錄為 ~/.gemini/antigravity-cli;使用 --source-root / --target-home 覆蓋。在進行原生寫入或剪下前,先關閉使用該家目錄的客戶端。活動中的 presence 鎖定與 WAL/SHM/journal 檔案會阻擋剪下。
  • Antigravity 使用每個對話一個資料庫、共用的 conversation_summaries.db、jetbox_summaries_proto.pb、annotations/<id>.pbtxt 以及最後對話快取。CLI 會一起寫入和移除選定的記錄。可攜式的 .db 與 .manifest.json 檔案需放在一起,以保留標題/cwd 元資料。摘要會變成標記的使用者上下文,圖片會被省略並計數。
  • antigravity-desktop 支援 IDE 2.5.5 的 SQLite .db 對話,來源/目標家目錄為 ~/.gemini/antigravity-ide(舊版 SQLite 家目錄為 ~/.gemini/antigravity)。範例:asb convert --from codex --to antigravity-desktop --project <目錄> --apply。如同其他格式,選擇桌面 ID 或專案。桌面與 agy CLI 可使用各自不同的格式名稱進行雙向轉換。
  • 桌面的原生寫入/剪下會更新兩個已知的 state.vscdb 歷史索引、現有的 protobuf 快取、標題註解與選定的對話資料庫。會自動推斷標準設定檔路徑;對於自訂家目錄,請傳遞 --source-state-db 或 --target-state-db 以及對應的 globalStorage/state.vscdb。先關閉桌面客戶端;執行中的語言服務或 SQLite sidecar 會阻擋修改。相同 ID 的舊版 .pb 會阻擋剪下。共享的狀態資料庫與鄰近對話不受影響。
  • 桌面沒有傳回的 resume 命令:請透過其原生歷史 UI 開啟。官方語言服務回讀會透過 ID 驗證;GUI 歷史發現與模型續寫未經驗證。不要僅憑檔案解析或資料庫註冊就聲稱完成了 GUI 檢查。
  • 舊版桌面 .pb 或加密歷史必須先由官方客戶端升級/匯入為 SQLite。或者透過 agy /resume → Antigravity 複製一份,再轉換該 CLI 拷貝;移動拷貝不會刪除桌面原始檔。
  • 剪下會移除選定的轉錄稿/橋接清單、原生對話資料庫列以及已知的歷史/列表項目。共用的專案、附件、備份、認證與執行時期設定會保留。來源清理期間的失敗可能留下有效的目標與保留的來源:請檢查錯誤後再重試。
  • 可攜式 --output / --output-dir 檔案需要原生安裝/匯入才能進行 ID 式恢復。Pi 可透過 pi --session <檔案> 開啟任何產生的 Pi 檔案。
  • 壓縮邊界仍然有效:Pi 會從最新的摘要與後續訊息繼續;較早的訊息仍保留在其對話歷史中。摘要可描述過去的動作;原始工具執行記錄則被排除。

相關技能