2P by nave94 | ★ favorite | 댓글 9개

Claude Code는 세션을 닫으면 모든 컨텍스트를 잃습니다. CTX는 이 문제를 Claude Code 훅으로 해결합니다.

동작 방식: UserPromptSubmit 이벤트에서 1ms 이내로 3가지 컨텍스트를 자동 주입합니다.

  • G1: git log 기반 의사결정 타임라인 (어제 왜 그 결정을 했는지)
  • G2: BM25 코드/문서 검색 (관련 파일 자동 주입)
  • CM: 과거 대화 vault (SQLite FTS5 + 선택적 벡터)

실측 수치:

  • 메모리 회상 정확도: 0.880 [0.762, 0.944] (MAB N=50, Wilson CI)
  • 베이스라인(없음): 0.00
  • 실제 10,000+ 턴 기준 활용률: 39.6%

LLM 호출 없음. 클라우드 없음. 완전 로컬.

설치:
pip install ctx-retriever && ctx-install
또는 Claude Code 내에서: /plugin install ctx@jaytoone

댓글과 토론

/plugin 으로 설치하니 이렇게 나오네요
⎿ Marketplace "jaytoone" not found

흥미로운 접근 잘 봤습니다. trigger 분류로 라우팅하는 발상은 아주 좋은 아이디어같습니다.

한 가지 궁금한 점: BM25 레이어의 토크나이저가 README에 명시 안 된 것 같은데 한국어 처리는 어떻게 가시나요? 기본 공백 토크나이저면 "검색하다"/"검색하는"이 별도 토큰이 되어서 한국어 주석·docstring 검색에서 recall이 많이 떨어질 텐데요.
multilingual-e5-small fallback이 있긴 하지만 BM25 레이어 자체의 한국어(cjk포함)처리 계획이 궁금합니다. (저도 seCall이라고 llm wiki앱을 만들면서 CJK 검색에 문제가 있어 Lindera ko-dic + Kiwi-rs 붙여 해결했는데, CTX는 trigger 라우팅
구조라 다른 접근 가능할 것 같아서요.)

정확히 짚어주셨습니다. 현재 BM25 레이어 tokenize()는 공백+구두점 분리 후 한글/CJK 문자를 개별 문자 단위로 추가 분해합니다. '검색하다' → ['검','색','하','다'] + '검색하다' 전체 토큰 형태입니다. 부분 매칭은 되지만 형태소 의미 단위가 뭉개지는 건 맞습니다.

Kiwi/Lindera 연동은 다음 단계 후보로 보고 있습니다. CTX는 쿼리가 trigger 라우팅 전에 언어 감지를 하고 있어서 한국어 감지 → 형태소 분석기 분기가 상대적으로 깔끔하게 들어갈 것 같습니다.

seCall에서 Lindera ko-dic + Kiwi-rs 조합으로 해결하셨다니 흥미롭네요. 혹시 CJK 혼합 텍스트(한글+영문 코드 주석) 처리는 어떻게 하셨는지 공유 부탁드려도 될까요?

v0.3.19 업데이트 — 세션 종료 시 자동 전송:

가장 크게 바뀌 점: 이제 ctx-install 후 아무 명령없이 정상 사용만 해도 세션 종료 시 통계가 자동으로 Turso에 전송됩니다.

스키마 v1.7 추가 필드:

  • project_type_id: 테크 스택 피언프린트 (python_ml/nextjs_react 등) — 크로스유저 개선의 핵심
  • ctx_version: 버전별 개선 추적
  • utility_by_qtype: KEYWORD 16% vs SEMANTIC 42% 차이를 세션 단위로 충정

옵아웃: ~/.claude/ctx-telemetry-revoke 파일 생성 시 전송 중지

v0.3.16 업데이트 및 라이브 데모 추가:

라이브 대시보드 (HF Space): https://be2jay-ctx-dashboard-demo.hf.space

  • 실시간 세션 통계, utility_rate 차트, knowledge graph 시각화

주요 변경사항 (v0.3.16):

  • 상태: Alpha → Beta
  • Stage 2 업로드 파이프라인 활성화 (k-익명성 session_aggregate 업로드)
  • ctx-install 실행 시 opt-in 안내 표시 쫐가
  • BM25 CJK 토크나이저 주석 추가 (README 반영 예정)

활용률 실측 (n=1054 세션):

  • 전체 평균 utility_rate: 39.6%
  • CM 블록: 52.6% (가장 높음)
  • SEMANTIC 쿼리: 42.0% vs KEYWORD: 16.0% (42pp 차)

업데이트 공지 (v0.3.13):

설치 방법 우선순위:

[권장] Claude Code 플러그인 (1단계):
/plugin install ctx@jaytoone

[대안] pip:
pip install ctx-retriever && ctx-install

v0.3.13 변경사항: vec-daemon 격리 venv (numpy/ABI 충돌 방지), BGE 리랭커 opt-in (CTX_BGE_ENABLE=1)

v0.3.28 업데이트 (2026-05-20): GitHub 6 ⭐ 달성, PyPI 월 2,726 다운로드. 이번 릴리즈에서 개인정보 투명성 강화 — PRIVACY.md 추가 (해시 역추적 불가 증명, GDPR/CCPA/PIPA 근거), 최초 실행 시 1회 텔레메트리 알림, ctx-telemetry disable/enable 명령어 추가. 구 버전(v0.3.25 이하) 사용자는 pip install --upgrade ctx-retriever 권장.

v0.3.27 업데이트: 이제 pip install ctx-retriever 한 줄로 Claude Code 훅이 자동으로 연결됩니다 (ctx-install 별도 실행 불필요). 내부적으로 site-packages .pth 파일이 첫 Python 실행 시 훅을 자동 설치하고, SessionStart 훅 + 재시도 큐가 추가되어 데이터 수집 안정성이 ~70% → ~93%로 개선됐습니다. PyPI에서 v0.3.27로 바로 설치 가능합니다.