CTX: Claude Codeのセッション間メモリ — pip install または /plugin install でインストール
(github.com/jaytoone)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
9件のコメント
/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 の追加フィールド:
オプトアウト:
~/.claude/ctx-telemetry-revokeファイルを作成すると送信停止v0.3.16アップデートおよびライブデモを追加:
ライブダッシュボード (HF Space): https://be2jay-ctx-dashboard-demo.hf.space
主な変更点 (v0.3.16):
ctx-install実行時にopt-in案内を表示するよう追加活用率の実測値 (n=1054セッション):
更新のお知らせ (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 リランカーはオプトイン(CTX_BGE_ENABLE=1)
ダッシュボードの動作動画(39秒): https://drive.google.com/file/d/…
詳細: https://dev.to/jaewon_jang_d63fddcf69ac2/…
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の1行だけで Claude Code フックが自動的に接続されます(ctx-installを別途実行する必要はありません)。内部的には、site-packages の.pthファイルが最初の Python 実行時にフックを自動インストールし、SessionStart フック + 再試行キューが追加され、データ収集の安定性が約70% → 約93%に改善されました。PyPI から v0.3.27 をそのままインストールできます。