본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 20. 10:41

새로운 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를 다시 연 후:

  1. 사이드바에 스레드가 나타나는지 확인합니다.
  2. 스레드를 열고 최근 메시지가 있는지 확인합니다.
  3. 워크스페이스 경로가 존재하는지 확인합니다.
  4. 요청이 있을 경우 모든 클라우드 커넥터 (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가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0