このプロジェクトについて
loreは、マシン上のClaude Codeが書き出すすべての内容を管理するためのローカルコマンドラインツールおよびWebエクスプローラーです。Claude Codeはセッションのトランスクリプト、メモリ、プロンプト履歴をプロジェクトごとにシャードされたデータディレクトリに保存しており、デフォルトの保持期間では約30日後にトランスクリプトが削除されます。loreは、それらの生データの加算的なミラーを保持し、インデックスを作成し、独自のセッション履歴に対するクエリインターフェースを提供します。
インストールとプラットフォーム:本プロジェクトはBunのみを必要とし、rsyncやツールチェーンへの依存はありません。継続的インテグレーション(CI)により、テストスイートの実行およびmacOS、Linux、Windowsへのバイナリインストールが行われます。エクスプローラーを含むすべての動詞(コマンド)がこれら3つのプラットフォームで動作します。唯一の例外はloreサーバースーパーバイザーで、これはlaunchdユーザーエージェントを介してエクスプローラーをバックグラウンドで実行させるためmacOS専用となっており、それ以外のユーザーにはlore serveの使用を推奨しています。インストールスクリプトはフリーズバイナリをビルドし、ダーティなワーキングツリーを拒否し、すべての呼び出し時にバージョンとコミットをstderrに報告します。harness-corpusスクリプトは、Claude Codeのアップデート後にデーモンの形状をテストフィクスチャとしてスナップショットします。
データモデルとインデックス:wellとは、Claudeプロジェクトパス配下にある1つのディレクトリのストアであり、絶対パスから非英数字文字をフラット化して命名されるため、命名は非可逆的です。各セッションはチャットログではなくJSONLイベントログであり、主にツールトラフィック、思考エンベロープ、ハーネスイベント、およびそれに付随するサブエージェントのトランスクリプトやワークフロースクリプトで構成されています。indexコマンドはwellをスキャンし、JSONLを解析して、更新時間とサイズに基づいてインクリメンタルに、spawnsおよびworkflowsレーンを持つSQLite FTS5インデックスを構築します。インデックスは派生した再構築可能なアーティファクトであり、マイグレーションではなくバージョンバンプを行い、より新しいバージョンのloreによって書き込まれたデータベースを開くことを拒否します。
コマンド:archiveは、上流の削除を伝播させずにClaudeデータディレクトリをloreアーカイブにミラーリングします。wellsは、デスラッグされた実際のパスとフラグを付けてストアをリストします。sessionsおよびsessionは、wellの時系列的な弧を辿るか、レーンごとに1つのセッションをダンプします。searchはレーンを横断してFTS5にクエリを投げ、プロンプト履歴のスパインを含めることができます。spawnsは、サブエージェントごとのリクエスト済みモデルに対する検証済みモデルを、ドリフトフラグと起動コストと共に報告します。workflowsはオーケストレーションの実行結果を要約します。pollsは、ターンごとにバックグラウンドタスクの出力ファイルを再読み込みしているセッションにフラグを立て、価格を算出します。toolsはツール、スキル、コマンドの呼び出し回数をカウントします。usageは、well、セッション、モデル、日、週、または月ごとに、請求トークンクラスと思考量を、日付付きのリスト価格相当額と共にプロファイルします。traceは、1つのセッションをトランザクション、ステップ、ツール呼び出し、およびアノテーションとしてレンダリングします。agentsは、ライブロースターをインデックスに結合します。statsは、コーパスの合計、レーン、および警告を報告します。すべてのコマンドがヘルプ出力をサポートしており、多くは部分一致および完全一致フラグによるwellフィルタを受け付けます。
エクスプローラー:lore serveは、最近のセッションとwell、トークン使用量、個別のwellとセッション、検索結果、およびコミットメッセージに書き込まれたセッショントレーラーを、サーバーレンダリングされたHTMLページとして表示します。すべてのページはJSONで回答することも可能です。読み取り動詞はOpenAPI仕様を持つコマンドパス配下にマウントされており、api動詞はコマンドと同じハンドラーを公開しています。デフォルトポートは4949で、ホストオプションによりバインドを制御でき、Tailscaleアドレスが存在する場合はそれを含めることができます。
判定レイヤー:決定論的でモデルフリーなCLIの上位に、オプションのwikiワークフローが存在します。wiki initは組み込みテンプレートからmarkdownのgitリポジトリを作成し、skills addはコマンドごとのスキルをインストールして、Claude CodeセッションがCLIを検出できるようにします。生素材をwikiに取り込み、wikiページをgitコミット済みのドキュメントに昇格させ、古い正典(canon)をリンティングするプロトコルは、インタラクティブなClaudeセッションがCLIを駆動することで実行されます。これらはコマンドとして提供されるのではなく設計ノートに記載されているため、ツール自体にAPIキーは必要ありません。docs動詞は、ワーキングツリーではなくgitオブジェクトから読み取られた、リポジトリにコミットされたmarkdownをインデックス化します。
データ処理:Claudeデータディレクトリを読み取り、docs用にはコードルート配下のgitオブジェクトストアを読み取ります。書き込み先はloreホームディレクトリ、オプションのwikiリポジトリ、およびmacOSスーパーバイザー専用の1つのlaunchd plistのみです。ネットワーク活動は、docsインデックス作成時に要求された明示的なgit fetchと、エクスプローラーがリスニングするポート以外にはありません。アップロードされるものはなく、モデル呼び出し、テレメトリ、アカウントも存在しません。設定は、Claudeディレクトリ、loreホーム、コードディレクトリ、wikiディレクトリ、docs除外リストおよびアシストリストなどの検証済み環境変数を通じて行われます。
別途、依存関係のないPythonスクリプトが提供されており、これはトランスクリプトJSONLを直接読み取り、拒否されたツール呼び出しを理由別およびその後のセッションの動作別に報告し、レビュー方法を記述したランブックを提供します。
ステータス:現状のまま公開された初期の個人用ツールであり、ローカル専用、MITライセンスの下で提供されています。製品化する計画はありません。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.