CTX : mémoire inter-sessions pour Claude Code — installation via `pip install` ou `/plugin install`
(github.com/jaytoone)Claude Code perd tout le contexte quand on ferme une session. CTX résout ce problème avec des hooks Claude Code.
Fonctionnement : lors de l’événement UserPromptSubmit, il injecte automatiquement en moins de 1 ms trois types de contexte.
- G1 : une timeline de décision basée sur
git log(pour savoir pourquoi cette décision a été prise hier) - G2 : recherche BM25 dans le code/la documentation (injection automatique des fichiers pertinents)
- CM : coffre de conversations passées (SQLite FTS5 + vecteurs optionnels)
Mesures observées :
- Précision du rappel mémoire : 0.880 [0.762, 0.944] (MAB N=50, Wilson CI)
- Référence de base (sans rien) : 0.00
- Taux d’utilisation sur plus de 10 000 tours réels : 39.6%
Aucun appel LLM. Pas de cloud. Entièrement local.
Installation :
pip install ctx-retriever && ctx-install
ou dans Claude Code : /plugin install ctx@jaytoone
9 commentaires
Installé via
/plugin, ça affiche ceci.⎿ Marketplace "jaytoone" introuvable
J’ai trouvé cette approche très intéressante. L’idée de router via une classification par trigger me semble excellente.
Une question toutefois : il me semble que le tokenizer de la couche BM25 n’est pas précisé dans le README ; comment envisagez-vous le traitement du coréen ? Avec un simple tokenizer basé sur les espaces, « geomsaekhada » et « geomsaekhaneun » deviennent des tokens distincts, ce qui risque de faire fortement chuter le rappel pour la recherche dans les commentaires et docstrings en coréen.
Il y a bien un fallback
multilingual-e5-small, mais je suis curieux de connaître votre plan pour le traitement du coréen (y compris le CJK) dans la couche BM25 elle-même. (De mon côté, en développant une appli wiki LLM appelée seCall, j’ai eu des problèmes de recherche CJK que j’ai résolus en intégrant Lindera ko-dic + Kiwi-rs ; comme CTX a une architecture de routage par trigger, je me dis qu’une autre approche est peut-être possible.)Vous avez parfaitement cerné le point. Actuellement, le
tokenize()de la couche BM25 sépare d’abord sur les espaces et la ponctuation, puis redécoupe en plus les caractères coréens/CJK à l’unité.검색하다→ ["geom","saek","ha","da"] + le token complet검색하다. Le matching partiel fonctionne, mais il est vrai que les unités de sens morphologique sont écrasées.Nous considérons l’intégration de Kiwi/Lindera comme un candidat pour l’étape suivante. Comme CTX détecte la langue de la requête avant le routage du trigger, il semble relativement simple d’ajouter une branche analyseur morphologique lorsque le coréen est détecté.
C’est intéressant de voir que vous avez résolu cela dans seCall avec la combinaison Lindera ko-dic + Kiwi-rs. Pourriez-vous éventuellement partager comment vous avez géré les textes CJK mixtes (coréen + commentaires de code en anglais) ?
Mise à jour v0.3.19 — envoi automatique à la fin de la session :
Le plus grand changement : désormais, après
ctx-install, même en l’utilisant normalement sans aucune commande, les statistiques sont automatiquement envoyées à Turso à la fin de la session.Nouveaux champs du schéma v1.7 :
python_ml/nextjs_react, etc.) — élément clé de l’amélioration inter-utilisateursDésinscription : créez le fichier
~/.claude/ctx-telemetry-revokepour arrêter l’envoiMise à jour v0.3.16 et ajout d’une démo en direct :
Tableau de bord en direct (HF Space) : https://be2jay-ctx-dashboard-demo.hf.space
utility_rate, visualisation du graphe de connaissancesPrincipaux changements (v0.3.16) :
session_aggregateavec k-anonymat)ctx-installMesure réelle du taux d’utilisation (n=1054 sessions) :
utility_ratemoyen global : 39,6 %Annonce de mise à jour (v0.3.13) :
Priorité des méthodes d’installation :
[Recommandé] Plugin Claude Code (étape 1) :
/plugin install ctx@jaytoone
[Alternative] pip :
pip install ctx-retriever && ctx-install
Changements de la v0.3.13 : venv isolé pour vec-daemon (prévention des conflits numpy/ABI), reranker BGE en opt-in (CTX_BGE_ENABLE=1)
Vidéo de démonstration du fonctionnement du tableau de bord (39 secondes) : https://drive.google.com/file/d/…
Détails : https://dev.to/jaewon_jang_d63fddcf69ac2/…
Mise à jour v0.3.28 (2026-05-20) : 6 ⭐ sur GitHub, 2 726 téléchargements mensuels sur PyPI. Cette release renforce la transparence en matière de confidentialité — ajout de
PRIVACY.md(preuve de non-rétrotraçabilité des hash, fondements GDPR/CCPA/PIPA), notification de télémétrie affichée une fois au premier lancement, ajout des commandesctx-telemetry disable/enable. Pour les utilisateurs des anciennes versions (v0.3.25 et antérieures),pip install --upgrade ctx-retrieverest recommandé.Mise à jour v0.3.27 : désormais, une seule ligne
pip install ctx-retrieversuffit pour connecter automatiquement le hook Claude Code (plus besoin d’exécuter séparément ctx-install). En interne, un fichier.pthdans site-packages installe automatiquement le hook au premier lancement de Python, et l’ajout du hook SessionStart + d’une file de réessai a amélioré la fiabilité de la collecte des données d’environ 70 % à environ 93 %. L’installation directe en v0.3.27 est disponible sur PyPI.