Skip to content

charliehotel/move-codex-thread

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

move-codex-thread

macOS용 Codex 데스크톱 앱에서 임시 채팅을 기존 사이드바 프로젝트로 안전하게 옮기는 Codex 스킬입니다.

이런 상황에 사용합니다

Before After
Before

➡️

After

Codex에서는 이미 진행 중인 채팅을 프로젝트 폴더로 이동하는 기능을 제공하지 않습니다. 긴 작업을 임시 채팅에서 시작한 뒤 프로젝트를 생성하면, 기존 컨텍스트를 유지한 채 프로젝트 아래로 옮길 방법이 없습니다.

move-codex-thread는 현재 대화를 유지하면서 임시 채팅을 기존 사이드바 프로젝트로 안전하게 옮기기 위해 만들어졌습니다.

주요 특성

  • 현재 채팅의 CODEX_THREAD_ID 또는 복사한 세션 UUID를 지원합니다.
  • 사이드바 프로젝트 표시명과 등록된 절대경로를 지원합니다.
  • Codex 실행 중에는 상태 파일을 수정하지 않고, 앱이 완전히 종료된 뒤 단발성 LaunchAgent가 작업합니다.
  • 적용 전 백업, SHA-256 검증, 원자적 쓰기, 저널, 실패 시 롤백을 사용합니다.
  • Codex의 로컬 스키마가 예상과 다르면 추측해서 수정하지 않고 중단합니다.

동작 원리

flowchart TD
    request["사용자 이동 요청"] --> inspect["읽기 전용 dry-run"]
    inspect --> confirm{"사용자 확인"}
    confirm -->|진행| register["단발성 LaunchAgent 등록"]
    confirm -->|취소| stop["변경 없이 종료"]
    register --> quit["Codex 완전 종료"]
    quit --> backup["상태 파일 백업 및 SHA-256 검증"]
    backup --> migrate["세션과 프로젝트 연결 정보 이동"]
    migrate --> verify{"결과 검증"}
    verify -->|성공| reopen["Codex 재실행"]
    verify -->|실패| rollback["두 원본 파일 롤백"]
Loading

요구 사항

  • macOS
  • /Applications/Codex.app에 설치된 Codex 데스크톱 앱
  • PATH에서 python3로 찾을 수 있는 Python 3.9 이상
  • 이동 대상 폴더가 Codex 사이드바 프로젝트로 이미 등록되어 있어야 함

주의사항

  • OpenAI가 제공하는 공식 이동 API를 사용하는 도구가 아닙니다.
  • Codex의 비공식 로컬 상태 스키마에 의존합니다.
  • Codex 업데이트로 스키마가 달라지면 fail-closed 방식으로 중단될 수 있습니다.
  • 실제 변경을 승인하기 전에 항상 dry-run 결과를 확인하세요.

설치

git clone https://github.com/charliehotel/move-codex-thread.git \
  "${CODEX_HOME:-$HOME/.codex}/skills/move-codex-thread"

이미 저장소를 다른 위치에 받은 경우 다음 항목을 같은 이름의 스킬 폴더로 복사할 수 있습니다.

SKILL.md
agents/
scripts/

설치 후 새 Codex 채팅에서 스킬이 발견되는지 확인하세요.

사용

현재 채팅 세션 이동

현재 열려 있는 채팅을 옮길 때는 세션 ID를 따로 지정하지 않아도 됩니다.

$move-codex-thread 현재 세션을 (예)move-codex-thread 프로젝트로 옮겨줘

스킬은 먼저 읽기 전용 dry-run으로 현재 위치와 대상 프로젝트를 확인합니다. 내용을 확인하고 진행하면 단발성 LaunchAgent를 등록합니다.

Codex 앱에서 현재 세션 이동 스킬을 실행하는 예시

안내가 표시된 다음 Cmd+Q로 Codex를 완전히 종료하면 이동이 진행되고, 완료 후 Codex가 한 번 다시 열립니다.

다른 채팅 세션 이동

현재 채팅이 아닌 다른 세션도 UUID를 지정해 옮길 수 있습니다.

$move-codex-thread 019ee300-03fd-7363-9d8e-a9ab5f85816a 세션을 (예)move-codex-thread 프로젝트로 옮겨줘

옮길 채팅의 컨텍스트 메뉴에서 세션 ID 복사를 선택해 UUID를 얻습니다.

세션 ID 복사 메뉴

대상은 사이드바의 프로젝트 표시명 또는 등록된 절대경로로 지정합니다.

이동 결과

Codex가 다시 열리면 임시 채팅이 지정한 프로젝트 아래로 이동한 것을 확인할 수 있습니다.

채팅 세션이 프로젝트 폴더로 이동된 결과

개발 및 검증

프로덕션 코드는 Python 표준 라이브러리만 사용합니다. 테스트에는 pytest가 필요합니다.

uv run pytest -q

스킬 구조 검증:

python3 /path/to/skill-creator/scripts/quick_validate.py .

공개 범위와 보안

  • 요청 파일에는 세션 내용이 아니라 operation ID와 식별 정보만 기록합니다.
  • 성공한 백업과 receipt는 30일간 보존합니다.
  • 실패한 백업과 journal은 자동 삭제하지 않습니다.
  • 스크립트는 이 스킬이 만든 operation 디렉터리 외부를 정리하지 않습니다.
  • 문제 제보 시 실제 세션 UUID, 홈 경로, rollout 내용, .codex-global-state.json을 공개하지 마세요.

라이선스

MIT

About

Codex 채팅 스레드를 사이드바 프로젝트 폴더로 이동하는 스킬(macOS). Move Codex Chat Threads into Existing Projects (macOS Skill).

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors