Wangnov/codex-threadripper
Keep Codex thread history aligned to one provider bucket.
codex‑threadripper – 無論切換到哪個模型提供者,都能保持所有 Codex 聊天線程可見
功能說明
- Codex(OpenAI 風格聊天的桌面應用)將每個對話(「線程」)儲存在 SQLite 資料庫和 rollout JSONL 日誌中。每個線程的
model_provider欄位決定該線程在哪個提供者的 UI 清單中顯示。 - 當你在 Codex 中切換
model_provider時,先前提供者建立的線程會從 UI 中消失,儘管資料仍保留在磁碟上。 codex‑threadripper會重寫這些model_provider項目,使 所有 線程都與目前活躍的提供者關聯,從而再次使完整歷史記錄可見。
誰應該使用它
- 使用單一 Codex 安裝但頻繁在不同模型提供者(如 OpenAI、Anthropic、Azure 等)之間切換的人。
- 希望對話歷史能自動跟隨自己,而不是在每次切換提供者後被隱藏的人。
- 偏好自動化後台服務,而非手動編輯資料庫的人。
工作原理
- SQLite 同步 – 更新
state_5.sqlite(Codex 狀態資料庫)中的model_provider欄位。在任何變更前,會將帶時間戳的備份寫入backups/檔案夾。 - Rollout JSONL 补丁 – 僅當變更不會導致行擴展時,才修改每個 rollout 日誌檔案的第一行以匹配目標提供者(避免破壞 Codex 可能仍在寫入的檔案)。原始檔案時間戳會被恢復,以確保 UI 的「最近線程」順序不受影響。
- 監視模式 – 持續監視
config.toml中的提供者變更,並定期重新整合新建立的線程。 - 後台服務 – 安裝平台特定的守護程序(macOS 上為
launchd,Linux 上為systemd --user,Windows 上為隱藏的 VBS 啟動器),在登入時自動運行監視循環。
主要命令
| 命令 | 用途 |
|---|---|
status |
顯示目前活躍的提供者、SQLite 資料庫中各提供者之線程數量,以及後台服務是否正在執行。 |
sync |
執行一次性重新整合(備份 + SQLite + JSONL 补丁)。 |
bucket switch <provider> |
強制將所有歷史記錄移入指定提供者之桶中。 |
bucket prepare |
檢查 rollout 檔案是否具有足夠的填補空間以進行就地補丁;跳過那些需要行增長的檔案。 |
watch |
前台執行,每 500 毫秒(預設)輪詢 config.toml,並重新整合新出現的線程。 |
install-service / uninstall-service |
安裝或移除平台特定的後台守護程序。 |
print-service-config |
不安裝的情況下輸出生成的 launchd plist、systemd 單元或 VBS 啟動器。 |
仍支援舊別名(print-plist、install-launchd、uninstall-launchd)。
安裝選項
- Homebrew:
brew tap wangnov/tap && brew install codex-threadripper - npm(全域):
npm i -g codex-threadripper - Cargo:
cargo install codex-threadripper或cargo binstall codex-threadripper - 直接二進位檔: 從 GitHub 發布頁面下載適合的存檔/安裝程式
支援平台
- macOS(Apple Silicon 與 Intel) – 透過
launchd提供服務 - Linux(x64 與 ARM64) – 透過
systemd --user提供服務,回退至分離程序 - Windows(x64) – 透過啟動資料夾中的隱藏 VBS 啟動器提供服務
從原始碼執行
cargo run -- --help # 顯示完整的 CLI 幫助
為何重要
沒有 codex‑threadripper,在 Codex 中切換提供者會導致對話歷史分散到隱藏的「桶」中,難以恢復工作或回顧過往聊天。此工具透過自動備份實現最小風險,可靜默後台執行,確保你再也不會遺失任何線程。
所有細節均直接取自倉儲的 README;未推斷任何額外功能。
相關
- 專案
- 專案
- 專案
- 專案
- 專案