Dicklesworthstone/coding_agent_session_search
Unified TUI and CLI to index and search your local coding agent session history across 11+ providers (Codex, Claude, Gemini, Cursor, Aider, etc.)
🔎 coding-agent-search (cass) – あなたのローカルなAIコーディングアシスタント履歴用の統合的で高性能なTUI
何であるか – cass は、複数の人気のあるコーディングエージェント(Claude Code、GitHub Copilot Chat、Cursor、Aiderなど)の会話ログを収集し、共通のJSONスキーマに正規化してローカルなSQLiteアーカイブに保存し、即座に検索可能なツールです。完全にオフラインで動作し、任意のセマンティック検索は、明示的にインストールする小さなMiniLMモデルでデバイス上で実行されます。
📦 インストール
- ワンライナー スクリプト(Linux/macOS/Windows PowerShell):最新リリースを取得し、バイナリの整合性を検証します。
- Homebrew tap(
brew install dicklesworthstone/tap/cass):LinuxおよびApple Silicon macOS用の事前ビルド済みtarball。 - Scoop bucket(Windows用)。
--version <tag>を使用して、特定のバージョンにピン留めすることも可能です。
🚀 クイック「ロボット」(マシンリーダブル)ワークフロー
| ステップ | コマンド | 機能 |
|---|---|---|
| 1 | cass triage --json |
アーカイブの健全性を確認し、エージェントに次の行動(next_command、recommended_commandsなど)を指示します。 |
| 2 | cass search "…" --robot --limit 5 --fields minimal |
ハイブリッド検索(高速な語彙検索+オプションのMiniLMによる精査)を実行し、自動化に適したJSON結果を返します。 |
| 3 | cass sessions --current --json |
現在のワークスペースに対応する最新のセッションを検出します。 |
| 4 | cass view <session>.jsonl -n 42 --json |
保存されたセッションから1行(42行目)のメッセージを取得します。 |
| 5 | cass capabilities --json |
機械APIの全表面(triage、search、models、doctorなど)をリストアップします。 |
| 6 | cass sources agents exclude openclaw |
将来のインデックス化からノイズの多いエージェントを除外します。 |
すべてのロボットコマンドは、stdoutにデータのみ出力し、診断情報はstderrに出力され、成功時はexit-code 0を返します。
✨ 主な機能(平易な言葉で)
- エージェント間の統合 – 30種類以上の異なるコーディングアシスタントのログを1つの検索可能なタイムラインに統合。
- 即時語彙検索 – エッジ・ニグラムインデックスにより、10GBのアーカイブでも60ms未満のクエリ遅延を実現。
- オプションのセマンティック検索 –
cass models installでMiniLMモデルをインストール後、オフラインでベクトル検索が可能。モデルが存在しない場合は、純粋な語彙検索にフォールバック。 - 原子的でクラッシュ安全なインデックス – 各語彙公開は原子的リネームで行われ、1ステップでのロールバックが可能な前の世代のバックアップを保持。
- 堅牢な診断機能 –
cass doctorとcass diagは、隔離されたアセットを列挙し、安全なクリーンアップ手順を提案、また検証済みの修正を自動適用可能。 - 安定したJSON契約 – すべてのロボットモード出力はバージョン管理されたスキーマに従い、ゴールデンファイルテストで保護されており、下流の自動化に安全。
- オフライン運用 – 自分でMiniLMファイルを提供(
--from-file)し、インストール後はネットワークアクセス不要。 - 拡張可能な「ロボット」モード – LLM駆動のワークフローなど、他のエージェントから呼び出して、過去の会話をコンテキストとして取得可能。
🛠️ 内部動作の概要(高レベル)
- インジェスト – バックグラウンドインデクサが、エージェント固有のログ形式を読み取り、各メッセージを統一されたJSONレコードに変換し、SQLiteデータベースに書き込みます。
- 語彙インデックス – Tantivyに基づくカスタムフルテキストエンジンが、高速なプレフィックスマッチング用のエッジ・ニグラムインデックスを構築します。
- セマンティックベクトル – MiniLMモデルがインストールされると、各メッセージが埋め込みられ、Frankensearch FSVIベクトルファイルに保存されます。デーモンがこれらの埋め込みを再利用可能に提供します。
- ハイブリッドクエリ – 検索は最初に語彙ヒットを返し、モデルが存在する場合、ベクトル間のコサイン類似度でランキングを精査します。
- 原子的公開 – 新しい語彙世代は原子的にスワップされ、中断された公開は次回起動時に自動回復されます。
👥 誰が恩恵を受けるか
- 個人開発者:Copilot、Cursor、Claudeなどを使い分けるが、過去の解決策をファイルを掘り下げる手間なく思い出したい人。
- チーム:すべてのコーディングアシスタントのやり取りを共有・プライバシー保護型の知識ベースとして活用したい人。
- AIエージェントパイプライン:
cassをロボットモードで呼び出し、過去の回答で自身のコンテキストを豊かにできる。 - パワーユーザー:安定したJSON APIの上にカスタム分析(例:トークン使用量統計)をスクリプト化したい人。
📚 追加情報
- スクリーンショット – 色分けされたエージェント、Markdownレンダリングされた会話ビュー、組み込みヘルプ画面を備えた3パネルTUI。
- 設計ドキュメント – READMEには、語彙公開の耐久性モデル、隔離/GCポリシー、正確なエラー・エンベロープスキーマが説明されています。
- モデル詳細 – 英語用
all-minilm-l6-v2(約90MB)、CJK/混合テキスト用multilingual-minilm(約480MB)。
✅ 結論
cass は、これまで使用したすべてのAIコーディングアシスタントの履歴を高速かつオフラインで検索可能な統合エンジンを提供し、他のツール(またはエージェント自身)がその知識ベースにアクセスできる堅牢なCLI/JSONインターフェースを備えています。Rustで構築され、単一バイナリで配布され、すべてのデータはあなたのマシン上に保持されます——テレメトリもクラウド呼び出しも一切ありません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト