2 points par nave94 2026-05-03 | 9 commentaires | Partager sur WhatsApp

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

 
zihado 27 일 전

Installé via /plugin, ça affiche ceci.
⎿ Marketplace "jaytoone" introuvable

 
kurthong 2026-05-04

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.)

 
nave94 2026-05-09

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) ?

 
nave94 2026-05-09

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 :

  • project_type_id : empreinte de la stack technique (python_ml/nextjs_react, etc.) — élément clé de l’amélioration inter-utilisateurs
  • ctx_version : suivi des améliorations par version
  • utility_by_qtype : mesure au niveau de la session de l’écart entre KEYWORD 16 % et SEMANTIC 42 %

Désinscription : créez le fichier ~/.claude/ctx-telemetry-revoke pour arrêter l’envoi

 
nave94 2026-05-09

Mise à 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

  • statistiques de session en temps réel, graphique du utility_rate, visualisation du graphe de connaissances

Principaux changements (v0.3.16) :

  • statut : Alpha → Beta
  • activation du pipeline d’upload Stage 2 (upload de session_aggregate avec k-anonymat)
  • ajout de l’affichage d’une invitation à l’opt-in lors de l’exécution de ctx-install
  • ajout d’un commentaire sur le tokenizer BM25 CJK (prise en compte prévue dans le README)

Mesure réelle du taux d’utilisation (n=1054 sessions) :

  • utility_rate moyen global : 39,6 %
  • bloc CM : 52,6 % (le plus élevé)
  • requête SEMANTIC : 42,0 % vs KEYWORD : 16,0 % (écart de 42 pp)
 
nave94 2026-05-04

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)

 
nave94 2026-05-03

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/…

 
nave94 28 일 전

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 commandes ctx-telemetry disable/enable. Pour les utilisateurs des anciennes versions (v0.3.25 et antérieures), pip install --upgrade ctx-retriever est recommandé.

 
nave94 2026-05-19

Mise à jour v0.3.27 : désormais, une seule ligne pip install ctx-retriever suffit pour connecter automatiquement le hook Claude Code (plus besoin d’exécuter séparément ctx-install). En interne, un fichier .pth dans 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.