Aimemo について
Aimemoは、AIエージェント向けのローカル優先MCPメモリーサーバーです。依存関係のない単一のGoバイナリで配布され、`.aimemo/`にプロジェクトの文脈を保存し、検索順位付けとCLI管理を提供します。
主な機能
- 01プロジェクト内のSQLiteメモリー
- 02順位付けされた全文検索
- 03メモリーの保存・関連付け・削除
- 04CLIによる確認と編集
- 05Markdown・JSONのインポートとエクスポート
- 06スキルごとの独立したコンテキスト
活用シーン
- 01コーディングセッション間でプロジェクトの文脈を維持
- 02過去の判断や障害要因の再確認
- 03OpenClawのスキルごとのメモリー分離
- 04ターミナルからエージェントの記憶を確認・出力
MCP 対応
stdio MCPサーバーとして動作し、記憶の読み込み、保存、検索、削除、関連付けのツールを提供します。MCP対応クライアントはローカルプロセスとして管理でき、`aimemo` CLIからも同じデータを操作できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
aimemo
AI エージェント向けの依存関係ゼロの MCP メモリサーバー — 永続的で検索可能、ローカルファーストのシングルバイナリです。
$ claude "let's keep working on the payment service"
╭─ memory_context ──────────────────────────────────────────────────╮
│ [project: payment-service] │
│ │
│ Last session (3 days ago): │
│ • Stripe webhook signature verification — DONE │
│ • Idempotency key refactor — IN PROGRESS │
│ • Blocked: race condition in concurrent refund handler │
│ │
│ Related: Redis connection pool, pkg/payments/refund.go │
╰───────────────────────────────────────────────────────────────────╯
Picking up where we left off. The race condition in the refund
handler looks like a missing mutex around the in-flight map.
Let me check pkg/payments/refund.go ...
[... Claude works through the fix ...]
╭─ memory_store (journal) ──────────────────────────────────────────╮
│ Resolved refund race — added sync.Mutex around inFlightRefunds. │
│ Tests passing. Next: load test with k6 at 500 rps. │
╰───────────────────────────────────────────────────────────────────╯
🧠 aimemo を選ぶ理由
- 面倒なインフラ管理は不要です。 Go のシングルバイナリです。Docker、Node.js ランタイム、クラウドアカウント、API キーは不要です。
brew installで 30 秒で導入できます。 - メモリはプロジェクトと一緒に保管されます。 コードの隣にある
.aimemo/に保存されます。git にコミットすることも、.gitignoreに追加することもできます。ブランチを切り替えても、メモリはディレクトリに付いてきます。 - Claude は中断したところから正確に再開できます。
memory_contextが各セッション開始時に自動的に実行されます。Claude は、何をしていたか、何がブロックされていたか、どのような決定がなされたかを確認できます。同じ説明を繰り返す必要がなくなります。 - 適切な順位付けを行う全文検索です。 FTS5 と BM25 のスコアリングを、情報の新しさとアクセス頻度で重み付けします。関連性の高いメモリが先に表示され、古い情報は自然に目立たなくなります。
- 複数のセッションを同時に実行しても、破損しません。 SQLite の WAL モードにより、複数の Claude ウィンドウが互いをロックせずに同時に書き込めます。
- 主導権は常にあなたにあります。 Claude が使えるすべてのツールを、ターミナルからも利用できます。確認、編集、取り消し、エクスポートが可能です。メモリは読みやすい Markdown または JSON 形式で保存され、独自形式に閉じ込められることはありません。
⚡ クイックスタート
# 1. Install
# Linux/macOS (one-line install):
curl -sSL https://raw.githubusercontent.com/MyAgentHubs/aimemo/main/install.sh | bash
# Or macOS via Homebrew:
brew install MyAgentHubs/tap/aimemo
# 2. Initialize memory for your project (run from project root)
aimemo init
# 3. Register with Claude Code
claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'
Claude Code を再起動してください。次のセッションで、Claude はプロジェクトのコンテキストを自動的に読み込みます。
OpenClaw のクイックスタート
OpenClaw スキルを使用している場合は、スキルごとにメモリを分離する方法について、以下のOpenClaw との連携セクションをご覧ください。
🔧 仕組み
aimemo serve は stdio MCP サーバーとして実行されます。プロセスのライフサイクルは Claude Code が管理するため、自分でプロセスを起動し続ける必要はありません。Claude はセッション開始時に memory_context を呼び出して関連する以前のコンテキストを読み込み、作業中には memory_store と memory_link を呼び出して決定事項や関連性を記録します。ターミナルからいつでも aimemo search、aimemo list、aimemo get を呼び出して、同じデータを読み取ったり編集したりできます。すべてのデータは .aimemo/ 内の SQLite データベースに保存され、現在のディレクトリから上位へたどって検索されます。Git が .git/ を見つけるのと同じ方法です。
🛠 MCP ツール
| ツール | 説明 | Claude が呼び出すタイミング |
|---|---|---|
memory_context | 現在のプロジェクトに関する、順位付けされた最近の記録を返します | セッション開始時 — 自動 |
memory_store | 記録(事実、決定事項、日誌、TODO)を保存します | タスクの完了後、または決定を行った後 |
memory_search | すべての記録を対象に全文検索し、BM25 で順位付けします | 特定の情報を思い出す必要があるとき |
memory_forget | ID を指定して記録を論理削除します | 情報を破棄するよう指示されたとき |
memory_link | 2 つの記録の間に名前付きの関連性を作成します | 依存関係やつながりを特定したとき |
すべてのツールスキーマを合わせても 2,000 トークン未満です。各呼び出しには 5 秒の厳格なタイムアウトが設定されており、サーバーがセッションを停滞させることはありません。データがない状態でのクエリは 5 ms 未満で返されます。
📋 CLI リファレンス
セットアップ
| コマンド | 説明 |
|---|---|
aimemo init | 現在のディレクトリに .aimemo/ を作成します |
aimemo serve | MCP stdio サーバーを起動します(Claude Code が自動的に呼び出します) |
aimemo doctor | DB の健全性、FTS5 のサポート、WAL モード、MCP の登録を検証します |
Memory
| コマンド | 説明 |
|---|---|
aimemo add <name> <type> [observations...] [--tag] | 1 つ以上の観察事項を含むエンティティを追加します |
aimemo observe <entity-name> <observation> | 既存のエンティティに新しい観察事項を追加します |
aimemo retract <entity-name> <observation> | エンティティから特定の観察事項を削除します |
aimemo forget <entity-name> [--permanent] | エンティティを論理削除します(復元可能)。完全に削除するには --permanent を使用します |
aimemo search <query> | 関連度順の結果を返す全文検索を行います |
aimemo get <entity-name> | すべての観察事項と関連を含むエンティティを表示します |
aimemo link <from> <relation> <to> | 2 つのエンティティ間に型付きの関連を作成します |
aimemo append <entity-name> <observation> | エンティティに観察事項を追加します(observe の別名) |
Journal
| コマンド | 説明 |
|---|---|
aimemo journal | 対話形式の日誌エントリを開きます($EDITOR に従います) |
aimemo journal <text> | インラインで簡単な日誌エントリを記録します |
Inspect & Export
| コマンド | 説明 |
|---|---|
aimemo list | 最近の観察事項を一覧表示します |
aimemo tags | 使用中のすべてのタグを一覧表示します |
aimemo stats | DB サイズ、観察事項の数、最終書き込み時刻を表示します |
aimemo export --format md | すべてのメモリを Markdown にエクスポートします |
aimemo export --format json | すべてのメモリを JSON にエクスポートします |
aimemo import <file> | JSONL または JSON のエクスポートファイルからインポートします |
すべてのコマンドで --context <name> を指定すると、名前付きコンテキスト(.aimemo/ 内の別個の .db ファイル)を対象にできます。
⚙️ 設定
~/.aimemo/config.toml — グローバルなデフォルト設定。すべて省略可能です。
[defaults]
context = "main" # default context name
max_results = 20 # observations returned by memory_context
[scoring]
recency_weight = 0.7 # 0–1, weight of recency vs. access frequency
[server]
timeout_ms = 5000 # hard timeout on every MCP call
log_level = "warn" # "debug" | "info" | "warn" | "error"
プロジェクトごとの設定は、プロジェクトルートにある .aimemo/config.toml に記述します。キーは同じで、プロジェクトの設定がグローバル設定より優先されます。
🤖 Claude Code との統合
マシンごとに一度だけサーバーを登録します。
claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'
Claude がメモリを利用できることと、その使い方を把握できるよう、プロジェクトの CLAUDE.md に以下を追加してください。
## Memory
This project uses aimemo for persistent memory across sessions.
- Call `memory_context` at the start of every session to load prior context.
- Call `memory_store` with `type: journal` before ending a session to record
what was completed, what is still in progress, and any blockers.
- Use `memory_link` to connect related observations (e.g. a bug to its fix,
a decision to its rationale).
- Do not store secrets, credentials, or PII.
🦞 OpenClaw との統合
aimemo は、スキルごとのメモリ分離とインフラ不要により、OpenClaw の「すべてを記憶するが、何も理解しない」という問題を解決します。
OpenClaw に aimemo を使う理由
問題:
- OpenClaw 標準の Markdown メモリは、使うほど性能が低下します
- スキル間でメモリを共有するため、情報が混在します
- コンテキストの圧縮によって重要な情報が失われます
解決策:
- ✅ 依存関係なし — Go の単一バイナリで、Docker/Node.js/データベースは不要です
- ✅ スキルごとの分離 — 各スキルに専用のメモリデータベースが割り当てられます
- ✅ 実用的に機能 — BM25 検索と重要度スコアリングで重要な情報を見つけます
- ✅ ローカル優先 — すべてのデータはマシン上に保持されます
他のソリューションとの比較:
| aimemo | Cognee | memsearch | Supermemory | |
|---|---|---|---|---|
| 依存関係 | なし | Neo4j/Kuzu | Milvus | クラウドサービス |
| インストール | 30 秒 | 複雑 | 複雑 | サインアップが必要 |
| スキルの分離 | 組み込み | 手動 | 手動 | 該当なし |
| Linux 対応 | ✅ ネイティブ | ✅ | ✅ | 該当なし |
5 分でセットアップ
# 1. Install (Linux amd64/arm64)
curl -sSL https://raw.githubusercontent.com/MyAgentHubs/aimemo/main/install.sh | bash
# 2. Register MCP server with OpenClaw
claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'
# Or add to ~/.openclaw/openclaw.json:
# {
# "mcpServers": {
# "aimemo-memory": {
# "command": "/usr/local/bin/aimemo",
# "args": ["serve"]
# }
# }
# }
# 3. Initialize workspace memory
cd ~/.openclaw/workspace
aimemo init
# 4. Restart OpenClaw Gateway
# Linux: systemctl --user restart openclaw-gateway
# macOS: launchctl stop com.openclaw.gateway && launchctl start com.openclaw.gateway
スキルごとのメモリ分離
context パラメーターを使うと、各スキルに専用のメモリを割り当てられます。
SKILL.md 内:
---
name: my-skill
description: A skill with persistent memory
---
# My Skill
## Instructions
When doing work:
1. **Load memory FIRST**:
memory_context({context: "my-skill"})
2. Do your task with loaded context
3. **Store learnings**:
memory_store({ context: "my-skill", entities: [{ name: "preferences", entityType: "config", observations: ["User prefers snake_case"] }] })
**CRITICAL**: Always pass `context: "my-skill"` to prevent memory pollution.
結果:
~/.openclaw/workspace/.aimemo/
├── memory.db # Shared/default (no context)
├── memory-skill-a.db # Skill A's isolated memory
├── memory-skill-b.db # Skill B's isolated memory
└── memory-skill-c.db # Skill C's isolated memory
完全な例
次の examples/openclaw-github-pr-reviewer/ では、以下の機能を備えた、実際に動作するスキルの全体をご覧いただけます。
- GitHub PR をレビューします
- コードスタイルの好みを学習します
- セッションをまたいでパターンを記憶します
- 改善に役立てるためのフィードバックを保存します
ドキュメント
- OpenClaw 統合ガイド — セットアップを順を追って説明します
- OpenClaw ワークフロー — アーキテクチャを詳しく解説します
- スキルの例 — 完全な実装
デバッグ
# List a skill's memory
aimemo list --context my-skill
# Search within a skill
aimemo search "keyword" --context my-skill
# Export for inspection
aimemo export --context my-skill --format json > memory.json
# Get database stats
aimemo stats --context my-skill
🖥 クライアントのサポート
aimemo は、MCP 対応のあらゆる AI コーディングクライアントで動作します。サーバーコマンドは常に aimemo serve です。
PATH に関する注意(macOS/Homebrew): GUI アプリでは、シェルの PATH が引き継がれないことがあります。クライアントが
aimemoを見つけられない場合は、代わりに絶対パス/opt/homebrew/bin/aimemoを使用してください。
Claude Code
claude mcp add-json aimemo-memory '{"command":"aimemo","args":["serve"]}'
または、.mcp.json をプロジェクトのルートにコミットしてください(例として、このリポジトリのファイルを参照してください)。
Cursor
プロジェクトローカル(.cursor/mcp.json)またはグローバル(~/.cursor/mcp.json):
{
"mcpServers": {
"aimemo-memory": {
"command": "aimemo",
"args": ["serve"]
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json を編集してください(グローバルのみ):
{
"mcpServers": {
"aimemo-memory": {
"command": "aimemo",
"args": ["serve"]
}
}
}
OpenAI Codex CLI
プロジェクトローカル(.codex/config.toml)またはグローバル(~/.codex/config.toml):
[mcp_servers.aimemo-memory]
command = "aimemo"
args = ["serve"]
Cline(VS Code)
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json を編集してください:
{
"mcpServers": {
"aimemo-memory": {
"command": "aimemo",
"args": ["serve"],
"disabled": false,
"alwaysAllow": []
}
}
}
Continue(VS Code / JetBrains)
プロジェクトローカル(.continue/mcpServers/aimemo-memory.yaml):
name: aimemo-memory
version: 0.0.1
schema: v1
mcpServers:
- name: aimemo-memory
command: aimemo
args:
- serve
または、グローバル設定 ~/.continue/config.yaml の mcpServers: キーの下に追加してください。
Zed
~/.zed/settings.json(グローバル)または .zed/settings.json(プロジェクトローカル)で設定します:
{
"context_servers": {
"aimemo-memory": {
"source": "custom",
"command": "aimemo",
"args": ["serve"],
"env": {}
}
}
}
🤝 コントリビューション
バグの報告や機能のリクエストは、GitHub Issues からお寄せください。プルリクエストも歓迎します。大きな変更を伴う場合は、コードを書く前にまず Issue を作成し、方向性をすり合わせてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。