Wangnov/codex-threadripper

Keep Codex thread history aligned to one provider bucket.

codex‑threadripper – 모델 프로바이더를 전환해도 모든 Codex 채팅 스레드를 시각화

기능 설명

  • Codex(OpenAI 스타일 채팅용 데스크톱 앱)는 각 대화("스레드")를 SQLite DB와 롤아웃 JSONL 로그에 저장합니다. 각 스레드의 model_provider 필드는 해당 스레드가 어떤 프로바이더의 UI 목록에 표시되는지를 결정합니다.
  • Codex에서 model_provider를 변경하면, 이전 프로바이더에서 생성된 스레드는 UI에서 사라지지만, 데이터는 여전히 디스크에 남아 있습니다.
  • codex‑threadripper는 이러한 model_provider 항목을 재작성하여 모든 스레드를 현재 활성화된 프로바이더와 연결시켜, 전체 기록을 다시 시각화합니다.

누가 사용해야 할까

  • 단일 Codex 설치를 사용하면서 자주 다른 모델 프로바이더(예: OpenAI, Anthropic, Azure 등)를 전환하는 사용자.
  • 대화 기록이 자동으로 이동되기를 원하고, 프로바이더 전환 후 기록이 숨겨지는 것을 피하고 싶은 사용자.
  • 수동으로 데이터베이스를 편집하는 대신 자동화된 백그라운드 서비스를 선호하는 사용자.

작동 방식

  1. SQLite 동기화state_5.sqlite(Codex 상태 DB)의 model_provider 열을 업데이트합니다. 변경 전에 타임스탬프가 붙은 백업이 backups/ 폴더에 생성됩니다.
  2. 롤아웃 JSONL 패치 – 변경이 줄 길이를 늘리지 않는 경우에만 각 롤아웃 로그 파일의 첫 번째 줄을 대상 프로바이더와 일치하도록 수정합니다(코드가 여전히 쓰고 있는 파일을 손상시키지 않기 위해). 원래 파일 타임스탬프를 복원하여 UI의 "최근 스레드" 순서에 영향을 주지 않습니다.
  3. 워치 모드config.toml을 지속적으로 감시하고, 새로 생성된 스레드를 주기적으로 재정렬합니다.
  4. 백그라운드 서비스 – macOS에서는 launchd, Linux에서는 systemd --user, Windows에서는 시작 폴더에 숨겨진 VBS 런처를 사용하여 로그인 시 자동으로 워치 루프를 실행하는 플랫폼별 데몬을 설치합니다.

주요 명령어

명령어 목적
status 현재 활성화된 프로바이더, SQLite DB에서의 각 프로바이더별 스레드 수, 백그라운드 서비스 실행 여부를 표시합니다.
sync 한 번만 실행되는 재정렬(백업 + SQLite + JSONL 패치)을 수행합니다.
bucket switch <provider> 모든 기록을 지정된 프로바이더 버킷으로 강제로 이동합니다.
bucket prepare 롤아웃 파일이 인플레이스 패치에 충분한 여유 공간을 갖는지 확인합니다. 줄 길이가 늘어나야 하는 파일은 건너뜁니다.
watch 포어그라운드에서 실행되며, config.toml을(기본 500ms마다) 폴링하고 새로 나타나는 스레드를 재정렬합니다.
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에서 직접 가져왔으며, 추가 기능은 추측되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트