클로드 코드·코드엑스 대화 이어쓰는 로컬 매니저 Ctx
AI 코딩 에이전트인 Claude Code와 Codex의 대화 컨텍스트를 로컬에서 관리해주는 오픈소스 도구인 Ctx가 소개되었습니다. 개발자들은 이 도구를 통해 이전 작업 대화를 정확히 불러와 이어서 작업하거나 안전하게 브랜치를 나누어 컨텍스트를 분리할 수 있습니다. API 키가 필요 없는 로컬 우선 아키텍처와 SQLite 기반으로 빠르고 안전하게 작업 스트림을 관리할 수 있다는 것이 핵심 강점입니다.
Ctx는 Claude Code와 Codex를 위한 로컬 컨텍스트 매니저입니다. 정확한 대화 바인딩을 유지하고, 작업을 깔끔하게 이어가며(resume), 컨텍스트 스트림이 섞이지 않게 안전하게 분기(branch)할 수 있습니다. 또한 선택적으로 로컬 브라우저 프론트엔드에서 저장된 작업 스트림을 검토할 수 있습니다.
[Claude Code 채팅] [Codex 채팅] | | v v /ctx ... ctx ... \ / v v +----------------------+ | workstream: feature-audit | | claude: abc123 | | codex: def456 | +----------------------+ | +--> feature-audit-v2 브랜치
왜 Ctx를 사용해야 할까요?
- 정확한 트랜스크립트 바인딩 (Exact transcript binding): 각 내부 ctx 세션은 원래 시작된 정확한 Claude 및/또는 Codex 대화에 바인딩될 수 있습니다.
- 트랜스크립트 표류 방지 (No transcript drift): 이후에 대화를 불러올 때(pull) 디스크에 있는 최신 채팅으로 임의로 넘어가는 것이 아니라, 바인딩된 해당 대화에 머무릅니다.
- 안전한 브랜칭 (Safe branching): 다른 작업 스트림의 현재 상태에서 새로운 스트림을 시작하되, 향후 대화 내용이 공유되거나 원본 대화를 가로채는 일 없이 안전하게 분기할 수 있습니다.
- 인덱스 검색 (Indexed retrieval): 저장된 작업 스트림, 세션 및 항목은 인덱싱되어 빠른 ctx 검색이 가능합니다.
- 엄선된 불러오기 (Curated loads): 저장된 항목을 고정하여 항상 불러오게 하거나, 검색은 가능하되 모델에 다시 전달되지 않도록 제외하거나, 완전히 삭제할 수 있습니다.
- 로컬 우선 (Local-first): API 키나 호스팅 서비스가 필요 없으며, 순수 SQLite와 로컬 파일만 사용합니다.
빠른 설치 방법 저장소를 복제(clone)하고 표준 프로젝트 로컬 설정을 수행합니다:
git clone https://github.com/dchu917/ctx.git cd ctx ./setup.sh
이는 개발 친화적인 기본 설치 경로입니다. 이 설정은 다음 작업을 수행합니다:
- ./.contextfun/context.db를 생성합니다.
- ./ctx.env를 작성합니다.
- 저장소 기반의 ctx 심(shim)을 ~/.contextfun/bin에 설치합니다.
- 로컬 스킬(skills)을 ~/.claude/skills 및 ~/.codex/skills에 연결(link)합니다.
다음과 같은 경우에 이 설치 방법을 사용하세요:
- 저장소를 로컬에 체크아웃하고 싶을 때
- ctx가 프로젝트 로컬 DB를 기본으로 사용하길 원할 때
- 저장소 자체를 개발하거나 편집하고 있을 때
4단계 데모
복제 및 설정: git clone https://github.com/dchu917/ctx.git cd ctx ./setup.sh
새 작업 스트림(workstream) 시작: Claude Code: /ctx start feature-audit --pull Codex 또는 터미널: ctx start feature-audit --pull
--pull 옵션의 의미 이해: ctx start feature-audit --pull은 작업 스트림을 생성하고 현재 대화의 기존 컨텍스트를 해당 스트림으로 가져옵니다. 반면 ctx start feature-audit는 그 시점부터 새로운 작업 스트림을 생성할 뿐, 이전 대화 내용을 채워 넣지(backfill) 않습니다.
나중에 돌아와서 계속하거나 분기하기: Claude Code: /ctx resume feature-audit /ctx branch feature-audit feature-audit-v2
Codex: ctx resume feature-audit ctx branch feature-audit feature-audit-v2
일상적인 사용법 Claude Code:
- /ctx : 현재 저장소의 현재 작업 스트림을 표시하거나, 설정된 것이 없음을 알려줍니다.
- /ctx list : 저장된 작업 스트림을 나열하며, 해당되는 경우 현재 저장소를 먼저 표시합니다.
- /ctx search dataset download : 일치하는 컨텍스트에 대해 저장된 작업 스트림과 항목을 검색합니다.
- /ctx start my-stream --pull : 새 작업 스트림을 생성하고 계속하기 전에 현재 대화의 기존 컨텍스트를 가져옵니다.
- /ctx resume my-stream : 기존 작업 스트림을 계속 진행하고 이 대화의 새 컨텍스트를 추가합니다.
- /ctx rename better-name : 현재 작업 스트림의 이름을 변경합니다.
- /ctx rename better-name --from old-name : 먼저 전환하지 않고 특정 작업 스트림의 이름을 변경합니다.
- /ctx delete my-stream : 해당 작업 스트림에서 가장 최근에 저장된 ctx 세션을 삭제합니다.
- /ctx curate my-stream : 해당 작업 스트림의 저장된 메모리 큐레이션 UI를 엽니다.
- /ctx branch source-stream target-stream : 다른 작업 스트림의 현재 저장된 상태를 기반으로 새 작업 스트림을 생성합니다.
- /branch source-stream target-stream : 동일한 브랜치 작업을 위한 Claude 바로 가기입니다.
Codex:
- ctx : 현재 저장소의 현재 작업 스트림을 표시하거나 설정된 것이 없음을 알려줍니다.
- ctx list : 저장된 작업 스트림을 나열합니다.
- ctx list --this-repo : 현재 저장소에 연결된 작업 스트림만 나열합니다.
- ctx search dataset download : 일치하는 컨텍스트에 대해 저장된 작업 스트림과 항목을 검색합니다.
- ctx search dataset download --this-repo : 현재 저장소에 연결된 작업 스트림만 검색합니다.
- ctx web --open : 검색, 탐색 및 계속하기 명령어 복사를 위한 선택적 로컬 브라우저 UI를 엽니다.
- ctx start my-stream : 이 시점부터 시작하는 새 작업 스트림을 생성합니다.