Yggdrasil について
Yggdrasilは、セッションやツールをまたいでプロジェクトの決定事項を保持したい開発者向けの、コーディングエージェント用ローカル永続メモリMCPサーバーです。SQLiteとMarkdownに保存し、キーワード検索に加えて、任意でセマンティック検索やバックグラウンド整理を利用できます。
主な機能
- 01セッション間で永続メモリを共有
- 02SQLiteとFTS5によるキーワード検索
- 03任意のローカルモデルによる意味検索
- 04メモリをMarkdownで保存
- 05MCPツールでメモリ操作を提供
- 06リンクした端末間で直接同期
活用シーン
- 01新しいコーディングセッションにプロジェクト情報を引き継ぐ
- 02別プロジェクトの関連経験を検索
- 03会話記録やObsidianからメモリを取り込む
- 04接続した端末間でローカルメモリを同期
MCP 対応
YggdrasilはMCPサーバーとして、メモリの検索、想起、保存を行うツールを提供します。インストーラーは検出したエージェントホストにツールを登録できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx yggdrasil-memoryYGG_ENGINE_URLBase URL of the Yggdrasil engine HTTP API.YGG_ENGINE_TOKENシークレットBearer token for authenticating to the Yggdrasil engine (from ~/.yggdrasil/token after `ygg install`).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
6掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
🌳 Yggdrasil
新しい AI セッションのたびに、プロジェクトについて説明し直すのはもうやめましょう。
Claude Code、Codex、あらゆる MCP エージェントで共有できるローカルメモリです。セッション、ツール、プロジェクトをまたいで利用できます。依存関係はゼロ。マシンの外にデータが出ることはありません。
インストール · 仕組み · 数値 · 比較 · よくある質問
こちらの言語でも読めます:Русский · 简体中文 · Español · Français · 日本語 · Deutsch
新しいチャットを始めるたびに、AI はすべてを忘れてしまいます。プロジェクトのこと、決定事項、注意点を、使うツールごとに毎回説明し直すことになります。Yggdrasil は、あらゆるエージェントが接続できる、常時稼働する小さなメモリです。 どのプロジェクトでも、どの AI でも、新しいセッションを開けば、決定したこと、問題が起きたこと、まだ対応中のことをすでに把握しています。
$ cd ~/projects/checkout-api && claude # a brand-new session
🌳 Yggdrasil (injected automatically at session start)
• [project_status] payments refactor: idempotency keys added; open: e2e tests
• [lesson] webhook 401 → signing secret rotated; update env + redeploy
> "have I solved a flaky websocket reconnect anywhere before?"
🌳 recall → found in project `realtime-dash`:
refresh the token *before* opening the socket, then retry with capped backoff.
「昨日の作業内容を思い出させてください」と言う必要はありません。すでにそこにあります。
🚀 インストール
Claude Code 内で、2 つのコマンドを実行します(プラグインは uv 経由で起動します)。
/plugin marketplace add VonderVuflya/Yggdrasil
/plugin install yggdrasil
エンジンは初回使用時に遅延起動し、独自のローカルトークンを生成します。API キーもクラウドも不要で、設定もありません。Codex と Cursor も同じ手順で使えます。
その他すべての方法 — CLI デーモン、Homebrew、npm、Claude Desktop、ソースからのインストールなど
| ホスト/ツール | コマンド |
|---|---|
| uvx (CLI 推奨) | uvx --from yggdrasil-memory ygg install |
| npm / npx | npx yggdrasil-memory install |
| pipx | pipx install yggdrasil-memory && ygg install |
| pip | pip install yggdrasil-memory && ygg install |
| Homebrew (macOS) | brew install VonderVuflya/tap/yggdrasil && ygg install |
| Claude Desktop (アプリ) | 最新リリースの.mcpbをSettings → Extensionsにドラッグし、トークン(ygg token)を貼り付けます。デスクトップアプリは、CLI エージェントと同じメモリを共有します(ガイド)。 |
| ソースから | uvx --from git+https://github.com/VonderVuflya/yggdrasil.git ygg install |
ygg installは一度だけ行うガイド付きセットアップです。常時稼働するバックグラウンドサービスをインストールし、検出したすべてのエージェントホスト(Claude Code、Codex、OpenCode)に MCP ツールを登録します。ハードウェアが対応していれば、オプションのローカルモデルも提案します(設定不要のまま使うにはnoneを選択してください)。
OpenCode — 設定は不要です
まずOpenCodeをインストールし、その後ygg installを実行します(Yggdrasilのセットアップがすでに済んでいる場合はygg redeployを実行します)。エントリは自動で書き込まれ、既存のopencode.jsonがあればその内容にマージされます。次のコマンドで確認できます。
opencode mcp list # -> ✓ yggdrasil connected
Yggdrasilのインストール後にOpenCodeをインストールした場合は、ygg installを再実行するだけです。
手動で設定する場合は、OpenCodeのスキーマはClaudeのものと4点異なるので注意してください。サーバーはmcp(mcpServersではありません)の下に置き、typeは必須です。また、commandはcommandとargsの組み合わせではなく単一の配列で、環境変数はenvではなくenvironmentで指定します。そのため、Claudeの設定例はそのまま使えません。
// ~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"yggdrasil": {
"type": "local",
"command": ["/path/to/python3", "~/.yggdrasil/scripts/ygg_mcp_server.py"],
"enabled": true,
"environment": { "YGG_ENGINE_URL": "http://127.0.0.1:42069" }
}
}
}
設定にトークンを記述する必要はありません。エンジンが0600の~/.yggdrasil/tokenを直接読み込みます。ツールが表示されない場合は、ygg doctorを実行してください。
Claudeのあらゆる環境で使えるyggdrasil-memoryスキルもあります。MCPがツールを接続し、スキルがエージェントにツールをいつ使うかを教えます。最適な動作のために両方を使ってください。
何もインストールせず、一時的なDBで試すには、次を実行します。uvx --from yggdrasil-memory ygg serve --reset --db /tmp/ygg.sqlite
あとは、いつもどおり作業するだけです。エージェントに「このプロジェクトについて決めたことを思い出して」と尋ねたり、「この決定を覚えておいて」と伝えたりすれば、次のセッションでもその内容を利用できます。ygg doctorを実行すれば、いつでもインストールを確認できます。
すでに履歴がある場合は、既存のClaude CodeとCodexのトランスクリプト、Obsidianの保管庫、CLAUDE.mdを含むリポジトリから、ローカルで要約してメモリに取り込めます。
ygg seed --dry-run # see what it would import; drop the flag to distill for real
別のメモリツールから移行する場合は、ygg import --from mcp-memory --path memory.jsonを実行すると、そのツールのストア全体をYggdrasilに取り込めます(重複排除、シークレット保護対応)。その後、元のツールを削除できます。
理由
- 🧠 永続性 — 決定事項、教訓、プロジェクトの状況をセッション間で維持します。
- 🔌 1つの頭脳を、あらゆるツールで — Claude Code、Codex、OpenCode、およびあらゆるMCPホストが同じメモリを共有します。
- 🌐 プロジェクトをまたいだ想起 — 「これはプロジェクトBでやったことに似ています。再利用しますか?」
- 🧹 記録するだけでなく、厳選 — エージェントは重要なことだけを保存し、ガバナンス機能が重複を排除してアーカイブします。削除はしません。
- 🌱 自己メンテナンス (オプトイン) — 小規模なローカルモデルがバックグラウンドでメモリを統合します。APIトークンは不要です。
- 🪪 どこでも同じアイデンティティ — オプションで名前とペルソナを設定すると、すべてのエージェントがそれを引き継ぎ、Claude CodeとCodexが同じアシスタントのように感じられます。
- 🔒 100%ローカル — メモリはご利用のマシン上に保存されます。クラウドも、アカウントも、テレメトリもありません。
🧠 仕組み
Yggdrasil はメモリ+ツールです。インテリジェンスを担うのは LLM です。適切なタイミングで、適切なエージェントに適切なメモリが提示されるようにするだけです。
- 🛎️ 常時稼働するデーモン — エージェントが MCP ツール(
ygg_search、ygg_recall、ygg_remember…)を介して接続する、小さなローカルサービスです(RAM 使用量は約 21 MB)。 - 🪝 フック — セッション開始時に、アイデンティティ、プロジェクトの状況、未完了のフォローアップを自動で注入します(約 300 トークン)。オプションのプロンプトごとのフックを使うと、各リクエストに関連するメモリを自動で呼び出せます。
- 📌 ランキング — ピン留めされたメモリや、頻繁に呼び出されるメモリが最初に表示されます。
- 🧹 ガバナンス — 重複や競合はレビュー待ちのキューに入れられます。変更は非破壊的で、削除せずにアーカイブします。
- 📓 Obsidian — すべてのメモリは、読み取り、編集、grep ができるプレーンな Markdown ノートとしても利用できます。
🎛️ メモリ階層 — デフォルトで設定不要
初期状態では、Yggdrasil は 依存関係なしで SQLite + FTS5 上で動作します。キーワード検索をすぐに利用でき、モデルもダウンロードも不要です。オプションのローカルモデルを追加すると、独立した 2 つの階層を利用できます。
| 階層 | 追加するもの | 得られるもの |
|---|---|---|
| 0 · デフォルト | 何もなし — SQLite + FTS5 | キーワード検索、依存関係なし、即時利用可能 — recall@1 = 0.77 |
| 1 · セマンティック | 埋め込みモデル(all-minilm 45 MB · paraphrase-multilingual 約 560 MB) | 言語をまたいだ意味による検索 — recall@1 = 0.94、recall@3 1.00 |
| 2 · 自己メンテナンス | 小型の LLM(qwen2.5:1.5b 約 1 GB) | バックグラウンドでメモリを重複排除/統合(提案のみ) |
ランタイムはベクトルの計算とバックグラウンドモデルの実行のみを行います。すべてのメモリとベクトルは、同じローカル SQLite 内に保存されます。
ygg install は Ollama、LM Studio、llama.cpp を検出し、インストール済みでアイドル状態のものがあれば起動を提案します。その後、用途ごとにメニューを表示します。すでにあるモデルは緑色、ダウンロードが必要なモデルは赤色で示されます。項目を選ぶと、embed_backend、embed_url、distill_url が設定されます。embed_url には /v1 を含むベース URL が必要で、distill_url にはホストのルートが必要という、誰もが迷いがちな点も自動で設定されます。別のマシン上のランタイムは URL を 1 つ指定するだけです。貼り付けると、接続方式が自動判定されます。ygg recommend は同じ検出結果と、変更を加えずにカタログ全体を表示します。
モデルメニュー全体
埋め込み(セマンティック検索):
| モデル | サイズ | 適した用途 |
|---|---|---|
all-minilm | 45 MB | 英語、小型で高速 |
nomic-embed-text | 274 MB | 英語、より高品質(768d) |
mxbai-embed-large | 670 MB | 英語、高品質(1024d) |
paraphrase-multilingual | 約 560 MB | 多言語(EN/RU + 50 言語、768d) |
bge-m3 | 1.2 GB | 多言語、最高品質(より高負荷) |
埋め込みバックエンド — デフォルトは Ollama です。ランタイムを選ぶと、ygg install がこれらをすべて設定します。以下の手動設定は、スクリプトを使ったセットアップや、後から個別の設定を変更する場合に使用します。代わりに OpenAI 互換の /v1/embeddings サーバー(llama.cpp の llama-server --embeddings、OpenRouter、LM Studio、vLLM)を使うには、embed_backend を設定します。
# local llama.cpp — no key needed
ygg config set embed_backend openai
ygg config set embed_url http://127.0.0.1:8080/v1
ygg config set embed_model bge-small-en-v1.5
ygg redeploy
# OpenRouter — free embeddings, no GPU needed
ygg config set embed_backend openai
ygg config set embed_url https://openrouter.ai/api/v1
ygg config set embed_model nvidia/llama-nemotron-embed-vl-1b-v2:free
ygg config set embed_api_key sk-or-... # or export YGG_EMBED_API_KEY
ygg redeploy
キーは config.json ではなく ~/.yggdrasil/embed_api_key(0600)に保存され、デーモンにはファイルパスとして渡されます。そのため、ps、launchd の plist、systemd のユニットに表示されることはありません。ygg config list ではマスクされます。
ygg doctor で設定を確認してください。dense にモデル名が表示されます。
✓ dense active (nvidia/llama-nemotron-embed-vl-1b-v2:free)
LM Studio や OpenRouter を手動で接続しますか?注意点(2 種類の URL 形式、モデル ID、JIT 読み込み、推論キーとプロビジョニングキー、プライバシーフィルター)については、docs/model-backends.md をご覧ください。
品質とプライバシーの両面で、ローカル実行が優れています。232 件のメモリ/110 件のクエリからなるコーパスでは、ローカルの paraphrase-multilingual の recall@1 は 0.964 で、無料のホスト型モデルの 0.946 を上回ります。さらに、メモリがマシンの外に出ることもありません。ホスト型バックエンドは、Ollama を実行できないマシンで使うものであり、精度向上を狙って使うものではありません。
ベクトルを大きくしても、この場合は精度が上がりません。同じコーパスでのスコアは、mxbai-embed-large(1024d)が 0.809、nomic-embed-text(768d)が 0.818 で、その差は信頼区間内にすっかり収まります。実際にスコアを左右するのは、モデルが使用する言語に対応しているかどうかです。どちらも英語専用で、言語をまたぐクエリでは 0.40~0.45 まで低下しますが、多言語対応のデフォルトモデルでは 0.95 を維持します。
バックグラウンドでの統合(小型 LLM):
| モデル | サイズ | 適した用途 |
|---|---|---|
qwen2.5:0.5b | 約 400 MB | 小型で CPU 上でも高速 |
qwen2.5:1.5b | 約 1 GB | CPU 向けの最適なデフォルト |
llama3.2:3b | 約 2 GB | より高品質、CPU 上では低速 |
エンジン自体は差し替え可能です。MemoryBackend の契約を満たすサービスなら、ドロップインで利用できます(YGG_ENGINE_URL)。詳しくは docs/backend-boundary.md をご覧ください。
ノートパソコンと、より高性能なマシンを使っていますか?一度リンクすれば、2台が別々の頭脳でなくなります。
# on the laptop
$ ygg link
🔗 pairing code valid 5 minutes · single use
ygg://192.168.3.152:42070/a4e0df489737#FOucjgJ1FrUB…
# on the other machine — paste it
$ ygg link ygg://192.168.3.152:42070/a4e0df489737#FOucjgJ1FrUB…
✓ linked with laptop https://192.168.3.152:42070
✓ laptop: fetch 84 · push 12 · delete 0 · tombstones 0
これだけです。それ以降、一方のマシンに書き込んだメモリは約1秒で他方にも反映され、ygg deleteを実行すれば両方から削除されます。また、他方のマシンがスリープ中でも、それぞれのマシンはローカルコピーを使って動作し続けます。読み取りでネットワークの応答を待つことはありません。マシンが復帰すると、両者はフィンガープリントを比較し、実行するコマンドがなくても、同期できなかった内容を修復します。
ポーリングはありません。 Yggdrasilが呼び出されるのは1日に数回なので、書き込みは発生時に送信され、読み取りによって同期が開始されます。アイドル状態のマシンは何も送信しません。
クラウドではありません。 中継サーバーも、アカウントも、通信経路上の当社サーバーもありません。マシンは独自のネットワーク上で互いに直接通信し、TLSと、相手の証明書を固定する仕組みを使います。鍵ペアはその2台にしか存在しません。ペアリングコード自体に発行元マシンの証明書が含まれるため、最初の接続から検証されます。ネットワーク上の別の何かが代わりに応答しても、コードの秘密情報を送信する前に拒否されます。ygg linkを実行するまでネットワークポートはバインドされません。Yggdrasilをインストールしても、これまでどおりループバックのみで動作します。
ygg link --list # what's linked, and whether writes are actually arriving
ygg link --sync # reconcile now, don't wait for a read
ygg unlink <name> # revoke that machine's key here
詳細:同期されるもの、ローカルに残るもの、代わりにygg syncを使う場合
同期されるもの: メモリ、その関連付け、削除。ローカルに残るもの: メモリを開いた回数と、どのマシンで読んだかという情報です。これはローカルでのランキングに使われるもので、知識ではありません。埋め込みベクトルも通常はローカルに残りますが、例外が1つあります。両方のマシンで同じ埋め込みモデルを実行している場合は、ベクトルも同期されます。そのため、計算用マシンでノートパソコンの埋め込み処理を行い、ノートパソコンではモデルを実行せずに済みます。
新しい編集が優先されます。 2台のマシンが通信する前に同じメモリを編集した場合、より新しい編集が両方に保持されます(短い修正も含みます)。
削除が優先されます。 一方のマシンでメモリを削除し、同時に他方で編集した場合、削除が優先され、編集内容は失われます。これは意図的な仕様です。「漏えいしたトークンを削除した」という操作は、2台の時計が一致しない場合でも反映される必要があります。考えが変わったという場合は、代わりにアーカイブしてください。何も失われず、ygg unarchiveを実行すれば両方のマシンに復元されます(後から行われた判断が優先されます)。
ファイアウォールの問題はペアリング時に検出されます。 コードを表示したマシンは、すぐにもう一方へ接続を試みます。接続できない場合、ygg linkがそのことを伝え、そのマシンだけに対してポートを開くコマンドを1つ表示します(ufw、firewalld、Windows)。その後もygg link --listとygg doctorで確認できます。書き込みの配信が確認されると、ピアに✓が表示されます。そうでない場合は、エラーと保留中の変更件数が表示されます。DHCPによって新しいアドレスが割り当てられたマシンは、次回通信時に再検出されます。
ygg sync(git)も引き続き利用でき、別の目的に使います。 互いを認識できないマシン、別のネットワークの背後にある仕事用ノートパソコン、持ち運びできるUSBメモリ内のベアリポジトリなどが対象です。同じネットワーク上のマシンにはygg linkを、それ以外にはygg syncを使ってください。どちらも同じマージルールを使うため、併用できます。両方のマシンがTailscaleのテールネット上にある場合は、ネットワークをまたいでygg link --tailscaleも使えます。
ペアリングコードに誤ったアドレスが表示される場合(VMブリッジやVPNより、実際のイーサネットとWi-Fiを優先しますが、誤って判断することもあります)は、アドレスを固定してください:
ygg config set sync_host 192.168.3.152。または、もう一方のマシンでコードを表示してください。コードを貼り付ける側は、実際に経路として使われるアドレスを常に使用します。
eval/ygg_eval.py で測定しています。232 件のメモリ、ラベル付きクエリ 110 件を使用し、ランキングの重みは dev 分割のみで調整しているため、バイアスのない数値は holdout です(paraphrase-multilingual モデルでの recall@1)。
| 検索ビュー | holdout recall@1 | recall@3 | 依存関係なしの語彙検索 |
|---|---|---|---|
| プロジェクト内(実際の利用経路、候補約 11 件) | 0.94 | 1.00 | 0.76 |
| ストア全体(フィルターなし、候補 232 件) | 0.72 | 0.87 | 0.69 |
実際に使うプロジェクト内検索では、クエリの 0.94 件で正しいメモリが 1 位になり、毎回トップ 3 に入ります(recall@3 = 1.00)。 フィルターなしでストア全体を検索するのはより困難です(全 232 件を対象とした recall@1 は 0.72、recall@3 は 0.87)。依存関係なしの語彙検索モードでも、キーワードやコード識別子のクエリはすでに解決できます(1.00)。ローカルモデルを使うと、意味検索とクロスランゲージ検索の精度が向上します(クロスランゲージは 0.25 → 0.95)。95%信頼区間、候補数、クラスごとのスコアを含む詳細な内訳は BENCHMARKS.mdをご覧ください。次のコマンドで 1 分ほどで再実行できます:python3 eval/ygg_eval.py --report。
コーパスの規模も数値に影響します。 実際の 4,799 件のメモリを含むストアでは、デフォルトの多言語埋め込みモデルの精度は語彙検索のベースラインまで低下します(recall@1 は 0.55)。一方、bge-m3 は 0.775 を維持します。ストアが数千件に増える場合は、bge-m3 を選んでください。詳しくは BENCHMARKS.mdをご覧ください。
🆚 Yggdrasil と他のツールの比較
他のツールは、会話の記録を自動で取り込むか、クラウドの利用を勧めてきます。Yggdrasil が重視するのは、重要な情報だけを厳選・重複排除し、自分で所有するシンプルな行として保存して、すべてのツールやプロジェクトで共有することです。
| Yggdrasil | 組み込みメモリ (Claude Code · Codex) | claude-mem | mem0 / OpenMemory | basic-memory | |
|---|---|---|---|---|---|
| 厳選した決定事項/教訓/ステータス(会話記録ではない) | ✅ | ⚠️ 自動メモ | ❌ すべてを記録 | ⚠️ | ⚠️ 自由形式のメモ |
| 複数のツールで共通のメモリ | ✅ | ❌ ベンダーごとに分離 | ✅ | ✅ | ✅ |
| プロジェクト横断の検索(「プロジェクト B で解決した」) | ✅ | ❌ リポジトリ内のみ | ⚠️ | ⚠️ | ⚠️ |
| デフォルトで100%ローカル | ✅ | ✅ | ⚠️ クラウド同期は追加機能 | ❌ ホスティングが前提 | ✅ |
| 依存関係ゼロ(標準ライブラリ + SQLite) | ✅ | — | ❌ Node + Bun + ワーカーデーモン | ❌ Docker + Qdrant + LLM キー | ❌ |
| LLM と API キーなしで動作 | ✅ | ✅ | ❌ AI で圧縮 | ❌ | ✅ |
| 完全ローカルのセマンティック検索 | ✅ Ollama はオプトイン | ❌ grep のみ | ⚠️ Chroma はオプション | ⚠️ API キーまたは Docker 構成が必要 | ❌ |
| 自分で所有するプレーンな Markdown(Obsidian 対応) | ✅ | ✅ | ❌ | ❌ | ✅ |
最も近い競合製品 — claude-mem: すべてを記録するメモリで、各セッションを記録して AI で圧縮します(Node 20+ と Bun、永続的なワーカーデーモンが必要。Chroma はオプション)。Yggdrasil は正反対の方針を採り、増え続ける情報の洪水ではなく、規模を抑えた価値の高いストアを提供します。mem0 は、ユーザーのことを記憶するアプリを構築するための SDK とホスティングプラットフォームです。セルフホストの場合でも、LLM API キーが必要です。組み込みメモリは実用的ですが、構造上、1 つのベンダー、1 つのリポジトリ、1 台のマシンに分離され、単純な grep 検索に限られます。Yggdrasil はその上位のレイヤーとして機能します(ygg seed を使えば、同じ会話記録から初期データを取り込めます)。レイヤーが異なるツールとして、context-mode(実行中のコンテキストウィンドウ)と Context7(最新のライブラリドキュメント)があります。どちらも Yggdrasil と併用できます。
🧰 コマンド
エージェントは6つのMCPツールを利用できます:ygg_health、ygg_bootstrap、ygg_search、ygg_recall、ygg_remember、ygg_materialize。プラグインまたは ygg install によって自動登録されます。
`ygg` CLI のリファレンス全体
メモリー操作
| コマンド | 機能 |
|---|---|
ygg recall --query "…" | プロジェクト横断検索 — 「これをどこかでやったことがあるか?」 |
ygg search --project P --query "…" | プロジェクト単位の検索(--type、--tag、--limit、--json) |
ygg remember --project P --type lesson --content "…" | 長期保存するメモリーを保存(シークレットを検出して保護し、重複を排除) |
ygg bootstrap --project P | 作業開始前にプロジェクトのメモリーを取得 |
ygg pin --id ID · ygg unpin --id ID | メモリーをピン留めして、確実に表示されるようにする |
ygg relate --from A --rel solves --to B · ygg relations --id ID | メモリーを関連付ける(solves/supersedes/contradicts) · メモリーが存在する理由や、何に置き換えられたかを確認 |
ygg supersede --id OLD --by NEW | 古くなったメモリーをアーカイブ — --by には置き換えたメモリーを記録 |
ygg unarchive --id ID | アーカイブ済みメモリーを復元(リンク済みのマシンにも反映) |
ygg materialize --id ID --project P | メモリーを1件、Obsidianノートにエクスポート |
ygg export-native --project P | 厳選したダイジェストを AGENTS.md/MEMORY.md に書き込み、Claude Code と Codex のネイティブメモリーに取り込む |
ygg import --from TOOL --path P | 別のメモリーツールのストアを Yggdrasil に移行(mcp-memory、basic-memory。まず --dry-run を実行) |
ygg review [--apply] | ガバナンスキューを処理 — 重複を統合し、古いメモリーや競合するメモリーにフラグを付ける(アーカイブのみで、元に戻せます) |
ygg delete --id ID · ygg reset … | メモリーを1件完全削除 · 不適切なシードを一括で取り消す(最初に確認) |
コールドスタート
| コマンド | 機能 |
|---|---|
ygg seed | Claude Code と Codex のトランスクリプト、Obsidian の保管庫、CLAUDE.md のリポジトリから要点を抽出 — 差分処理、重複排除、すべてローカルで実行 |
ygg seed --dry-run · --force | 検出と見積もりのみ · すべてを再度要点抽出 |
ygg seed --schedule 03:30 | 毎晩の自動要点抽出(launchd)— メモリーを常に最新の状態に維持。off/status |
ygg sync --repo <your-git-repo> | ご自身の git リポジトリを介してマシン間でメモリーを同期 — 通常の JSON ファイルを使用し、クラウドは介在しません |
ygg link · ygg link <code> | 同一ネットワーク上にあるご自身の2台のマシンを直接リンク — ライブ共有メモリー、TLSピン留め、中継なし |
ygg link --list · ygg unlink <name> | リンク済みマシンを表示 · 1台のリンクを解除 |
ygg distill --source PATH | ディレクトリまたはファイル1つから教訓を抽出 |
ygg reindex | 欠落している埋め込みを補完(密なリコールを復元) |
サービスとセットアップ
| コマンド | 機能 |
|---|---|
ygg install · ygg doctor · ygg update | ガイド付きセットアップ · 実行可能な修正方法を提示して診断 · アップグレード |
ygg config | 永続設定を表示/設定(list · get · set · unset) |
ygg status · start · stop · restart · logs | 常時稼働するデーモンを管理 |
ygg hooks · unhooks · register | SessionStart フックの有効化/無効化 · MCP を(再)登録 |
ygg recommend · token · uninstall | モデルカタログ · 認証トークンを表示 · すべてを削除 |
~/.yggdrasil/identity.json を編集して、個性を持たせましょう:
{ "name": "Jarvis", "persona": "concise, proactive, dry wit", "user_facts": ["prefers TypeScript", "ships small PRs"] }
大量のシード処理をしたいけれど、ノートPCの性能が足りない場合は、LAN上の任意のマシンを要点抽出先に指定できます。Ollama、LM Studio、llama.cpp を実行するデスクトップでも、ローカルLLMサーバーアプリを実行する iPhone でも構いません:ygg config set distill_url http://<box>:11434。Yggdrasil は API の種類(Ollama または OpenAI 互換)を自動検出します。データがネットワークの外に出ることはありません。詳しくはdocs/ygg-cli.mdをご覧ください。
Claude Code にはメモリ機能が組み込まれていますが、なぜ Yggdrasil が必要なのですか?
組み込みメモリは、ベンダーごと、リポジトリごと、マシンごとに分かれており、文字列の完全一致で検索されます。Yggdrasil はその上位レイヤーです。Claude Code、Codex、あらゆる MCP ホストで同じメモリを使い、プロジェクトをまたいで呼び出せます。セマンティック検索も任意で利用でき、すべて 100%ローカルで動作します。Yggdrasil は双方向に橋渡しします。ygg seed は既存のネイティブメモリとトランスクリプトを共有ブレインに取り込み、ygg export-native は整理されたダイジェストを AGENTS.md/MEMORY.md に書き戻します。そのため、新しいクローンや Yggdrasil のないツールでも、整理されたメモリを利用できます。
コードやメモリがクラウドに送信されますか?
いいえ。エンジン、データベース、任意のモデルはすべてローカルで動作します。アカウントもテレメトリもありません。外部への通信は、PyPI へのバージョン確認のみです。
ygg link を使って自分の 2 台のマシンをリンクすると、メモリは自分のネットワーク上でその 2 台の間を移動します。リレーを介さず、当社のサーバーを経由することもなく、ピン留めされた証明書を使った TLS で直接通信します。このコマンドを実行するまでは、ループバック以外で待ち受けることはありません。
悪意のあるリポジトリがメモリに指示を仕込む可能性はありますか?
呼び出されたメモリは、各メモの出所と、別のプロジェクトに属する場合はそのマーカーを明示した、指示ではなく参照用のメモとして挿入されます。そのため、エージェントはメモリをデータとして扱い、その内容に基づいて行動する前に確認を求めます。蒸留の前にトランスクリプトからシークレットが削除され、書き込みも拒否されます。それでも、メモリの信頼性は、それを書き込んだものと同程度です。ときどき ygg review で確認してください。
すべてを自動的に記憶しますか?
いいえ。意図的にそうしています。検索は自動ですが、書き込みは意図的に行います(エージェントが長期的に役立つ知見を ygg_remember で保存します)。すべてを取り込むとメモリが汚染され、トークンを浪費するため、そうした設計にはしていません。任意のバックグラウンドモデルは、すでに保存された内容を統合します(提案のみ)。
GPU や API キーは必要ですか?
いいえ。デフォルトは純粋な字句検索で、依存関係はなく、即座に利用できます。セマンティック検索はオプションで、Ollama 経由のローカルモデルを使います。インストーラーがハードウェアに合ったモデルを推奨します。
どのくらいの負荷がかかり、トークンをどの程度消費しますか?
エンジンのアイドル時のメモリ使用量は、字句検索がデフォルトの場合で約 21 MB、CPU 使用率は約 0%です。ディスク使用量はメモリ 1 件あたり数十 KB です。セッション開始時に約 300 トークンを挿入し、各ツール呼び出しでは小さなスニペットを返します。インデックス作成、埋め込み、統合といった重い処理はすべて、LLM を使わずにマシン上で実行されます。
メモリを手動で編集したり削除したりできますか?
はい。メモリは Obsidian の保管庫に Markdown のメモとして保存されるため、通常のファイルと同じように読んだり、編集したり、削除したりできます。ガバナンスとレビューでは何も削除せず、アーカイブするため元に戻せます。完全に削除できるのはあなただけです。明示的に ygg delete を実行してください(リンク済みのマシンでは、その削除は両方に反映されます)。
🚦 ステータスとロードマップ
アルファ版。 基本的な利用フローとガバナンスのループはゲートテスト済みです(scripts/run_gates.sh)。複数ユーザーや本番環境での利用に向けた堅牢化はまだ行っていません。現在は macOS に対応しています。Linux/Windows 用サービスインストーラーは完成しており、実機での最終テスト中です。
最近リリース:🔗 マシン間のメモリ共有(ygg link)・関係グラフ(ygg relate:solves/supersedes/contradicts)。
次の予定:🛰️ サーフェスをまたいだ利用(CLI、Web、スマートフォンで同じメモリを利用。HTTP ファサードは実装済みです。docs/cross-surface.md を参照)・🐧 Linux/Windows の一般提供。
🤝 コントリビューション
Issue や PR を歓迎します。提出前に scripts/run_gates.sh と python3 -m unittest discover -s tests を実行してください。すべてのゲートを成功状態に保つ必要があります。
📜 ライセンス
GNU AGPL v3.0 — LICENSE を参照してください。無料のオープンソースです。利用、変更、セルフホスト、再配布が可能です。変更を加えた場合、またはネットワークサービスとして提供する場合は、同じライセンスのもとでソースコードを公開する必要があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。