실제로 전송되는 내용
자동으로 전송되는 것은 없습니다. 내보내기 기능이 존재하지 않기 때문입니다. ChatGPT가 제공하는 것은 설정의 Personalization → Memory에서 확인할 수 있는 memory 요약본뿐이며, 공식 문서에는 이 요약본이 "ChatGPT가 대화를 바탕으로 기억하는 모든 내용을 포함하지는 않는다"고 명시되어 있습니다. 또한 유용한 진단 방법으로 "ChatGPT가 무언가를 기억하고 있는지 확인하고 싶다면 채팅으로 직접 물어보라"고 덧붙이고 있습니다.
그리고 저장되는 것은 여러분이 작성한 문장 자체가 아닙니다. ChatGPT의 memory는 "이전 대화의 컨텍스트를 지속적으로 업데이트하여 종합한 것"으로 설명됩니다. 이는 개인화에는 유용하지만, 정확한 정보를 유지하는 데는 손실이 발생하기 쉽습니다. 방향성은 맞지만 각 규칙 뒤에 숨겨진 구체적인 이유가 누락된 문단을 발견하게 될 것입니다. 즉, 마이그레이션 작업의 일부는 다시 작성하는 과정이 될 것입니다.
명시적인 지침은 비교적 쉽게 옮길 수 있습니다. Custom Instructions에 입력한 내용은 직접 작성한 텍스트이므로 깔끔하게 이동할 수 있습니다. OpenAI의 자체 가이드에서도 명시적인 정보에 대해서는 다음과 같이 안내합니다: "명시적인 정보나 지침은 Custom Instructions에 추가할 수 있습니다."
Zed 측에는 세 가지 수신 영역이 있으며, 시작하기 전에 이 부분을 파악해 두는 것이 좋습니다.
- Instructions(지침)는 상시 활성화되는 컨텍스트입니다. 개인 지침은
~/.config/zed/AGENTS.md(Windows의 경우%APPDATA%\Zed\AGENTS.md)에 저장되며, 여는 모든 프로젝트에 적용됩니다. 프로젝트 지침은 문서화된 목록 중 가장 먼저 일치하는 파일에서 가져옵니다:.rules,.cursorrules,.windsurfrules,.clinerules,.github/copilot-instructions.md,AGENT.md,AGENTS.md,CLAUDE.md,GEMINI.md. 문서에 따르면, "프로젝트 지침은 개인AGENTS.md와 충돌할 때 이를 덮어씁니다." - Skills(기술)는 필요할 때 로드되는 재사용 가능한 지침 패키지입니다. Skill은 "메타데이터와 지침이 포함된
SKILL.md파일이 들어 있는 폴더"이며, "에이전트는 설치된 모든 Skill의 카탈로그를 보고 필요에 따라 로드할 수 있거나" 슬래시 명령어로 직접 호출할 수 있습니다. 글로벌 Skill은~/.agents/skills/에, 프로젝트 로컬 Skill은.agents/skills/에 저장됩니다. Zed v1.4.0부터 Rules가 Skills 및 Instructions로 대체되었습니다. 기존에 Zed Rules를 사용 중이었다면, 기본값이 아닌 Rules는disable-model-invocation: true가 설정된 글로벌 Skills로 마이그레이션되었고, 기본 Rules는 글로벌AGENTS.md에 추가되었습니다. - MCP 서버는 설정의
context_servers아래에 구성되며, Settings → AI → MCP Servers에서 로컬 서버(command,args,env) 또는 원격 서버(url,headers)를 추가할 수 있습니다. 현재 Zed는 MCP의 Tools 및 Prompts를 지원합니다.
양쪽 모두에 존재하지 않는 것. Zed의 에이전트 패널은 여러 스레드를 실행하며, "각 스레드는 자체 에이전트, 컨텍스트 창 및 대화 기록을 가지고 독립적으로 작동합니다." 따라서 Zed는 ChatGPT가 여러 채팅에 걸쳐 사용자의 이미지를 누적하는 것처럼 스레드 간에 사용자의 정보를 누적하지 않습니다. Instructions, Skills, MCP가 이러한 연속성을 제공합니다. 이는 파일 형태로 가독성이 높고 버전 관리가 가능하다는 점에서 합리적인 절충안입니다. 즉, 기록해 두지 않은 것은 존재하지 않는다는 의미이기도 합니다.
수동 마이그레이션
1단계: Memory 추출 및 세 가지 방식으로 분류하기
Settings → Personalization → Memory를 열고 요약본을 읽어보세요. 그런 다음 채팅창에서 ChatGPT에게 여러분의 작업 방식, 기술 스택, 컨벤션에 대해 기억하고 있는 모든 내용을 목록 형태로 있는 그대로 작성해 달라고 요청하세요. 요약본은 불완전한 것으로 문서화되어 있으므로, 질문 방식을 다르게 하여 두 번 물어보는 것이 좋습니다. 출력된 결과를 Custom Instructions 텍스트 옆의 임시 파일에 붙여넣으세요.
이제 모든 줄을 정확히 세 가지 더미 중 하나로 분류합니다. 이것이 핵심 비결이며, Zed의 세 가지 영역에 매핑됩니다:
더미 A — 언제 어디서나 항상 적용되는 내용. "간결하게 답변할 것." "추론보다 명시적 타입을 선호할 것." "이미 의존성에 포함되어 있는지 확인하지 않고 라이브러리를 제안하지 말 것." 짧고, 개수가 적으며, 개인적인 내용들입니다. 이들은 개인 지침(personal instructions)이 됩니다.
더미 B — 이 프로젝트에서 항상 적용되는 내용. "API는 camelCase를 반환하고, DB는 snake_case를 사용함." "마이그레이션은 배포 전에 실행하며, 배포 후에는 절대 실행하지 않음." "legacy/ 디렉토리는 동결됨." 이들은 프로젝트 지침(project instructions)이 되며, 커밋하여 팀원들도 함께 사용할 수 있도록 합니다.
더미 C — 필요할 때 호출하는 절차. "PR 설명을 작성하는 방식." "새 엔드포인트를 추가하는 단계." "스키마 마이그레이션을 수행하는 방법." 이들은 사람들이 흔히 상시 활성화 파일에 잘못 밀어 넣는 내용들로, 바로 Skills가 존재하는 이유입니다. 필요할 때 로드되고, 이름으로 호출되며, 관련이 없을 때는 컨텍스트 비용이 전혀 들지 않습니다.
분류할 때 두 가지 규칙이 있습니다. 이유가 첨부된 내용(예: 과거에 무언가 고장 나서 생긴 제약 조건)은 종합 과정에서 누락되었을 수 있으므로 이유를 다시 작성해 넣으세요. 그리고 더미 크기에 대해 냉정해지셔야 합니다. ChatGPT가 기억하는 여러분에 대한 정보의 대부분은 다시 생성될 일회성 선호도일 뿐이며, 이를 무작정 복사해 오면 정말 중요한 내용이 희석될 뿐입니다.
2단계: Zed가 실제로 읽는 위치에 각 더미 저장하기
더미 A → `~/.config/zed/AGENTS.md`. 정말 짧게 유지하세요. 컴퓨터의 모든 프로젝트에 로드되므로, 모든 줄이 실제 요청과 컨텍스트 경쟁을 벌이게 됩니다. 텍스트가 한 화면을 넘어간다면 더미 C로 이동해야 합니다.
더미 B → 프로젝트의 지침 파일. 리포지토리에 이미 우선순위가 높은 파일명이 존재하지 않는 한, 리포지토리 루트의 AGENTS.md를 사용하세요. Zed는 목록에서 가장 먼저 일치하는 파일을 선택하므로, 리포지토리에 남아 있는 오래된 .cursorrules가 방금 작성한 AGENTS.md보다 우선 적용됩니다. 혼란을 방지하기 위해 사용하지 않는 파일이 남아 있는지 확인하세요. 작성한 내용은 커밋하고, 문서에 명시된 우선순위를 기억하세요. 프로젝트 지침은 개인 파일과 충돌할 때 이를 덮어씁니다.
더미 C → Skills. /create-skill을 실행하여 에이전트의 안내를 따르거나, 에이전트 패널에서 Skills Manager를 사용하세요. 각 Skill은 SKILL.md가 포함된 폴더입니다. 어디서나 사용하려면 ~/.agents/skills/에, 특정 프로젝트로 범위를 제한하려면 .agents/skills/에 넣으세요. 설명을 신중하게 작성하세요. 에이전트가 이 설명을 보고 Skill을 로드할지 여부를 결정하기 때문입니다. 사용자가 요청할 때만 활성화되도록 하려면 disable-model-invocation을 켜서 모델이 자동으로 선택하는 대신 사용자가 직접 호출하도록 설정하세요.
그 다음 MCP를 연결합니다. Settings → AI → MCP Servers → Add Server에서 로컬 또는 원격 서버를 추가하면 설정 파일의 context_servers 아래에 항목이 기록됩니다. 이 영역은 Zed를 단순한 "지침 파일이 있는 에디터"에서 실시간 저장소를 읽을 수 있는 도구로 전환해 주며, 이에 대해서는 다음 섹션에서 다룹니다.
설정하는 동안 문서에 나오는 한 가지 주의 사항이 있습니다. External Agents(외부 에이전트)나 Terminal Threads(터미널 스레드)를 사용하는 경우, 이들은 자체 네이티브 지침 파일을 직접 읽을 수 있으며, "Zed의 지침 로더가 해당 에이전트를 제어한다고 가정하지 마십시오." 터미널 스레드에서 실행되는 Claude Code CLI는 Zed가 전달해 주었기 때문이 아니라, 자체적으로 CLAUDE.md를 읽습니다.
더 나은 방법: 하나의 Memory 레이어, 두 어시스턴트 모두 지원
잠시 한 걸음 물러서서 방금 수행한 작업을 살펴보세요. 채팅창에서 종합된 내용을 직접 복사하고, 누락된 이유를 다시 작성한 다음, 그 결과를 Zed만 읽을 수 있는 세 개의 파일 위치로 나누었습니다. 파일 관리, 버전 관리, 명시적 범위 지정 등 분명 개선된 방식이지만, 다음번에 도구를 바꿀 때 이 작업을 또 반복하게 될 것입니다.
지속 가능한 방식은 규칙과 지식을 분리하는 것입니다. Instructions와 Skills는 Zed에게 무엇을 해야 할지 알려주는 방법입니다. 그 뒤에 있는 지식(결정 사항, 장애 이력, 계약서, 문서 등)은 글쓰기와 사고를 위해 여전히 사용 중인 ChatGPT를 포함하여 모든 어시스턴트가 읽을 수 있는 곳에 위치해야 합니다.
MemoryLake는 이를 위한 memory 레이어입니다. 문서, 제약 조건, 결정 사항을 하나의 저장소에 보관하고, Zed에서는 MCP를 통해, Claude 및 Codex에서는 직접, ChatGPT에서는 API를 통해 액세스할 수 있습니다. 지침 파일은 더 이상 모든 내용을 담을 필요가 없으므로 가볍게 유지됩니다.
1단계: API 키 생성하기
키를 생성하고 약 30초 만에 첫 번째 요청을 보낼 수 있습니다. 채팅창에 붙여넣는 대신 환경 변수나 보안 관리자(secret manager)에 보관하세요.

2단계: 첫 번째 memory 업로드하기
규칙 뒤에 숨겨진 문서, 이미지, 파일을 업로드하세요. 아키텍처 결정 사항과 날짜, 장애 보고서, API 규격서, 스타일 가이드, 스키마 등이 해당됩니다. 요약본 대신 원본 소스를 업로드하세요. 요약본이 잃어버린 내용을 복구하는 데 방금 한 시간을 보냈으니, 또 다른 요약본을 만들지 마세요.

3단계: AI 및 에이전트 연결하기
Claude, Codex, OpenClaw 및 기타 AI 에이전트가 MCP 또는 API를 통해 memory에 액세스할 수 있도록 하세요. Zed에서는 Settings → AI → MCP Servers 아래에 서버를 추가하여 context_servers에 등록하면, 모든 스레드가 동일한 저장소를 쿼리할 수 있습니다. ChatGPT에는 MCP 클라이언트가 없으므로, API를 통해 필요한 내용을 검색하여 프롬프트나 모델을 호출하는 워크플로우에 주입하세요.

실제 작업에서의 변화
첫 번째 차이점은 상시 활성화 파일이 작게 유지된다는 것입니다. 사람들이 결국 500줄짜리 지침 파일을 만들게 되는 이유는 세부 정보를 넣을 다른 곳이 없기 때문입니다. 검색 기능이 제공되면, 개인 지침에는 몇 가지 강력한 선호도만 담고, 프로젝트 지침에는 답변을 잘못되게 만들 수 있는 제약 조건만 담을 수 있습니다.
두 번째는 새로운 스레드를 시작하는 것이 더 이상 부담이 되지 않는다는 점입니다. Zed 스레드는 설계상 독립적(자체 컨텍스트 창, 자체 기록 보유)이므로, 연속성은 이전에 나눈 대화가 아니라 로드된 내용에서 나옵니다. 로드 비용이 저렴해지면 이는 매우 깔끔한 모델이 되며, 모든 것을 다시 설명해야 할 때 매번 스레드를 처음부터 시작하는 에이전트가 비효율적으로 느껴지는 것과 같은 이유입니다.
세 번째는 ChatGPT와 Zed가 서로 다른 내용을 알고 있는 상황이 사라진다는 점입니다. 현재는 계획을 세우는 어시스턴트와 빌드하는 에디터가 서로 다른 대화를 통해 개별적으로 학습합니다. 동일한 저장소를 읽음으로써 여러 도구에 걸쳐 하나의 memory를 공유하는 것이 복사 작업이 아닌 단순한 설정의 영역이 됩니다.
또한 이는 각 도구가 기본적으로 수행하는 기능과 조화를 이룹니다. ChatGPT memory는 계정별로 적용되고 항상 사람들이 기대하는 대로 작동하지는 않는다는 문서화된 한계 내에서 계속 개인화됩니다. Zed는 계속해서 지침과 Skills를 로드합니다. 어느 한쪽이 유일한 기록 보관소가 될 필요는 없습니다.
Zed로 memory를 이동하기 위한 모범 사례
주제가 아닌 비용 기준으로 분류하기
각 항목에 대해 던져야 할 질문은 "이것이 무엇에 관한 내용인가?"가 아니라 "이것이 매번 컨텍스트에 포함되어야 하는가?"입니다. 모든 답변을 바꾸는 소수의 항목은 상시 활성화(always-on)로, 절차는 Skills로, 롱테일 정보는 검색(retrieval)으로 분류하세요. 이를 잘못 판단하여 상시 활성화에 너무 많은 것을 넣는 것이 가장 흔하고 비용이 많이 드는 실수입니다.
Zed가 실제로 읽을 지침 파일 확인하기
Zed는 목록에서 가장 먼저 일치하는 파일을 사용하며, .rules, .cursorrules, .windsurfrules, .clinerules는 모두 AGENTS.md보다 우선순위가 높습니다. 이전 에디터에서 남겨진 파일이 알게 모르게 우선 적용될 수 있습니다. 작성하기 전에 확인하세요.
자신이 아닌 모델을 위해 Skill 설명 작성하기
에이전트는 설명을 바탕으로 카탈로그에서 Skill을 선택합니다. "마이그레이션 단계"는 좋지 않은 설명입니다. "마이그레이션 및 배포 순서를 포함하여 데이터베이스 컬럼을 안전하게 추가하거나 변경하는 단계"가 좋은 설명입니다. 직접 수동으로 선택하려면 disable-model-invocation을 설정하고 이름으로 호출하세요.
프로젝트 지침 및 프로젝트 Skill 커밋하기
AGENTS.md와 .agents/skills/는 모두 리포지토리에 저장되므로, 팀원들과 다른 컴퓨터에서도 이를 상속받아 사용하게 됩니다. 개인 지침과 글로벌 Skill은 본인만 사용합니다. 이를 명확히 구분하는 것이 팀 표준과 개인적 습관의 차이를 만듭니다.
액세스 권한이 있을 때 ChatGPT 내보내기 수행하기
memory 요약본을 읽고 알고 있는 내용을 작성해 달라고 요청하는 작업은 20분 정도 소요되며, 활성화된 계정 내부에서만 수행할 수 있습니다. 이 마이그레이션의 다른 모든 단계는 반복 가능하지만, 이 단계는 그렇지 않습니다.
지침 파일이 강제력을 가질 것이라 기대하지 말 것
지침 파일은 컨텍스트를 추가할 뿐, 행동을 보장하지는 않습니다. 포맷팅, 금지된 임포트, 보호된 경로 등은 스레드에 로드된 내용과 관계없이 적용되는 포맷터, 린터, CI에 설정하세요. 지침 파일은 규칙이 왜 존재하는지 설명하는 용도로 사용하십시오.
결론
ChatGPT memory를 Zed로 마이그레이션하는 것은 수동 작업입니다. ChatGPT에는 내보내기 기능이 없고, 그 memory는 기록이 아닌 종합된 결과물이기 때문입니다. 요약본을 읽고, 채팅창에 알고 있는 내용을 작성해 달라고 요청한 뒤, 압축 과정에서 누락된 이유들을 다시 작성해야 한다는 점을 받아들이세요.
그런 다음 복구한 내용을 Zed의 세 가지 영역으로 분류하세요. 항상 적용되는 소수의 내용을 위한 ~/.config/zed/AGENTS.md의 개인 지침, 팀이 공유하는 제약 조건을 위한 리포지토리의 프로젝트 지침, 그리고 필요할 때 호출하는 절차를 위한 ~/.agents/skills/ 또는 .agents/skills/ 내의 Skills가 있습니다. Zed가 가장 먼저 매칭할 지침 파일명을 확인하고, 상시 활성화 파일은 짧게 유지하며, context_servers 아래에 MCP를 연결하여 규칙 뒤에 있는 지식이 Zed와 ChatGPT 모두 읽을 수 있는 하나의 저장소에 머물도록 하세요. 그렇게 하면 다음번 에디터 변경은 고고학 프로젝트가 아닌 단순한 설정 파일 수정 작업이 될 것입니다.