exomemory2
日本語 |
English
Claude との会話から、Claude 自身が自動で wiki を育てる外部記憶
Andrej Karpathy の LLM Wiki パターンを Claude Code プラグインとして実装した、Claude 向け外部記憶システム。
主眼は自動化。セッションを終えるたびに会話が vault の raw/ に保存され、閾値を超えると Claude がバックグラウンドで相互リンクされた Markdown wiki にコンパイルしていく。ユーザーは何もしなくても、会話を重ねるほど知識グラフが育つ。
手動の /wiki-ingest / /wiki-query コマンドも提供するが、これは補助的な位置づけ — 外部ソース(論文や Web クリップ)を raw/ に投入して明示的に取り込んだり、蓄積された wiki に直接問い合わせたい時のためのもの。
Contents
Requirements
| 項目 | 用途 |
|---|
jq | capture hook が transcript JSON の抽出に使用(必須) |
python3 | /wiki-init のパス展開で使用(macOS / 主要 Linux には標準同梱) |
| Obsidian | 強く推奨。技術的には optional(vault は純 Markdown なのでどのエディタでも開ける)だが、Karpathy の原典 gist が想定する UX(Graph View / Backlinks / Web Clipper / Dataview)は Obsidian でしか成立しない。入れずに使うのは「LLM wiki パターンの半分を捨てる」ことに近い |
Install
Claude Code 内で以下を実行:
/plugin marketplace add hananana/exomemory2
/plugin install exomemory2@exomemory2
Obsidian (recommended frontend)
exomemory2 の vault は純粋な Markdown なのでどのエディタでも閲覧・編集できるが、Karpathy の原典が想定する体験(Graph View、Backlinks、Web Clipper、Dataview)を得るには Obsidian が最短経路。
Install
Open the vault
Obsidian 起動 → "Open folder as vault" → /wiki-init で作成した vault パスを指定。
What the bundled preset enables
/wiki-init で作成される vault には .obsidian/ が同梱されており、以下が初期設定済み:
- コアプラグイン enable: Graph view、Backlinks、Outgoing links、Tag pane、Properties、Page preview など
- Graph View の色分け:
wiki/sources/ → 青
wiki/entities/ → 緑
wiki/concepts/ → 橙
Recommended community plugins
Obsidian 側で別途インストールが必要(本プラグインの管轄外):
- Dataview —
type: entity や tags: などの YAML frontmatter を SQL 的にクエリ
- Obsidian Web Clipper — ブラウザ拡張。web 記事を vault の
raw/web/ 配下に保存するよう設定すれば、後で /wiki-ingest raw/web/ で一括取り込み可能
Quick start
1. Create a vault
/wiki-init
デフォルトで ~/vault に WIKI.md、raw/、wiki/、.obsidian/(推奨プリセット)を含む vault スケルトンが生成される。別パスを使いたい場合は /wiki-init ~/vault-personal のように引数で指定する。
2. Set EXOMEMORY_VAULT
auto-capture hook は環境変数しか見ないので、これを設定しないと会話の自動保存が動かない。~/.zshrc 等に追記:
export EXOMEMORY_VAULT=~/vault
3. Open the vault in Obsidian
Obsidian 起動 → "Open folder as vault" → ~/vault(上で作ったパス)。同梱プリセットで Graph View の色分け(sources 青 / entities 緑 / concepts 橙)や推奨コアプラグインが自動で有効になる。Obsidian 未導入の場合の入れ方・プリセットの詳細は上の Obsidian セクション参照。
以降は Claude を普段通り使うだけ
/compact やセッション終了のたびに会話が raw/handovers/ に保存され、一定量溜まるとバックグラウンドで Claude が wiki に取り込む。Obsidian の Graph View を開いておくと知識が育つ様子が見える。
wiki から何か思い出したいとき
蓄積された wiki に直接問い合わせるには /wiki-query を使う:
/wiki-query "先週の auto-ingest のバグ調査で何が分かったっけ?"
Claude が関連ページを [[wikilink]] 引用付きで合成して答える。外部ソース(論文・Web クリップ)の手動取り込みは Commands 参照。
Commands
| コマンド | 用途 |
|---|
/wiki-init [<vault-path>] | 新規 vault のスケルトン作成(省略時は ~/vault) |
/wiki-ingest [<file-or-dir>] [--vault <path>] | raw ソースを wiki ページへコンパイル(引数省略で raw/ 全体をスキャン) |
/wiki-query <question> [--vault <path>] [--save] | wiki から合成回答を生成 |
Auto-capture
プラグイン hook が Claude との会話を自動的に <vault>/raw/handovers/ に書き出す。詳細:
Trigger timing
| イベント | hook | 説明 |
|---|
/compact コマンド実行 | PreCompact | コンテキスト圧縮の直前に発火(圧縮で失われる情報を保存するタイミング) |
| セッション終了 | SessionEnd | /exit、ターミナル close、Claude Code 終了で発火 |
When it doesn't fire
/clear コマンド: 対応 hook が存在しない(Claude Code の既知制約)。clear 前に手動で /compact を走らせれば capture される
- Ctrl+C による強制中断: hook は走らない
- Claude Code のクラッシュ: hook は走らない
$EXOMEMORY_VAULT 未設定: hook は silent skip(stderr に警告のみ)
- vault に
WIKI.md が無い: 同じく silent skip
File naming
<vault>/raw/handovers/<session-id>.md