CTX: memória entre sessões do Claude Code — instale com `pip install` ou `/plugin install`
(github.com/jaytoone)O Claude Code perde todo o contexto quando a sessão é encerrada. O CTX resolve esse problema com hooks do Claude Code.
Como funciona: no evento UserPromptSubmit, ele injeta automaticamente 3 tipos de contexto em menos de 1 ms.
- G1: linha do tempo de decisões baseada em
git log(por que essa decisão foi tomada ontem) - G2: busca BM25 em código/documentação (injeção automática de arquivos relacionados)
- CM: vault de conversas passadas (SQLite FTS5 + vetor opcional)
Métricas medidas:
- Precisão de recuperação de memória: 0.880 [0.762, 0.944] (MAB N=50, Wilson CI)
- Baseline (sem isso): 0.00
- Taxa de uso em mais de 10.000 turnos reais: 39.6%
Sem chamadas de LLM. Sem nuvem. Totalmente local.
Instalação:
pip install ctx-retriever && ctx-install
ou, dentro do Claude Code: /plugin install ctx@jaytoone
9 comentários
Ao instalar com
/plugin, aparece assim⎿ Marketplace "jaytoone" não encontrado
Achei a abordagem muito interessante. A ideia de fazer roteamento por classificação de triggers parece excelente.
Uma dúvida: me parece que o tokenizer da camada BM25 não está especificado no README; como vocês pretendem lidar com coreano? Se for o tokenizer padrão por espaços,
"검색하다"/"검색하는"viram tokens separados, então o recall em buscas de comentários e docstrings em coreano deve cair bastante.Existe o fallback com
multilingual-e5-small, mas fiquei curioso sobre o plano para o tratamento de coreano (incluindo CJK) na própria camada BM25. (Eu também tive problemas com busca em CJK ao criar um app de wiki para LLM chamado seCall, e resolvi isso combinando Lindera ko-dic + Kiwi-rs; como o CTX tem uma estrutura de roteamento por triggers, imaginei que talvez haja espaço para uma abordagem diferente.)Você apontou exatamente o ponto. Atualmente, o
tokenize()da camada BM25 separa por espaços + pontuação e depois decompõe adicionalmente caracteres coreanos/CJK em unidades de caractere individual.'검색하다'→['검','색','하','다']+ o token completo'검색하다'. Isso permite correspondência parcial, mas de fato desfaz as unidades semânticas morfológicas.Estamos vendo a integração com Kiwi/Lindera como uma candidata para a próxima etapa. Como o CTX detecta o idioma da consulta antes do roteamento por trigger, parece que daria para encaixar de forma relativamente limpa um desvio de coreano detectado → analisador morfológico.
Interessante saber que vocês resolveram isso no seCall com a combinação Lindera ko-dic + Kiwi-rs. Você poderia compartilhar como trataram texto misto em CJK (coreano + comentários de código em inglês)?
Atualização v0.3.19 — envio automático ao encerrar a sessão:
A maior mudança: agora, após o
ctx-install, mesmo usando normalmente sem nenhum comando, as estatísticas são enviadas automaticamente para o Turso ao encerrar a sessão.Novos campos adicionados no schema v1.7:
python_ml/nextjs_reactetc.) — ponto central para melhorias entre usuáriosOpt-out: crie o arquivo ~/.claude/ctx-telemetry-revoke para interromper o envio
Atualização v0.3.16 e adição de demo ao vivo:
Dashboard ao vivo (HF Space): https://be2jay-ctx-dashboard-demo.hf.space
utility_rate, visualização do grafo de conhecimentoPrincipais mudanças (v0.3.16):
session_aggregatecom k-anonimato)ctx-installMedição real de taxa de utilização (n=1054 sessões):
utility_rate: 39,6%Aviso de atualização (v0.3.13):
Prioridade do método de instalação:
[Recomendado] Plugin do Claude Code (etapa 1):
/plugin install ctx@jaytoone
[Alternativa] pip:
pip install ctx-retriever && ctx-install
Mudanças no v0.3.13: venv isolado para o vec-daemon (evita conflitos de numpy/ABI), reranker BGE opcional via opt-in (CTX_BGE_ENABLE=1)
Vídeo do funcionamento do dashboard (39 segundos): https://drive.google.com/file/d/…
Detalhes: https://dev.to/jaewon_jang_d63fddcf69ac2/…
Atualização v0.3.28 (2026-05-20): alcançou 6 ⭐ no GitHub e 2.726 downloads mensais no PyPI. Nesta release, houve reforço da transparência de privacidade — adição do
PRIVACY.md(prova de que não é possível reverter hashes, base em GDPR/CCPA/PIPA), aviso único de telemetria na primeira execução e adição dos comandosctx-telemetry disable/enable. Para usuários de versões antigas (v0.3.25 ou anteriores), recomenda-sepip install --upgrade ctx-retriever.Atualização v0.3.27: agora, com uma única linha
pip install ctx-retriever, o hook do Claude Code é conectado automaticamente (não é mais necessário executarctx-installseparadamente). Internamente, um arquivo.pthemsite-packagesinstala o hook automaticamente na primeira execução do Python, e foram adicionados o hookSessionStarte uma fila de repetição, melhorando a estabilidade da coleta de dados de ~70% para ~93%. Já é possível instalar diretamente a versão v0.3.27 pelo PyPI.