このプロジェクトについて

ohmyboringはコーディングエージェント向けの自己ホスト型パーソナルメモリシステムです。Claude Code、Kimi Code、および対象となるCodexセッションでの解決方法を捕捉し、各セッションをローカルVaultに保存された厳選されたMarkdownノートに蒸留し、「前回はどうやったっけ?」と尋ねるとそれらのノートを呼び戻します。すべてはローカルで動作します。埋め込みと合成はローカルLLMサーバー(Ollama、LM Studio、または他のOpenAI互換エンドポイント)を経由し、外部APIやトークンは使用しません。 メモリの取り込み方法: - セッション終了時の自動処理: SessionEndフックがトランスクリプトを蒸留して保存します。対になるUserPromptSubmitフックが最大3件の関連する過去のスニペットを新しいプロンプトに注入し、それぞれが確定済みの主張を伴います。 - Codexワーカー: CodexにはSessionEndフックがないため、ホストワーカーが~/.codex/sessionsを20分ごとにスキャンし、対象となるトランスクリプトを取り込みます。 - バックフィル: `make collect`は過去のClaude Code履歴から空のVaultを初期化します(新しい順、冪等、1回あたりN件)。`make collect-kimi`はKimi Codeに対して同様に行います。 - セッション途中: `make distill-now`は現在のトランスクリプトを再蒸留し、`make remember M="..."`は明示的なノートを保存します。 メモリはMarkdownファーストです。vault/wiki内のプレーンで人間が読める、git diff可能なノートで、Obsidian Vaultとして直接開くことができ、グラフビュー、バックリンク、タグ、全文検索が利用できます。オプションのpgvectorアクセラレータ(BORING_VECTOR=on)は、規模が必要な場合に類似検索とGraphRAGを追加します。 アーキテクチャは、高速でLLM不要の読み取りドア(`make ask`、recall.py、MCP recall)と、ゲート付きの書き込みドア(distill-session.pyがローカルLLMを呼び出し、決定論的なremember MCPツールを通じて書き込む)を分離しています。重複ゲートは重複ノートをスキップしますが、より豊富なノートが同じwikiファイルを書き換えることは許可します。drudge/src/workflow.rsのRust側の型付きワークフローグラフ契約は、セッション発見、蒸留、検証、修復、remember、マーカー更新、イベントログ、レディネス投影のためのノード/エッジ語彙を定義しますが、Pythonフックとワーカーは依然としてホストI/Oを実行します。 設定はboring.json(boring.example.jsonから)にあります。ノート言語、LLMプロバイダー/base_url/モデル/埋め込みモデルと次元、リポジトリoriginルール、エージェントトランスクリプトアダプターなどです。バックエンドの切り替えは1つの設定ブロックで行い、`make up`がプロバイダー固有のブートストラップスクリプトにディスパッチします。埋め込みモデルを変更するとベクトル次元が変わるため、llm.embed_dimを更新し、`make reset`を実行する必要があります。.envファイルにはシークレットとランタイムオーバーライド(BORING_VECTOR、LLMオーバーライド、蒸留クランプ、recallの主張数と関連性測定、イベントシンク/スプール設定、レディネスウィンドウ、書き込み呼び出し用のオーナートークンなど)が保持されます。 運用ツールには、`make verify-llm`(プロバイダー、モデルID、埋め込み次元)、`make doctor`(スタック、フック、Codexワーカー/キュー、最新の取り込み)、`make readiness`(厳格な事前ブリーフィングゲート)、`make peek`(recallがどのノートを注入したか、およびレトリーバーがどこまで到達したかを示す読み取り専用のローカルページ)、`make usage`(ローカルトランスクリプトから集計されたトークンとモデルの使用量)があります。vault/rules/pii.yamlのPII/機密データゲートは、block、redact、flagアクションを行単位の除外マーカー付きでサポートします。オプションの統合には、Slackアシスタントと朝のブリーフ用のHermes cronワーカーがあります。 要件はDocker、Python 3、jq、curl、git、make、およびローカルLLMサーバーです。新規クローンは空のVaultで開始するため、履歴をバックフィルするまで初日のrecallは何も見つけられません。このプロジェクトはMITライセンスで、マシンRAM別のローカルモデルペアリングガイダンス、ベンチマークコマンド、および測定された蒸留/埋め込み動作を文書化しています。