cookbook-brain
cookbook-brain
あなたのエージェントに、あなた自身が所有する記憶を与えましょう。
cookbook-brainは、AIエージェントが学習した内容を、ディスク上のgitリポジトリ内のプレーンマークダウンファイルとして保存します。Claude Code、Codex、または任意のMCPクライアントが記憶を保持、呼び出し、さらに発展させることができます。一つの脳で、すべてのエージェントが共有します。あなたのClaudeとCodexがついに同じことを知り、お互いに作業を引き継ぐことさえできます。各ノートには、誰が書いたか(人間かどのエージェントか)が記載されます。上書きされることは決してありません。そしてノートは、実際の作業がそれらに依存したときに正しかったという、唯一意味のある方法で信頼を獲得します。
Obsidianでフォルダを開けば、プレーンノートが表示されます。なぜなら、それこそがその全てだからです。
クイックスタート
npx cookbook-brain init # creates ./brain with a schema note
npx cookbook-brain harvest # propose notes distilled from your recent Claude Code sessions
npx cookbook-brain harvest --apply # write the proposals the refuter kept
claude mcp add brain -- npx cookbook-brain serveあなたの脳は最初から満たされています。最初のエージェントセッションが接続する前に、harvestが最近のローカルClaude Codeのトランスクリプトを読み取り、そこにすでにある判断、落とし穴、慣習を抽出し、属性付きのノートにまとめます(以下の「Harvest」を参照。--applyを指定するまでは提案のみ行います)。
次に、エージェントに「ステージングDBは毎晩リセットされることを覚えておいて」と伝えるだけで、保存され、属性が付与され、将来のすべてのセッションで呼び出されます。それがループの全体です。
その他のコマンド:
npx cookbook-brain log # recent notes, newest first
npx cookbook-brain credit <id> # credit notes whose facts held up in real work
npx cookbook-brain tasks # open and claimed tasks, with age
npx cookbook-brain doctor # validate every note, link, chain, and task
npx cookbook-brain index # generate INDEX.md, a wikilinked view of the brain
npx cookbook-brain web # read-only local viewer at http://127.0.0.1:4321
npx cookbook-brain install-hook # every session harvests itself when it closes (report-only)脳のディレクトリは、最初に--dirフラグ、次にBRAIN_DIR環境変数、最後に./brainの順で解決されます。人間の属性情報はBRAIN_HUMANから取得され、なければOSのユーザー名が使われます。Node 20以降が必要です。
Related MCP server: clawmem-mcp-server
なぜファイルなのか
エージェントの記憶は、他人のベクターデータベースに保存されるべきではありません。ファイルならば、すべての記憶を読み取り、すべての変更をdiffし、午前2時にgrepし、gitでバックアップし、フォルダを保持することでいつでも離脱できます。ベンダーはポリシーを変更しますが、マークダウンは変わりません。
そして、いいえ、その下層にベクターデータベースはありません。具体的な理由は三つあります。埋め込みにはAPIキーとネットワーク呼び出しが必要ですが、このツールはどちらも使いません。何もディスクから出ていきません。ベクターインデックスは不透明で、grepできず、diffできず、なぜその結果を返したのか確認できません。そして、個人の脳(数百万の文書ではなく、数百のノート)の規模では、プレーンテキスト検索とリンクグラフで十分に検索できます。ベクターはコーパス規模でその複雑さの価値を発揮します。これはコーパスではなく、脳です。
フォーマット
ファイルごとに一つのノート。フロントマターには、事実に関する事実が含まれます:
---
id: 01J8ZQ4X2E5N9GVHBK3W7T1MCD
type: decision
title: Poll interval is 30s, not 10
aliases: ["Poll interval is 30s, not 10"]
author:
human: diego
agent: claude-code
created: 2026-08-18T17:20:00.000Z
supersedes: null
source: "https://status.example.com/limits"
credits: 3
last_credited: 2026-08-20T09:30:00.000Z
---
Free-tier endpoints rate-limit hard. At 10s we tripped limits on 3 of 8
targets. 30s stays under every limit tested. Related:
[[Unknown check state renders as degraded]]ノートにはタイプ(decision、gotcha、convention、note、open_thread、task)があり、人間に属性付けされ、さらにエージェントが書いた場合はそのエージェントのラベルも付与されます。オプションのsourceフィールドは、事実の出典(URL、ファイルパス、チケットID)を引用します。引用された記憶は監査可能な記憶であり、より高い信頼度上限を獲得します。すべてのノートには、自身のタイトルを保持するaliasesリストも含まれています。ファイル名は日付-スラッグ形式です。このエイリアスにより、Obsidianが[[Title]]ウィキリンクを正しいファイルに解決できるようになります(以下の「Obsidianでの使用方法」を参照)。ウィキリンクがグラフです。呼び出しは、ノートとそのバックリンク、および各言及周辺の行を返すため、エージェントは孤立した事実ではなく、繋がりのあるコンテキストを得られます。呼び出しはまた、クエリに関係なく、アクティブなconventionノートすべてをそのまま含めます。常に適用されるルールが一緒に送られるため、エージェントはそれらを検索した作業だけでなく、すべての作業に適用できます。ファイル名は<date>--<slug-of-title>.mdであり、ディレクトリは日記のように読み取れます。
決して上書きしない
ノートの更新は、古いノートを置き換える新しいノートを作成します。古いファイルは残り、superseded_by(置き換え済み)とマークされます。理由は二つあり、どちらも苦い経験から学びました。AIによる書き換えは、毎回少しずつ意味を失います。そして、履歴なしで記憶をデバッグすることはできません。あなたの脳のgitログが監査証跡です。
ノートの本文は永久に追記専用です。既存のファイル上で直接スタンプできるカウンターは正確に二つだけです。creditsとlast_creditedで、ノートに依存した作業が検証可能な形で完了したときに書き込まれます。このクレジットペアが、superseded_byスタンプと並んで、二つ目の認可された変更です。タスクノートには、タスクタイプのノードのみに、第三のスタンプセット(status、claimed_by、result、abandon_reason)が付与されます。既存のファイルのその他の部分は決して変更されません。
信頼度:信頼は主張ではなく獲得されるもの
すべての呼び出しには、信頼度スコアとティア(proven / standing / verify)が付随します。計算式は公開されており、意図的に退屈です:
score = clamp(cap - 0.10 + 0.05 * min(credits, 3) - staleness, 0.20, cap)出典が上限を設定します。 人間が書いたノートは上限0.95。エージェントノートで出典(
sourceフロントマターフィールド、source:行、または本文内のURL)を引用しているもの:0.85。出典のないエージェントの主張:0.60。繰り返しによってノートがその上限を超えることはありません。クレジットがスコアを上げます。 新しい未クレジットのノートは、上限より0.10低い位置からスタートします。ノートを呼び出した作業が検証可能に成功した場合、そのノートを
creditします(CLIの呼び出し一回、またはエージェントに完了時に実行させます)。クレジット1回につき0.05が加算され、3回で上限に戻ります。沈黙はスコアを下げます。 陳腐化は、
last_credited(一度もクレジットされていない場合はcreated)から90日ごとに0.05を差し引きます。最大0.15まで。何ヶ月も誰もクレジットしていないノートは、「確認してから信頼せよ」へと減衰します。
スコアは小数点第二位で四捨五入されます。ティア:provenは、少なくとも一度クレジットされ、かつスコア0.80以上であることを意味します。したがって、実際に完了した作業が依存したノートだけがprovenになりえます。standing(0.60以上)は信頼できます。その他はすべてverifyで、それに基づいて作業を進める前に確認が必要です。
これは、他のどの記憶システムも搭載していない部分です。記憶が「私たちは何と言ったか?」だけでなく、「これが実際に重要な場面で正しかったことはあるか?」にも答えるシステムです。
タスク:エージェント同士が作業を引き継げる
タスクは、単なる別のノート(タイプ: task)で、ステータスとアサイニーが含まれています:
"assign my codex a task: read docs/brief.md and draft the FAQ"あなたのClaudeがタスクノートを書きます。次にCodexセッションが起動して脳を呼び出すとき、そのエージェント宛てのオープンタスクがレスポンスのopen_tasksセクションに含まれています。それを要求し、作業を行い、完了します。完了こそがループを閉じるポイントです。完了したエージェントは、依存したノート(helped_note_ids)を記録し、それらのノートがクレジットされます。これが、あなたが簿記コマンドを実行することなく、記憶が信頼を獲得する仕組みです。
そして、要求したタスクがエージェントにとって手に負えない場合(アクセス権の欠如、繰り返しの失敗)、タスクを抱え込まずに放棄します。タスクはabandon_reasonに理由が記録された状態でオープンに戻り、アサイン元と次の要求者に見えるようになります。失敗の可視性は機能です。黙って腐るタスクは、大きく引き渡されるタスクより悪いものです。理由は、次に誰かがタスクを要求したときにクリアされます。
正直な仕組み:バックグラウンドプロセスはありません。アサインは、そのエージェントの次のセッションがノートを拾うまでフォルダ内で待機することを意味します。エージェントは、ホワイトボードを介してチームが協調するのと同じように、脳を通じて協調します。誰かが通りかかって読むまでは何も動きません。常時オンの要求、人間間のライブハンドオフ、実際のコスト帰属を含む領収書については、それはホスト型製品の役割です。
夢(Dreaming)
蓄積するだけの脳はやがて沈泥します。npx cookbook-brain dreamは夜間の統合パスです。重複をマージし、二度クレジットされたgotchaをconventionに昇格させ、矛盾をopen_threadとしてフラグ付けし、衝突するノートのタイトルを変更します。すべての提案は、何かが適用される前に敵対的な反駁者によってレビューされます。これはあなた自身のClaude CLIで、あなた自身のログインの下で実行されます。cookbook-brainは決してAPIキーを保持せず、独自のネットワーク呼び出しを行いません。
npx cookbook-brain dream # report-only: propose and review, apply nothing
npx cookbook-brain dream --apply # execute the proposals the refuter kept
npx cookbook-brain dream --apply --commit # then git commit the brain directory (only paths under it)
npx cookbook-brain dream --json # machine-readable report on stdout (report file still written)
npx cookbook-brain dream --dry-digest # print exactly what would be sent to the model, then exit
npx cookbook-brain dream --model <id> # pick the model; default is your claude setting夢の動作順序:
衛生スキャン(モデルなし)。 決定的なパスで、重複したアクティブタイトル、アクティブなウィキリンクでまだ参照されている置き換え済みノート、そして古く未証明のノート(verifyティア、90日以上経過)を収集します。これらの発見が次のステップの種となります。
提案者。 一回の
claude -p呼び出しが、アクティブなノートのコンパクトなダイジェスト(id、タイプ、タイトル、クレジット、経過日数、各本文の最初の280文字)を確認し、閉じたセット(merge、promote、flag_contradiction、retitle_for_collision)からのみ操作を提案する場合があります。モデルに送られる内容を正確に読みたい場合は、まず--dry-digestを実行してください。反駁者の呼び出しでは、提案が触れるノートの全文が追加で送信されます。反駁者。 新しいコンテキストと提案の記憶を持たない二回目の
claude -p呼び出しが、各提案をそのソースノートの全文に対してレビューし、keep(保持)またはreject(却下)を理由とともに返さなければなりません。判定が解析できない提案は、黙って保持されることなく、デフォルトで却下されます。反駁者の呼び出し自体が失敗したりガベージを返した場合、夢全体がrefuter: absentとマークされ、--applyが指定されていても何も適用されません。レポートは常に「異議なし」と「レビューアが現れなかった」を区別します。反駁者のプロンプトは24,000文字に制限されています。提案とそのソースノートがそれを超える場合、最大の提案はレビューから除外され、「レビューされず:大きすぎる」と記録され、決して適用されません。レビューされていない提案は決して適用されないからです。適用(指定した場合のみ)。 デフォルトはレポートのみです。
--applyを指定すると、保持された提案が可逆的に実行されます。マージは、consolidatesフィールドにソースIDのリストを含む新しいノートを1つ書き込み、各ソースにsuperseded_byスタンプを押します。昇格も同様にconventionへの書き込みです。矛盾は通常のopen_threadノートとしてファイルされます(両方のノートを参照するアクティブなopen_threadがすでに存在する場合はスキップされるため、同じ競合が二度フラグ付けされることはありません)。タイトル変更は単純な置き換えです。適用中はbrain/.lockファイルが保持されます。MCP書き込みツールはそれが解除されるのを待ち、読み取りは決してブロックされず、10分以上経過したロックは古いもの(クラッシュした適用)と見なされ、警告とともに上書きされます。夢の取り消しは、そのコミットに対するgit revertです。夢はファイルを追加し、superseded_byスタンプを押すだけだからです。--commitを追加すると、成功した適用がその下のパスのみに触れて脳ディレクトリをコミットします。
各夢は、brain/dreams/DREAM_<date>.mdにレポートを書き込みます(ノートスキャナーが決して読み取らないサブディレクトリ)。ダイジェスト統計、衛生スキャンの発見、各提案とその根拠、各反駁者の判定とその理由、必須のrefuter: ranまたはrefuter: absent行、適用されたもの、そして元に戻す方法が含まれます。
注目すべき特性が一つあります。夢が書き込んだノートの作者は{ human: you, agent: "dream" }であり、エージェントのみの出典上限が適用されます。脳は、作業によって証明されるまで、自身の夢を信用しません。夢でマージされたノートは、他の出典のないエージェントの主張と同様に低い信頼度からスタートし、実際の作業がそれに依存したときに正しかった場合にのみ、スコアを上げていきます。
毎晩、必要なら
夢は、あなたが寝ている間に実行されるように設計されています。シンプルなcrontab行で実現できます:
15 3 * * * cd /path/to/your/project && npx cookbook-brain dream >> brain/dreams/cron.log 2>&1--applyを省略してレポートをコーヒーを飲みながら読むか、反駁者のセンスを信頼したら追加します。どちらにせよ、その後脳をコミットして、すべての夢が一つのrevert可能なコミットになるようにしてください。--apply --commitがそのコミットを実行します。
Harvest:あなたの脳は最初から満たされている
新しい脳は、あなたの実際の判断の数週間分がローカルのセッショントランスクリプトに眠っているのに、空から始まるべきではありません。npx cookbook-brain harvestは、最近のClaude Codeセッションを読み取り、それらを原子的なノートに蒸留し、すべての提案を夢をレビューするのと同じ敵対的反駁者にかけます。これが、初日に脳をブートストラップし、忙しい一週間の後に補充する方法です。
npx cookbook-brain harvest # report-only: propose notes from the last 7 days
npx cookbook-brain harvest --days 30 # scan further back
npx cookbook-brain harvest --project myapp # only sessions whose working directory basename matches
npx cookbook-brain harvest --apply # write the notes the refuter kept
npx cookbook-brain harvest --session <id> --since-last # one session, only messages newer than its watermark
npx cookbook-brain harvest --dry-digest # print exactly what would be sent to the model, then exit
npx cookbook-brain harvest --json # machine-readable report on stdout (report file still written)
npx cookbook-brain harvest --sessions <path> --model <id> # override the transcripts root and the modelあなたが尋ねるべき質問への率直な答え:
読み取るもの。
~/.claude/projects配下のローカルな Claude Code のトランスクリプト(--sessionsで上書き可)、直近 N 日分です。そして、メッセージの内容(人間の発言とアシスタントの主要な結論)も読み取ります。なぜなら、内容を抽出することが本質だからです。ウィンドウはメッセージごとのタイムスタンプに適用されるため、何ヶ月も開きっぱなしのセッションファイルも、ウィンドウ内のメッセージだけが抽出され、履歴全体が抽出されることはありません。ツールの通信、サブエージェントのトランスクリプト、そしてツール自身のclaude -pの実行(harvest と dream の呼び出し。プロンプトマーカーで検出)はスキップされます。これはメタデータだけを扱うツールとは正反対の設計であり、ここに明記することで、後になって驚くことがないようにしています。送信先。 圧縮されたセッションごとのダイジェストは、あなた自身のログインしている
claudeCLI(元のセッションを生成したのと同じツール)に送信されます。API キーは不要で、他のネットワーク呼び出しも行われず、あなたのclaudeログインが既に使用している経路以外でマシンの外にデータが出ることはありません。--dry-digestを指定すると、実際に送信されるプロンプトが出力されます。書き込むもの。 デフォルトでは何も書き込みません。
brain/dreams/HARVEST_<date>.mdにレポートが作成され、すべての提案、重複スキップ(すでに脳が保持している事実)、およびリフュータ(反論者)の判定(必須のrefuter: ranまたはrefuter: absent行を含む)が一覧表示されます。未レビューの harvest は、--applyを指定しても何も適用しません。ノートを書き込むのは--applyのみで、適用された harvest は新しいファイルを追加するだけなので、元に戻すにはgit revertまたはリストされているファイルを削除します。信用度の低さという特性。 収穫されたノートの著者は
{ human: you, agent: "harvest" }となり、各本文の末尾にはsource:行が付き、抽出されたスライスの実際のメッセージ日付範囲を含むセッションが引用されます(例:source: session 2026-08-15, project cookbook-app、または長期間のセッションの場合はsource: session 2026-08-12 to 2026-08-18, project phonestack)。この引用により、通常のソース検出を通じて、ソース付きエージェントの信頼度上限(0.85)が与えられます。特別な処理は一切ありません。脳は、自身のブートストラップを素の主張よりは信頼しますが、あなたよりは信頼しません。実際の作業によってノートの信頼度が上方修正されるまでは。
2 つのフラグを使用すると、harvest を一括実行ではなく、ピンポイントで実行できます。--session <id> は特定の 1 つのトランスクリプトのみを収穫します(日付ウィンドウは依然として適用され、このモードではデフォルトで 2 日間と幅広く設定されます)。--since-last は harvest を増分実行にします。brain/dreams/harvested.json(セッション ID から、harvest が最後に抽出したメッセージのタイムスタンプへのマップ)からセッションごとのウォーターマークを読み取り、各ウォーターマークより新しいメッセージのみを抽出するため、何ヶ月も開きっぱなしのセッションファイルでも古いコンテンツが再抽出されることはありません。レポートのみの実行を含む、成功した harvest ごとにウォーターマークが更新されます。失敗した、または解析不能なモデル呼び出しではウォーターマークは更新されないため、コンテンツが黙って失われることはありません。このファイルは dreams/ 配下にあり、ノートスキャナーはこれを読み取らず、削除すると次の harvest は通常の日付ウィンドウから開始されます。
自動収穫:セッションが自分自身を蒸留する
1 つのコマンドで、すべての Claude Code セッションが終了時に自分自身を収穫するようになります。
npx cookbook-brain install-hookこれにより、~/.claude/settings.json に SessionEnd フックが精密に登録されます。つまり、ファイルが解析され、1 つのエントリだけがマージされ、他のすべてのキーとフックは保持され、ファイルが解析できない場合はコマンドは書き込みを拒否します。これ以降、セッションが終了するたびに、フックは SessionEnd ペイロードを読み取り、そのセッションのワーキングディレクトリを対象として、以下のコマンドを DETACHED(切り離し)バックグラウンドで起動します。
cookbook-brain harvest --session <that session> --since-last --jsonそしてすぐに終了するため、セッションの終了が遅延することはありません。--since-last ウォーターマークにより、長期間のセッションも常に増分的にのみ抽出されます。つまり、閉じるたびに、前回の収穫以降に発生したことだけが蒸留されます。
改めて、率直な答えを示します。
常にレポートのみ。 フックは設計上かつハードコードによって適用できません。無人でのメモリへの書き込みには、まずあなたの目が必要です。保持された提案はレポートに蓄積され、
cookbook-brain logの最後に、最近のレポートに未適用の保持提案がある場合、2 harvest report(s) with unapplied keeps: review with cookbook-brain harvest --applyのような行が表示されます。コーヒーを飲みながら確認し、同意したら適用してください。重複排除により、既知の事実が 2 回保存されるのを防ぎます。出力先。 各実行は JSON レポートを
~/.cookbook-brain-autoharvest.logに追加し、Markdown レポートは他の harvest と同様にbrain/dreams/HARVEST_<date>.mdに保存されます(webビューアでも表示されます)。脳ディレクトリはセッション自身のワーキングディレクトリ(./brainまたはBRAIN_DIR)から解決されるため、脳を持たないプロジェクトのセッションでは、丁寧な失敗ログが記録され、何も変更されません。正直なコストに関する注意。 セッション終了時に、あなた自身の
claudeCLI ログイン上で最大 2 回のモデル呼び出し(提案者と反論者)が発生します。これらは切り離されて実行されるため、終了は瞬時ですが、あなたのアカウントで実際の呼び出しが発生します。軽減策は構造的に組み込まれています。ウォーターマーク以降に新しい内容がないセッションは、モデル呼び出しの前に終了します。また、ツール自身のclaude -p実行(harvest と dream の呼び出し)はプロンプトマーカーによって検出され完全にスキップされるため、自動収穫が自分自身を再帰的に呼び出すことはありません。元に戻すのは 1 コマンド。
npx cookbook-brain uninstall-hookは cookbook-brain のエントリのみを削除し、他のすべての設定とフックはそのまま残します。既に実行中のセッションは、次回の再起動時に双方向でその変更を認識します。
これは何ではないか
ベクターデータベースではありません(上記「なぜファイルなのか」を参照。オプションで埋め込みが後日追加される可能性はありますが、必須になることはありません)。
ホスト型サービスではありません。1 つの脳、1 人の所有者、任意の数のあなたのエージェント。
チャットログではありません。アトミックで意図的なノートを保存します。トランスクリプトは保存しません。
harvestでさえ、あなたのセッションを読み取り、単一の事実ノートに蒸留し、トランスクリプトを保存することはありません。
チームで脳を共有できますか?
リポジトリは通常のリポジトリと同じように共有できます。注意深い 2 人なら、半分は機能します。しかし、共有メモリの信頼性を損なう問題が生じます。ライブ同期がない(誰かがプルするまで古いノートを参照する)、同時書き込みはマージ競合を引き起こす、そして帰属(アトリビューション)を強制するものが何もない(誰でも任意のファイルを編集でき、そのクレジットも含めて)。誰でも静かに書き換えられる記録は、記録とは言えません。
強制された帰属、ライブ同期、アトミックなタスククレーム、そしてチーム全体でメモリをクレジットするレシートには、人々が迂回できないサーバーが必要です。それが私たちが販売する製品です。cookbook.team はマルチプレイヤーの脳です。このリポジトリはシングルプレイヤーのものであり、その仕事において正直なところ非常に優れています。
cookbook-brain と Obsidian
脳フォルダは、通常のボールトとして Obsidian で開くことができます。Wiki リンクが機能し、グラフビューはエージェントの知識を描画し、バックリンクもそのまま動作します。Obsidian は、この形式のためにこれまでに作られた中で最高のリーダーであり、あなたの脳をぜひ Obsidian で開くべきです。
では、Obsidian ボールトと既存のボールト MCP サーバーの組み合わせに対して、これは何を追加するのでしょうか?それらのサーバーはドアを開けます。エージェントはあなたのノートを読み取り、編集し、削除できます。このツールは、そのドアを通り抜けるものに対する規律を追加します。ボールトサーバーはエージェントがあなたのノートを上書きすることを許します。ここでは、すべての変更は新しい帰属付きノートであり、古いノートを置き換えます。ボールトノートはすべて永久に等しく信頼されます。ここでは、ノートは出典(プロベナンス)を持ち、成果から信頼度を獲得します。そして、ボールトはあなたのどのエージェントが何を書いたか、またはどのように作業を引き継ぐかを全く認識しません。ここでは、それが全ての要点です。
Obsidian はあなたが脳を読む場所です。cookbook-brain は、あなたのエージェントがそれを台無しにするのを防ぐものです。
Obsidian での使用方法
ボールトとして開く
Obsidian の「フォルダをボールトとして開く」機能を使って、脳ディレクトリ(またはそれを含む任意のフォルダ)を開きます。基本的な機能にはプラグインは不要です。Wiki リンクは解決され、グラフビューはエージェントが知っていることを描画し、バックリンクもそのまま動作します。
リンクが解決される理由:エイリアス
ファイル名は日付スラッグ形式(2026-08-18--poll-interval-is-30s.md)ですが、ノート本文はタイトルでリンクします([[Poll interval is 30s]])。橋渡しをするのは aliases フロントマター項目です。すべてのノートは自身のタイトルをエイリアスとして持ち、Obsidian はエイリアスを通じて Wiki リンクを解決します。cookbook-brain 0.5 以前で書かれたノートにはこのフィールドがありません。cookbook-brain doctor がそれらを警告し、次のコマンドを実行します。
npx cookbook-brain doctor --fix-aliasesこれにより、aliases: [<title>] がこのフィールドがないすべてのアクティブなノートにスタンプされます。このスタンプは正式に認められたフロントマター追加であり、SCHEMA.md に supersede スタンプや credit スタンプとともに文書化されており、本文には一切触れません。
プロパティビュー
Obsidian はフロントマターをプロパティとして読み取ります。任意のノートを開くと、type、author、created、credits、last_credited、そしてタスクの場合は status、assigned_to、claimed_by、result が表示されます。これにより、Obsidian の検索とプロパティパネルは、脳のメタデータに対する自由なクエリインターフェースになります。
ボールト内の脳
既にボールトをお持ちですか?脳をそのサブフォルダに置き、ツールにそれを指定します。
npx cookbook-brain init --dir ~/Vault/brain
claude mcp add brain -- npx cookbook-brain serve --dir ~/Vault/brainすると、あなたのエージェントのメモリはあなた自身のノートと共存し、ボールトのノートは他のノートと同様に脳のノートにリンクでき、BRAIN_DIR は環境変数を使いたい場合も同様に機能します。スキャナーはそのフォルダ内のトップレベルの .md ファイルのみを読み取るため、ボールトの残りの部分には一切触れません。
手動編集
あなたのファイルです。自由に編集してください。追記専用の規律はエージェントのツールにのみ適用され、あなたの手を縛るものではありません。タイプミスを修正したり、本文を言い換えたり、不要なノートを削除したりしても構いません。それはあなたの脳です。上書き禁止ルールは、AI が静かに歴史を書き換えるのを防ぐためのものであり、あなたを締め出すためのものではありません。大規模な手動編集の後は、cookbook-brain doctor がリンク、supersede チェーン、またはタスクに問題がないか教えてくれます。
Dataview スニペット
これらはコミュニティプラグインの Dataview が必要です。脳フォルダの名前が異なる場合は、FROM "brain" を調整してください。
すべてのクレジット付き決定(検証済みティアに最も近いフロントマターのみのプロキシ。正確なティア計算には信頼度の式が必要であり、web が表示します):
```dataview
TABLE credits, last_credited, author.agent AS agent
FROM "brain"
WHERE type = "decision" AND credits >= 1 AND !superseded_by
SORT credits DESC
```クレジットされていない落とし穴(記録されたが、実際の作業でまだ確認されていない罠):
```dataview
TABLE created, author.agent AS agent
FROM "brain"
WHERE type = "gotcha" AND credits = 0 AND !superseded_by
SORT created ASC
```アサイン先ごとの未完了タスク:
```dataview
TABLE assigned_to, abandon_reason, created
FROM "brain"
WHERE type = "task" AND status = "open" AND !superseded_by
SORT assigned_to ASC
```ホームページとティアビュー
npx cookbook-brain index を実行すると、脳のルートに INDEX.md が生成されます。すべてのアクティブなノートが Wiki リンクとして、タイプごとにグループ化され、規則が最初に表示され、各ノートにはティアとクレジットが付きます。これは優れたボールトのホームページになります。これはビューであり、ノートではないため、再生成によって上書きされ、スキャナーは無視します。そして、Obsidian が表示しない唯一のもの、つまりライブの信頼度とティアの計算については、npx cookbook-brain web を実行してください。http://127.0.0.1:4321 で読み取り専用のビューアが開き、信頼度バー、ティアバッジ、タスクボード、そして dream と harvest のレポートが表示されます。
チームの準備ができたら
あなたの脳と cookbook.team は同じ言語を話します。同じノートタイプ、同じティア、同じソース規律、同じタスク動詞です。したがって、移行は両方に接続されたエージェントへの 1 つの指示で完了します。脳内のすべてのアクティブなノートを読み取り、同じタイプ、タイトル、本文、ソースでチームのワークスペースに記憶してください。帰属は引き継がれます。あなたの規則は、ノートが着地した瞬間からすべてのチームメイトの想起に適用され始めます。
クレジットは意図的に移行されません。チームの信頼度はチームの成果から獲得されるものであり、インポートされた主張は、チームの作業によって証明されるまで、引用されたエージェントの信頼度で開始されます。「証明されるまで信頼しない」という原則は、移行自体にも適用されます。
アップグレード後も脳は維持してください。多くの人は両方を望むでしょう。個人のコンテキストには脳、チームのコンテキストにはワークスペース。それらは競合するものではなく、異なるレベルです。
謝辞と正直なマップ
Mem0、Zep、Letta は、このツールにはない機能(管理されたスケール、時間グラフ、エンタープライズ機能)を備えた優れたホスト型/インフラ型メモリレイヤーです。QM はチーム向けのスコープ付き個人メモリを提供します。cookbook-brain は 3 つの軸で異なります。メモリはサービスの行ではなく、あなたが所有するファイルであること、すべてのノートは帰属付きで追記専用であること、そして信頼度は書き込み時に主張されるのではなく、成果から獲得されることです。管理されたメモリ API が必要なら、それらを使ってください。読める脳が必要なら、これを使ってください。
なぜこれを構築したか
cookbook.team では、マルチプレイヤーバージョンを構築しています。それは、チームの人間とエージェントがひとつのボードで作業し、ひとつの頭脳を共有し、すべてのタスクが使用したメモリをクレジットする領収書を発行する共有ワークスペースです。cookbook-brain はそのメモリ層であり、シングルプレイヤー、無料、あなたのものです。あなたのチームがいつか共有バージョンを必要としたなら、キッチンがどこにあるかはご存じでしょう。
MIT, copyright Diego Prozzi.
This server cannot be deployed
Maintenance
Related MCP Connectors
One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Cloud-hosted MCP server for durable AI memory
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
An MCP memory server. One memory your agents share — across models, devices and apps.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that gives AI assistants persistent memory across sessions. It stores project context, decisions, and progress in structured markdown files as well as a knowledge graph and sequential thinking for better memory storage.3634 npm1MIT

clawmem-mcp-serverofficial
AlicenseBqualityDmaintenanceAn MCP server that leverages a GitHub-compatible API as a durable memory store for AI agents, enabling automatic memory storage, recall, and management without requiring signup or API keys.392 npmMIT- AlicenseAqualityCmaintenanceA self-hosted MCP server that gives AI agents shared, long-term memory over a git-backed folder of markdown, enabling persistent knowledge search, read, and write without a database.1635 npm18MIT
- AlicenseNot gradedqualityBmaintenanceMCP server providing persistent, local-first memory for AI agents via Markdown files in a git repo, with search, branching, and auditability.2 npm2MIT