遷移代理對話
使用 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 會從最新的摘要與後續訊息繼續;較早的訊息仍保留在其對話歷史中。摘要可描述過去的動作;原始工具執行記錄則被排除。