새로운 Mac으로 Codex 스레드 이동하기
요약
새로운 Mac으로 교체할 때 OpenAI Codex의 설정, 스레드, 플러그인 등 로컬 상태를 안전하게 마이그레이션하는 실용적인 방법을 소개합니다. ~/.codex 디렉토리 내의 주요 파일들을 백업하고 복구하는 터미널 명령어를 제공합니다.
핵심 포인트
- Codex의 핵심 데이터는 ~/.codex 디렉토리에 저장됨
- 세션, 스레드 인덱스, 설정, 플러그인 등을 포함한 백업 가능
- tar 명령어를 사용하여 로컬 상태를 압축 파일로 백업하는 방법 안내
- macOS 확장 속성 및 파일시스템 소켓 제외를 통한 오류 방지
OpenAI 파트너로서 저는 현재 M1 Air에서 M4 Air로 Mac을 교체하는 과정에 있습니다. 정말. 고통스럽네요. 특히 개인용처럼 모든 것을 한 Mac에서 다른 Mac으로 단순히 마이그레이션할 수 없는 기업 환경에서는 더욱 그렇습니다. 새로 설정을 해야 하거든요. 자, 시작해 봅시다...
저의, 음, 소중한 OpenAI Codex 데스크톱 설정을 한 Mac에서 다른 Mac으로 옮길 때 너무 번거로운 절차를 거치고 싶지 않았습니다. 그리고 제가 활성 상태인 Codex 앱 스레드(threads), 로컬 상태(local state), 설치된 스킬(skills), 플러그인(plugins), 그리고 작업 컨텍스트(working context)를 보존하고 싶었습니다. 이봐요, 제가 사용하는 LLM 선택을 비난하지 마세요. 저 Kiro도 사용하니까요!
정치적인 이야기를 제쳐두고, 요점만 말하자면: 필요한 대부분의 정보는 ~/.codex 아래에 있습니다.
이것은 다듬어진 마이그레이션 도구가 아닙니다. Mac 간에 Codex 로컬 상태를 이동할 때 저에게 효과적이었던 실용적인 백업 및 복구(backup-and-restore) 방식입니다.
(오, AI가 제대로 작동하지 않았지만, 무슨 뜻인지 이해하셨을 겁니다 🤣)
이동되는 항목
중요한 Codex 상태는 다음 위치에 있습니다:
~/.codex
유용한 부분은 다음과 같습니다:
~/.codex/sessions/- 대화 롤아웃(conversation rollout) 파일~/.codex/session_index.jsonl- 스레드 인덱스(thread index)~/.codex/state_*.sqlite- 스레드 메타데이터(metadata) 및 로컬 상태(local state)~/.codex/logs_*.sqlite- 로컬 런타임 로그(runtime logs)~/.codex/config.toml- Codex 설정(configuration)~/.codex/plugins/,~/.codex/skills/,~/.codex/cache/- 설치된 플러그인(plugins), 스킬(skills), 캐시된 에셋(cached assets)~/.codex/auth.json- 인증(authentication) 데이터
백업에는 인증 토큰(auth tokens)과 로컬 대화 기록이 포함될 수 있으므로 민감한 정보로 취급하십시오.
기존 Mac 백업하기
먼저 Codex를 종료한 다음, 은퇴할 예정인 기존 Mac의 터미널(Terminal)에서 다음을 실행하십시오:
$ COPYFILE_DISABLE=1 tar --no-xattrs \ --exclude='.codex/vendor_imports/skills/.git/fsmonitor--daemon.ipc' \ -czf ~/Desktop/codex-backup.tgz \ -C ~ .codex
만약 사용 중인 tar 버전이 --no-xattrs를 지원하지 않는다면, 다음을 사용하십시오:
$ COPYFILE_DISABLE=1 tar \ --exclude='.codex/vendor_imports/skills/.git/fsmonitor--daemon.ipc' \ -czf ~/Desktop/codex-backup.tgz \ -C ~ .codex
제외(exclude) 설정이 중요한 이유는 git이 다음과 같은 위치에 파일시스템 소켓 (filesystem socket)을 남겨둘 수 있기 때문입니다:
$ ~/.codex/vendor_imports/skills/.git/fsmonitor--daemon.ipc
tar는 소켓을 아카이브할 수 없으며, 새 기기에는 해당 파일이 필요하지 않습니다.
COPYFILE_DISABLE=1 및 --no-xattrs 플래그는 macOS 확장 속성 (extended attribute) 노이즈를 방지합니다. 이러한 속성들은 Codex 스레드 콘텐츠를 복구하는 데 중요하지 않습니다.
새로운 Mac에서 복구하기
codex-backup.tgz 파일을 새로운 Mac의 데스크탑(Desktop)으로 이동합니다.
새로운 Mac에서 Codex를 종료한 다음, 다음 명령어를 실행합니다:
$ cd ~
$ mv ~/.codex ~/.codex.backup.$(date +%Y%m%d-%H%M%S) 2>/dev/null
$ COPYFILE_DISABLE=1 tar -xzf ~/Desktop/codex-backup.tgz -C ~
그 다음 Codex를 다시 엽니다.
로컬 메타데이터 (metadata) 및 세션 파일 (session files)을 포함하여 스레드가 다시 나타나야 합니다.
워크스페이스 (Workspace)를 잊지 마세요
Codex 스레드 히스토리와 프로젝트 파일은 별개입니다.
~/.codex를 이동하면 Codex 측의 상태는 복구되지만, 실제 프로젝트 폴더가 이동되지는 않습니다. 만약 스레드가 워크스페이스 경로를 가리키고 있다면, 해당 폴더가 새로운 Mac에도 존재하는지 확인해야 합니다.
예를 들어:
$ mkdir -p ~/Documents/"Client Pursuit"
만약 작업 내용이 OneDrive에 있다면, 모든 파일 참조가 정상적으로 작동하기를 기대하기 전에 OneDrive가 관련 폴더를 완전히 동기화하도록 하세요:
$ ~/Library/CloudStorage/OneDrive-Slalom/Documents/"Client Pursuit"
-- 이는 여러분의 수많은 (수많은ⁿ) 폴더 중 하나일 수 있습니다!
정상 작동 확인 (Sanity Check)
Codex를 다시 연 후:
- 사이드바에 스레드가 나타나는지 확인합니다.
- 스레드를 열고 최근 메시지가 있는지 확인합니다.
- 워크스페이스 경로가 존재하는지 확인합니다.
- 요청이 있을 경우 모든 클라우드 커넥터 (cloud connectors)를 다시 연결합니다. 일부 커넥터는 설치된 것으로 표시되지만 여전히 재인증 (re-authentication)이 필요할 수 있습니다. 이는 기기를 이동할 때 발생하는 정상적인 현상입니다.
정리 (Cleanup)
전송이 성공적으로 완료되었음을 확인한 후, 두 기기 모두에서 아카이브를 삭제합니다:
$ rm ~/Desktop/codex-backup.tgz
아카이브에는 로컬 Codex 상태가 포함되어 있으며 자격 증명 (credentials)이 포함될 수 있으므로, 그대로 방치하지 마세요.
실무 요약 (The Practical Summary)
~/.codex를 백업하고, Git fsmonitor 소켓을 제외한 뒤, 새 기기에 복원하세요. 그런 다음 참조된 프로젝트 폴더들이 존재하는지 확인하면 됩니다.
이것만으로도 활성 Codex 스레드와 로컬 컨텍스트 (local context)를 Mac 간에 옮기기에 충분합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기