memini について
meminiは、コーディングエージェント向けのローカル優先のプロジェクト記憶・ガードレールシステムです。リポジトリに教訓を保存し、フックで同じ失敗につながる編集を警告または阻止し、Git連携で古い記憶を検出します。
主な機能
- 01SQLiteとMarkdownでリポジトリ内に記憶を保存
- 02リスクのあるファイル編集を警告・阻止
- 03セッション開始時に記憶の要約を注入
- 04Git連携による古い記憶の検出
- 05CLIとMCP記憶ツール
活用シーン
- 01ビルドを壊した変更の再発防止
- 02デプロイルールやファイルのリスクを記録
- 03プロジェクト記憶の確認・検証・アーカイブ
MCP 対応
stdioのMCPサーバーを通じて、エージェントはプロジェクトの教訓を記録・検索し、コンテキストを確認して編集前にファイルをチェックできます。フックにより、任意のMCPツール呼び出しに頼らないガードレールも実現します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
memini
同じ失敗を二度と繰り返さない。 AI コーディングエージェントのための、ミス防止ガードレールと永続的なプロジェクトメモリです。
AI コーディングエージェントには状態がありません。セッションが始まるたびに、すべてを忘れてしまいます。月曜日に vercel.json を編集してビルドを壊したエージェントは、木曜日にもまったく同じ編集をためらいなく試します。memini は、各リポジトリに 失敗した試み、壊れやすいファイル、決定事項、デプロイルールの永続メモリを提供し、エージェントが過去の失敗を繰り返そうとした瞬間に、関連する警告を強制的に提示します。
エージェントが読むかどうかを選べるノートではありません。エージェントが回避できないガードレールです。

仕組み
- メモリはリポジトリに保存されます — ローカルの SQLite インデックスと、人が読めて PR でレビューできる Markdown ビューを含む
.memini/フォルダーです。ローカルファーストで、マシンの外部にデータが送信されることはありません。 - フックがガードレールを適用します — エージェントがリスクの記録されたファイルを編集しようとすると、編集が実行される前にインターセプトされ、記録された教訓が注入されます:
[WARNING] Editing vercel.json broke the build (recorded 2026-07-03)— Tried changing buildCommand; deploy failed. Actual fix: move checkout server-side and setVITE_STRIPE_USE_SERVER=true.warnの重大度:セッションごとに一度エージェントに警告し、その後は続行できます。blockの重大度:人間がメモリをアーカイブするまで、編集は常に拒否されます。
- セッション開始時にダイジェストを注入します。重要なメモリを(重大度優先、トークン予算に合わせて)まとめたものです。
- MCP ツールで、エージェントは学んだことを記録できます:
remember_failed_attempt、remember_fragile_file、remember_decision、end_session_summary、さらにrecall_project_contextとcheck_before_editing。 - Git を考慮した陳腐化検知 — メモリは参照先ファイルのハッシュを記録します。
pm staleは根拠となるファイルが変更されたメモリにフラグを付け、陳腐化したメモリは再検証されるまでガードレールを発動しません。
クイックスタート(90 秒)
cd your-repo
npx -y memini init # creates .memini/ + installs Claude Code hooks
# record your first guardrail
npx -y memini remember failed_attempt \
"Editing vercel.json broke the build" \
-b "Tried changing buildCommand; deploy failed. Fix: move checkout server-side." \
--file vercel.json --severity warn
これで完了です。次回、このリポジトリで Claude Code のセッションが vercel.json を編集しようとすると、まず警告が表示されます。
Cursor、Windsurf、その他の MCP クライアント:
claude mcp add memini -- npx -y memini mcp # Claude Code MCP
npx -y memini install-mcp --write cursor # Cursor: MCP + rule + enforced preToolUse hook
npx -y memini install-copilot # GitHub Copilot: enforced preToolUse hook (.github/hooks)
npx -y memini install-mcp # print generic MCP config
適用は複数のゲートで構成されており、memini はそのいくつかをカバーします:
- 編集前 — ガードレール対象ファイルへの編集は、実行される前にブロックされます。
block→ 拒否、warn→ 記録された履歴をユーザーに提示します。以下に対応しています:- Claude Code —
pm initでインストールされます - Cursor(1.7 以降)—
pm install-mcp --write cursor - GitHub Copilot — CLI、クラウドコーディングエージェント、VS Code エージェントモード(プレビュー)—
pm install-copilot
- Claude Code —
- コミット前 — すべてのツール — Git の pre-commit ガードレールが、
blockの重大度が設定されたファイルに触れるコミットをブロックします。どの IDE やエージェント(Windsurf、Cline、人間など)が編集したかは問いません。pm init(またはpm install-hooks --git)でインストールされます。失敗時は処理を続行し、git commit --no-verifyで回避できます。 - アドバイザリー — あらゆる MCP クライアント —
check_before_editing/recall_project_contextツールに加え、エージェントにこれらの使用を促す、常に適用される Cursor ルールがあります。
メモリを長期にわたって有用に保つ
メモリツールの有用性は、その中身次第です。放置すれば劣化します。memini はメモリを健全に保ちます。
- 自動記録 — Claude Code のセッション終了フックが、セッション中に実際にファイルが変更された場合、永続的な教訓(うまくいった修正、壊れやすいファイル、失敗したアプローチ)を記録するようエージェントに促します。
pm rememberを覚えておく必要はありません。何も行われなかったセッションでは動作しません。 - 有用性の追跡 — ガードレールが実際に発動するたびに、memini がその回数を記録します。
pm statsでは、どのメモリが役立っているか、どれが一度も発動していないかを確認できます。 pm review— 類似した重複、同じファイルに対する矛盾したガードレール、作成から長い時間が経っても一度も発動していない休眠状態のガードレールを検出します。すべてローカルのヒューリスティックで処理し、LLM は使いません。残すもの、統合するもの、アーカイブするものは自分で判断できます。- Git に基づく陳腐化検出 — メモリは参照するファイルのハッシュを記録します。コードが変更されると、メモリにフラグが付き、再検証されるまで発動しなくなります(
pm stale/pm verify)。
CLI
| コマンド | 機能 |
|---|---|
pm init | .memini/、gitignore、フックを設定します |
pm remember <type> <title> [-b body] [--file f...] [--severity warn|block] | メモリを記録します |
pm recall [query] [--file f] [--digest] | メモリを検索します/エージェント用ダイジェストをプレビューします |
pm check <path> | ガードレールをチェックします(リスクが記録されている場合は終了コード 1)— CI で使用できます |
pm list / show / archive / approve <id> | メモリを管理します |
pm stats | メモリの状況を確認します — ガードレールの発動回数、カバレッジ、陳腐化 |
pm review | 重複、矛盾、休眠状態のガードレールなど、品質上の問題を検出します |
pm stale / pm verify <id> | 古くなったメモリを検出して再検証します |
pm mcp | MCP サーバーを実行します(stdio) |
pm doctor | セットアップを診断します |
メモリの種類:decision、failed_attempt、fragile_file、architecture、deployment、client_preference、session_summary。
スコープ:リポジトリ間でのルール共有
プロジェクト固有の教訓もあれば、同じ組織やクライアントに属するマシン上のすべてのリポジトリに適用される教訓もあります。memini には 3 つのスコープがあります。
| スコープ | 保存場所 | 用途 |
|---|---|---|
project(デフォルト) | <repo>/.memini/ | このリポジトリで失敗した修正、壊れやすいファイル、決定事項 |
workspace | リポジトリの親フォルダーにある .memini/ | そのフォルダー以下のすべてのリポジトリで共有する組織/クライアントの規約 |
user | ~/.memini/ | どこでも適用される個人ルール |
cd ~/work/acme && pm init --workspace # one-time: workspace store covering ~/work/acme/*
# from inside any repo under ~/work/acme:
pm remember deployment "DB connections must use org OAuth, never PATs" \
--file "databricks.yml" --severity warn --scope workspace
pm promote <id> --workspace # lift a project lesson that turned out to be org-wide
ワークスペースフォルダー以下のすべてのリポジトリには、後から作成したものも含め、これらのガードレールが自動的に適用されます。解決処理は、.gitconfig や ESLint の設定と同様に、ディレクトリーツリーを上方向にたどります。ワークスペース/ユーザースコープのファイルガードレールは glob で照合されます(vercel.json は任意のリポジトリの vercel.json に一致し、config/**/*.yml も使用できます)。また、より広いスコープのメモリは人間が検証した場合にのみ発動します。エージェントが提案できるメモリはプロジェクトスコープに限られるため、プロンプトインジェクションを受けたエージェントがリポジトリ間に広がるルールを仕込むことはできません。pm doctor では、有効なスコープを確認できます。
設計原則
- 助言ではなく、強制。 MCP のメモリツールはエージェントが任意で使うものですが、フックは必須です。エージェントがメモリの確認を思いつかなくても、ガードレールは機能します。
- 人が読めて、PR にできる。 すべてのメモリは
.memini/以下の Markdown に変換され、チームはほかの変更と同じようにレビューできます。 - Git に紐づいた証拠。 メモリには、作成時のブランチ、コミット、ファイルのハッシュが記録されるため、主張を検証でき、陳腐化も検出できます。
- ローカルファースト。 リポジトリ内の SQLite と Markdown を使用します。アカウント、クラウド、テレメトリーはありません。保存前にメモリ本文からシークレットを自動的に伏せ字にします。
- 複数ツールに対応。 コアは CLI とファイルで構成され、Claude Code のフックと MCP は薄いアダプターとして機能します。
セキュリティ
ローカルファーストを前提に設計されています。サーバーもアカウントもテレメトリーもありません。シークレットは保存前に自動で秘匿化され、ファイル参照はリポジトリ内に限定され、注入されるメモリテキストにはサイズ上限が設けられ、データとして明示されます。率直な制限事項(ガードレールが介入するのは編集ツールであり、任意のシェルコマンドではないこと、warn は注意喚起であり、block はそうではないこと)を含む、完全な脅威モデルについては SECURITY.md をご覧ください。
ステータス
初期段階です(v0.1)。チーム同期(レビューのワークフローを備えた、チーム全体で共有するメモリ)はロードマップに含まれています。フィードバックや問題の報告をお待ちしています。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。