ctx – Claude Code와 Codex 양쪽에서 동작하는 /resume 로컬 컨텍스트 매니저
Show HN: Ctx – a /resume that works across Claude Code and Codex
TL;DR Highlight
Claude Code와 OpenAI Codex 사이에서 대화 컨텍스트를 정확하게 유지하고 브랜칭할 수 있는 로컬 CLI 도구로, AI 코딩 세션을 끊김 없이 이어가고 싶은 개발자에게 유용하다.
Who Should Read
Claude Code나 Codex를 업무에 활용하는데 세션이 끊기거나 두 AI 툴 사이를 오가는 과정에서 컨텍스트가 날아가는 문제를 겪고 있는 개발자.
Core Mechanics
- ctx는 Claude Code와 OpenAI Codex의 대화 세션을 하나의 'workstream'이라는 단위로 묶어서 관리한다. 각 workstream은 Claude conversation ID와 Codex conversation ID를 함께 바인딩해서 저장한다.
- Exact transcript binding 기능 덕분에 나중에 ctx를 다시 불러올 때 디스크에 가장 최근 저장된 채팅이 아니라, 원래 그 세션과 연결된 정확한 대화 기록을 불러온다. 이걸 'transcript drift'를 막는다고 표현한다.
- Safe branching 기능으로 현재 workstream 상태를 복사해서 새 workstream으로 브랜치할 수 있다. 브랜치 이후에는 소스 workstream과 대화 스트림이 완전히 분리되어 서로 영향을 주지 않는다.
- 저장된 workstream, 세션, 엔트리는 SQLite DB에 인덱싱되어 빠르게 검색할 수 있고, 로컬 브라우저 프론트엔드에서 시각적으로 확인할 수도 있다.
- 핀(pin) 기능으로 특정 엔트리를 항상 컨텍스트에 포함시킬 수 있고, exclude 기능으로 검색은 되지만 모델에 전달되지 않도록 제외할 수도 있다. 필요 없는 항목은 완전 삭제도 가능하다.
- 완전히 로컬 퍼스트 설계로 API 키도 없고 외부 서비스도 없다. 데이터는 평범한 SQLite 파일과 로컬 파일로 저장된다.
- 설치는 git clone 후 ./setup.sh 한 번으로 끝난다. 프로젝트 로컬 DB를 만들고, ~/.contextfun/bin에 ctx shim을 설치하며, Claude와 Codex의 skills 디렉토리에 심볼릭 링크를 연결해준다.
- Claude Code의 /resume 커맨드에서 착안한 도구로, 비슷한 기능을 두 AI 코딩 도구에 걸쳐 통합해서 제공하는 게 핵심 차별점이다.
Evidence
- /resume 기능 자체를 쓴 적이 없다는 댓글이 있었다. 변경사항을 만들고 문서화하면 세션을 새로 시작하지 resume할 일이 없다는 것인데, 이는 ctx가 타겟하는 '장기 작업 컨텍스트 유지' 니즈가 얼마나 일반적인지에 대한 의문을 제기한 것이다.
- 두 provider 간 전환 시 컨텍스트 토큰을 어떻게 처리하는지, 특히 tool/MCP 호출이나 sub-agent 결과 같은 provider별 특수 포맷을 어떻게 '정규화'하는지 묻는 기술적 질문이 있었지만 아직 명확한 답변은 없었다.
- prompt caching이 모델 간 호환이 안 된다는 점을 지적하며, ctx 방식이 다른 하네스(harness)들에 PR을 올리는 것보다 어떤 점에서 더 나은지 묻는 댓글이 있었다. 즉, cross-provider 컨텍스트 공유의 실제 이점에 대한 회의적인 시각이다.
- 여러 커스텀 AI 툴을 만들다 보니 설정을 프로젝트, 환경, OS마다 따로 관리해야 하는 피로감이 크고, Claude가 기기별로 별도 메모리를 가져서 경험이 일관되지 않다는 공감 댓글이 있었다. ctx 같은 단일 하네스 접근법의 필요성을 지지하는 의견이었다.
- workstream을 export/import할 수 있게 해서 컨텍스트를 공유하는 기능이 있으면 좋겠다는 제안이 있었다. 팀 협업 시나리오에서 컨텍스트를 넘겨주는 용도로 유용할 것이라는 맥락이었다.
How to Apply
- Claude Code로 작업하다가 특정 기능을 OpenAI Codex로 테스트해봐야 하는 경우, ctx로 workstream을 만들어두면 두 도구 간 전환 시에도 동일한 작업 컨텍스트를 유지할 수 있다. git clone 후 ./setup.sh 한 번으로 바로 시작 가능하다.
- 장기 프로젝트를 AI 코딩 툴로 진행하다가 실험적인 방향을 시도해보고 싶을 때, ctx의 브랜칭 기능을 이용하면 현재 workstream을 보존한 채 새 브랜치에서 안전하게 실험할 수 있다. 실험이 실패해도 원본 workstream은 그대로 남아있다.
- 여러 AI 세션에서 반복적으로 참조해야 하는 아키텍처 결정이나 설계 문서가 있는 경우, ctx의 pin 기능으로 해당 엔트리를 고정해두면 매번 새로 붙여넣지 않아도 항상 컨텍스트에 포함된다.
- 팀원에게 AI 코딩 세션의 진행 상황을 인계해야 하는 상황이라면, export/import 기능 구현을 기다리거나 SQLite DB 파일 자체를 공유하는 방식으로 workstream을 넘겨줄 수 있는지 검토해볼 수 있다.
Code Example
# 설치
git clone https://github.com/dchu917/ctx.git
cd ctx
./setup.sh
# setup.sh가 하는 일:
# - ./.contextfun/context.db 생성
# - ./ctx.env 작성
# - ~/.contextfun/bin에 repo 기반 ctx shim 설치
# - ~/.claude/skills 와 ~/.codex/skills에 로컬 skills 링크 연결
# 사용 예시 (README 기반)
# Claude Code에서
/ctx save feature-audit
# Codex에서
ctx resume feature-audit
# 브랜치 생성
ctx branch feature-audit feature-audit-v2Terminology
관련 논문
ctx – 로컬 머신의 코딩 에이전트 히스토리를 검색하는 CLI 도구
Claude Code, Cursor, Codex 등 코딩 에이전트가 이전 세션의 논의·결정·실패 시도를 잊지 않도록 SQLite로 인덱싱해 재사용할 수 있게 해주는 오픈소스 CLI 도구다.
Micro-Agent: Model API 내부 협업으로 Frontier 모델을 이기는 방법 (vLLM Semantic Router)
vLLM 팀이 단일 모델 API 호출 뒤에서 여러 모델이 협업하는 'Micro-Agent' 개념을 공개했습니다. 별도의 에이전트 코드 없이 라우터 레이어에서 모델 조합을 실행해 GPT-4급 결과를 더 저렴하게 낼 수 있다는 아이디어입니다.
Ornith-1.0: 에이전틱 코딩을 위한 자기 개선형 오픈소스 모델
Gemma 4와 Qwen 3.5를 기반으로 파인튜닝한 코딩 특화 오픈소스 모델로, RL(강화학습)을 통해 스캐폴드(에이전트 실행 구조)까지 함께 최적화하는 방식을 주장하지만, 커뮤니티에서는 벤치마크 과최적화에 불과하다는 의심을 받고 있다.
Tool-Augmented Agent에서의 Entity Binding 실패 분석
AI 에이전트가 올바른 도구를 선택해도 잘못된 대상에 실행하는 'Entity Binding 실패' 문제를 정의하고, 이를 막는 실행 정책을 평가한 논문.
Herdr: 터미널에서 여러 AI Agent를 한 번에 관리하는 Agent Multiplexer
여러 AI 코딩 에이전트(Claude, Codex 등)를 하나의 터미널에서 동시에 실행·관리할 수 있는 Rust 기반 오픈소스 툴로, tmux처럼 세션이 유지되고 SSH로 원격 접속도 가능해 멀티 에이전트 워크플로우를 크게 단순화해준다.
Ornith-1.0: 스스로 Scaffold를 생성하는 Agentic Coding LLM
모델이 문제 풀이 전략(scaffold)을 직접 생성하고 개선하는 자기강화 학습 프레임워크를 적용한 오픈소스 코딩 특화 LLM으로, 9B 소형 모델부터 397B 대형 모델까지 라인업을 갖추고 SWE-Bench 등 주요 벤치마크에서 Claude Opus 4.7을 능가하는 성능을 보여줬다.