커맨드 센터가 표시하는 내용
OpenAI의 슬래시 명령 레퍼런스는 커맨드 센터를 열었을 때 보이는 모습을 다음과 같이 설명합니다: "Codex는 연결된 서버의 채팅 개요를 보여줍니다. 상태를 점검하고 채팅 간에 전환할 수 있습니다."
이 기능은 여러 버전을 거치며 성장했습니다. 8월 Codex CLI 0.149.0에 대시보드가 도입되었을 때, 변경 로그에는 "작업 검색, 시작, 열기, 이름 변경 및 중지를 위한 대화형 codex agents 대시보드가 추가되었으며 설정 가능한 단축키가 포함되었다"고 명시되었습니다. 이후 업데이트를 통해 최근 세션과 실시간 작업 세부 정보가 동일한 뷰에 추가되었습니다.
실제로는 세 가지 질문에 빠르게 답할 수 있는 공간입니다: 어떤 채팅이 실행 중인가, 어떤 채팅이 완료되었는가, 그리고 다음에 어떤 채팅을 열 것인가?
여는 방법
두 가지 방법이 있습니다:
- 세션 내부에서:
/agents를 입력하고 Enter를 누른 다음, 열고 싶은 채팅을 선택합니다. 슬래시 명령 표에는/agents가 "에이전트 커맨드 센터 열기" 명령으로 나열되어 있습니다. - 터미널에서:
codex agents를 실행합니다. OpenAI 레퍼런스에 따르면: "터미널에서 직접 커맨드 센터를 열려면codex agents를 실행하십시오."
codex agents는 원격 작업을 위한 옵션도 제공합니다. "원격 서버에 연결하려면 --remote <URL>을 사용하고, 새 원격 작업의 디렉토리를 설정하려면 --cd <DIR>을 사용하십시오."
커맨드 센터는 서브에이전트 전환기(subagent switcher)와는 다릅니다. /subagents는 현재 세션 내에서 활성 스레드를 전환하여 "해당 에이전트의 작업을 점검하거나 계속"할 수 있게 해줍니다. 반면 커맨드 센터는 세션을 가로질러 서버에 있는 모든 채팅을 나열합니다.
백그라운드 서버가 필요한 이유
커맨드 센터는 단순히 터미널 히스토리를 보여주는 뷰가 아닙니다. 서버의 채팅을 보여주는 뷰입니다. OpenAI는 다음과 같이 명시합니다: "커맨드 센터는 공유 로컬 또는 원격 서버가 필요합니다."
이 서버는 사용자 머신이나 다른 호스트에서 백그라운드 데몬으로 실행되는 Codex 앱 서버입니다. 여러 Codex 명령이 이 서버에 의존합니다:
codex agents는 해당 서버에서 커맨드 센터를 열며, 레퍼런스에는 "codex agents는--no-daemon을 지원하지 않는다"고 명시되어 있습니다.codex queue --resume는 서버가 있어야만 세션을 재개할 수 있습니다. "재개하려면 실행 중인 로컬 데몬 또는--remote로 선택된 서버가 필요합니다."codex remote-control은 "조건이 충족될 때 관리형 백그라운드 서버를 통해 원격 제어를 시작하며, 포그라운드 폴백을 제공합니다."
한 릴리스 노트는 내용이 조금 다릅니다. Codex CLI 0.167.0 변경 로그에는 "codex agents --no-daemon으로 에이전트 커맨드 센터를 열기"라고 되어 있습니다. 그러나 현재 명령 레퍼런스에는 codex agents가 해당 플래그를 지원하지 않는다고 되어 있습니다. 두 내용이 충돌할 경우 레퍼런스가 현재 동작을 설명하므로, 본인의 빌드에서 /daemon 또는 codex agents를 직접 확인해 보시기 바랍니다.
/daemon으로 서버 관리하기
세션 내부에서 /daemon을 입력하면 백그라운드 서버 제어 창이 열립니다. OpenAI 레퍼런스에 따르면 이를 통해 "서버 연결 및 사용 가능한 작업을 검토"할 수 있습니다.
사용하기 전에 알아두어야 할 두 가지 작업이 있습니다:
- 서버 업데이트. Codex는 최신 공개 안정 버전을 설치하거나 현재 CLI 빌드를 사용할 것을 제안합니다. "업데이트를 확인하면 Codex가 종료되며 진행 중인 작업이 중단될 수 있습니다."
- 서버 재시작. "Codex는 자동으로 재연결됩니다. 재시작은 다른 채팅에서 진행 중이거나 대기 중인 작업을 중단시킬 수 있습니다."
원격 연결의 경우, OpenAI는 해당 호스트에서 서버를 관리할 것을 권장합니다.
Codex CLI 0.167에서의 변경 사항
11월 6일 릴리스에서는 커맨드 센터와 세션 선택기에 두 가지 기능이 추가되었습니다:
- 읽지 않음 표시. "커맨드 센터와 세션 선택기에 이제 읽지 않은 결과가 표시됩니다."
- 백엔드 전환. "터미널 세션 선택기에서 연결된 백엔드 간에 전환할 수 있으며, 전환 시 초안(draft)이 유지됩니다."
같은 릴리스에서 저장된 채팅에 영향을 주던 제공자(provider) 문제도 해결되었습니다: "모델 제공자를 전환한 후에도 저장된 채팅이 계속 표시됩니다. 채팅을 재개할 수 없는 경우, 트랜스크립트를 읽고 편집 가능한 프롬프트를 준비하여 새 채팅에서 이어갈 수 있습니다."
또한 Ctrl+L의 기능도 변경되었습니다: "Ctrl+L은 터미널 화면을 지우지만, 이전 메시지는 Ctrl+T를 통해 계속 확인할 수 있습니다."
Archive와 Delete: 채팅에 미치는 영향
두 기능 모두 활성 목록에서 채팅을 제거하지만, 오직 하나만이 데이터를 보존합니다.
Archive (보관)
codex archive 명령은 트랜스크립트를 삭제하지 않고 목록을 정리할 때 사용합니다. OpenAI는 "트랜스크립트를 삭제하지 않고 세션 선택기를 정리하고 싶을 때 이 명령을 사용하십시오"라고 설명합니다.
채팅 내부에서 /archive를 입력하면 확인 절차를 거친 후 다음과 같이 동작합니다: "Codex는 세션을 보관하고, 로컬 백그라운드 서버나 원격 서버에 연결된 경우 커맨드 센터로 돌아갑니다. 공유 서버가 없으면 Codex는 종료됩니다. Codex는 트랜스크립트를 유지하며, 나중에 codex unarchive <SESSION>으로 복구할 수 있습니다."
두 가지 세부 사항:
- 턴(turn)이 실행 중인 경우, "
/archive를 확인하면 해당 턴을 중지한 후 보관합니다." - Archive는 세션이 생성한 하위 채팅까지 포함합니다. "세션을 보관하거나 복구할 때, Codex는 해당 세션이 생성한 서브에이전트 세션과 그 하위 세션들도 함께 보관하거나 복구하려고 시도합니다."
Delete (삭제)
삭제는 영구적입니다. codex delete 명령은 "세션 ID 또는 세션 이름으로 저장된 대화형 세션을 제거합니다. 트랜스크립트를 활성 세션 목록에서 숨기는 것이 아니라 완전히 제거하고 싶을 때만 사용하십시오."
채팅 내부에서 /delete를 입력하면 확인 후 동일하게 동작합니다: "Codex는 트랜스크립트와 생성된 하위 세션들을 영구적으로 삭제합니다." Archive와 마찬가지로 공유 서버가 연결되어 있으면 커맨드 센터로 돌아가고, 그렇지 않으면 종료됩니다.
삭제 시 제한 사항:
- "채팅이 실행 중이거나 사이드 채팅 상태일 때는
/delete를 사용할 수 없습니다." --force플래그는 세션 UUID를 사용할 때만 확인 절차를 건너뜁니다. "이름이 지정된 세션은 중복되거나 모호한 이름의 세션을 실수로 삭제하지 않도록 여전히 확인 절차가 필요합니다."
어떤 것을 사용해야 할까요?
채팅이 끝났지만 나중에 트랜스크립트가 필요할 수도 있다면 Archive를 사용하세요. 트랜스크립트와 해당 채팅이 생성한 모든 것을 영구적으로 없애고 싶을 때만 Delete를 사용하세요. 확신이 서지 않는다면 Archive를 선택하십시오. codex unarchive로 되돌릴 수 있지만, Delete는 되돌릴 수 없습니다.
보고 있지 않은 채팅에 메시지 보내기
여러 채팅이 실행 중일 때, 단순히 지시 사항 하나를 추가하기 위해 매번 채팅을 전환하고 싶지는 않을 것입니다. codex queue를 사용하면 터미널에서 기존 세션으로 메시지를 보낼 수 있습니다. OpenAI의 예시는 codex queue --thread <SESSION_ID> --message "남은 체크 항목 실행해줘"입니다.
규칙:
- "
--thread는 UUID 또는 정확한 세션 이름을 받습니다. 세션 이름이 같을 경우 UUID를 사용하십시오." - "대기열에 추가된 메시지는 해당 세션의 모델을 사용합니다. 이 명령은 텍스트만 수락합니다."
--resume을 추가하면 메시지를 대기열에 넣고 세션이 아직 로드되지 않은 경우 재개합니다. 이 기능은 백그라운드 서버가 필요합니다.- "Codex가 세션을 재개할 수 없는 경우 경고를 출력하지만 여전히 성공적으로 종료됩니다."
마지막 포인트는 스크립트를 작성할 때 중요합니다. 성공적인 종료가 세션이 메시지를 실제로 수신했음을 보장하지는 않습니다.
커맨드 라인에서 재개하기
커맨드 센터는 채팅으로 돌아가는 한 가지 방법입니다. codex resume은 또 다른 방법입니다: "ID로 대화형 세션을 계속하거나 가장 최근의 채팅을 재개합니다." --all을 전달하지 않는 한 --last 범위를 현재 작업 디렉토리로 제한합니다.
현재 디렉토리가 세션이 저장된 디렉토리와 다를 경우 Codex는 어느 것을 사용할지 묻습니다. tui.resume_cwd 설정을 통해 이 선택을 기억하게 할 수 있습니다. 채팅을 계속하는 것과 새로 시작하는 것의 차이점에 대해서는 Codex의 clear 및 new 명령 가이드에서 각 명령이 무엇을 유지하는지 설명합니다.
커맨드 센터가 보유하지 않는 것
커맨드 센터의 각 채팅은 고유한 트랜스크립트와 context를 가집니다. 커맨드 센터는 이들을 나란히 나열하지만, OpenAI의 설명에 따르면 이는 채팅과 그 상태에 대한 개요를 제공하는 것입니다. 커맨드 센터가 한 채팅의 결정을 다른 채팅으로 전달한다고 설명되어 있지는 않습니다.
따라서 한 채팅에서 어떤 API 버전을 타겟팅할지 또는 왜 특정 테스트를 건너뛰는지 결정하더라도, 문서상으로는 그 결정이 다른 채팅에 도달한다고 명시되어 있지 않습니다. 각 채팅은 자체 대화, 프로젝트 파일, 그리고 AGENTS.md를 기반으로 작동합니다. 채팅의 context가 얼마나 차오르고 있는지 확인하고 싶다면 Codex의 context left 표시기 가이드를 참고하세요.
사람들이 흔히 하는 실수
백그라운드 서버 없이 codex agents 실행하기. 커맨드 센터는 공유 로컬 또는 원격 서버가 반드시 필요합니다.
정리를 위해 Delete 사용하기. Delete는 트랜스크립트와 생성된 세션을 영구적으로 제거합니다. Archive는 채팅을 숨기면서 데이터를 보존합니다.
작업 도중 서버 재시작하기. 재시작은 다른 채팅에서 진행 중이거나 대기 중인 작업을 중단시킬 수 있습니다.
대기열 메시지가 전달되었다고 맹신하기. Codex가 세션을 재개할 수 없는 경우에도 경고만 띄우고 성공적으로 종료될 수 있습니다.
한 채팅의 결정이 다른 채팅에 반영될 것이라 기대하기. 각 채팅은 독립된 context에서 작동합니다.
해결책: 흐름을 놓치지 않고 여러 Codex 채팅 실행하기
1단계: 공유 서버에서 시작하기
로컬 백그라운드 서버를 사용하거나 --remote로 연결한 다음, codex agents 또는 /agents로 커맨드 센터를 엽니다.
2단계: 완료된 채팅은 삭제하지 말고 보관하기
Archive는 트랜스크립트를 유지하며 codex unarchive로 되돌릴 수 있습니다.
3단계: 재시작 또는 업데이트 전 확인하기
재시작이나 업데이트가 다른 채팅을 방해할 수 있으므로, 어떤 채팅도 작업 중이지 않을 때만 /daemon을 사용하십시오.
4단계: 채팅을 가로지르는 결정사항 기록하기
한 채팅에서 다른 채팅들도 알아야 할 사항을 결정했다면, 모든 채팅과 도구가 읽을 수 있는 곳에 기록해 두십시오.
MemoryLake에서 설정하기
커맨드 센터는 많은 Codex 채팅을 한눈에 보여줍니다. 하지만 결정된 API 버전이나 테스트를 건너뛴 이유와 같이 채팅들을 연결하는 결정사항들은 한 채팅에서 발생하여 다른 채팅에서도 중요하게 작용할 수 있습니다.
MemoryLake는 이러한 프로젝트 context(결정, 컨벤션, 제약 조건 등)를 한곳에 유지하고 ChatGPT, Claude Code, Codex와 같이 연결된 어시스턴트들이 사용할 수 있게 해주는 memory 레이어입니다.
사용자는 자신의 언어로 직접 항목을 작성합니다. Codex 채팅, 트랜스크립트, ~/.codex 폴더, AGENTS.md 파일, 백그라운드 서버 또는 어떤 벤더의 저장소에서도 데이터를 읽거나 쓰거나 삭제하지 않습니다. 커맨드 센터, Archive, Delete 기능은 OpenAI가 설명한 방식 그대로 작동합니다.
1단계: API 키 생성
로그인 후 대시보드에서 키를 생성합니다. 다른 자격 증명과 마찬가지로 리포지토리 외부에 안전하게 보관하십시오.

2단계: 첫 번째 memory 업로드
해결책의 4단계에서 작성한 내용부터 시작하십시오: 채팅을 가로지르는 결정사항, 모든 채팅이 따라야 할 컨벤션, 그리고 그 뒤에 숨겨진 제약 조건들입니다. 한 항목당 하나의 엔트리로 작성합니다.

3단계: AI 및 에이전트 연결
Codex 및 사용하는 다른 어시스턴트들을 연결합니다. 각 채팅과 도구는 동일한 엔트리를 참조할 수 있습니다.

실제 작업에서의 변화
첫 번째 차이점은 반복적인 설명이 줄어든다는 것입니다. 한 번 작성된 결정사항은 다음에 시작하는 채팅에서도 즉시 사용할 수 있습니다.
두 번째는 개별 트랜스크립트에 대한 의존도가 낮아진다는 것입니다. 채팅을 Archive하거나 Delete해도 그 안의 결정사항이 함께 사라지지 않습니다.
세 번째는 Codex 외부에서도 동일한 context를 유지한다는 것입니다. 동일한 프로젝트에서 작업하는 Claude Code나 ChatGPT도 동일한 엔트리를 사용할 수 있습니다.
Codex 커맨드 센터를 위한 모범 사례
공유 서버를 계속 실행하십시오. 커맨드 센터와 codex queue --resume은 서버에 의존합니다.
채팅에는 /agents를, 스레드에는 /subagents를 사용하십시오. 하나는 서버의 채팅을 나열하고, 다른 하나는 세션 내의 스레드를 전환합니다.
기본적으로 Archive를 사용하십시오. 트랜스크립트를 유지하며 되돌릴 수 있습니다.
Delete는 목적이 분명할 때만 사용하십시오. 트랜스크립트와 해당 채팅이 생성한 모든 세션을 제거합니다.
읽지 않음 표시를 확인하십시오. 0.167 버전부터 커맨드 센터는 아직 보지 않은 결과에 플래그를 표시합니다.
서버 재시작 시 주의하십시오. 다른 채팅의 작업을 중단시킬 수 있습니다.
채팅 간 결정사항을 기록하십시오. 각 채팅은 독립된 context에서 작동합니다.
결론
Codex 에이전트 커맨드 센터는 공유 로컬 또는 원격 서버의 채팅을 나열하고, 상태를 보여주며, 채팅 간 전환을 가능하게 합니다. 터미널에서 codex agents를 실행하거나 세션 내에서 /agents를 입력하여 열 수 있습니다. Codex CLI 0.167부터는 읽지 않은 결과를 표시하며, 세션 선택기에서 초안을 유지한 채 연결된 백엔드 간 전환이 가능합니다.
Archive는 채팅을 숨기고 트랜스크립트를 보존하며, codex unarchive로 복구할 수 있습니다. Delete는 트랜스크립트와 하위 세션들을 영구적으로 삭제합니다. 각 채팅은 독립된 context에서 작동하므로, 중요한 결정사항은 별도로 기록하여 모든 채팅과 도구가 이를 바탕으로 시작할 수 있도록 하십시오.