Stashpad について
Stashpadは、AIコーディングエージェント向けのローカルメモリーMCPサーバー兼コマンドラインツールです。出典付きのMarkdownノートを人が確認でき、モデルやクラウドを使わずに検索やセッション引き継ぎを行えます。
主な機能
- 01プロジェクト単位のMarkdownメモリーファイル
- 02エージェントによる書き込みのレビューキュー
- 03単語と同義語による検索
- 04セッション概要、ピン留め、引き継ぎ
- 05ローカルレビュー画面と監査ログ
活用シーン
- 01コーディングセッション間でプロジェクトの決定を保持
- 02エージェントが提案したメモリーの確認と承認
- 03コーディング依頼に関連するノートの検索
- 04コンテキスト圧縮時のセッション情報の引き継ぎ
MCP 対応
StashpadはMCPクライアントに8つのツールを提供し、メモリーの検索、読み取り、保存、管理のほか、引き継ぎとフィードバックを扱います。MCPを使わずコマンドラインだけでも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y stashpadSTASHPAD_DIRFolder where the memories live (default: ./.stashpad/memories in the working folder)STASHPAD_PASSPHRASEシークレットOnly for a store encrypted with 'stashpad encrypt'ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
8掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| kind | enum | いいえ | この種類のみを対象にします。fact | preference | decision | task |
| as_of | string | いいえ | 日付 YYYY-MM-DD:その日に有効だった内容を検索します。 |
| limit | integer | いいえ | 返す結果の最大数(デフォルトは 10)。 |
| query | string | はい | 検索する語句。例:'database choice'。 |
詳細
Stashpad
あらゆる AI コーディングエージェントのためのローカルメモリ:出典、レビューキュー、検索機能を備えたプレーンな Markdown ノートを管理する MCP サーバーと CLI です。
Claude Code、Codex、Cursor、VS Code、Gemini CLI など、あらゆる MCP クライアントで使えます。または MCP なしでも使えます(通常のコマンドと AGENTS.md ブロックを使用)。モデルも、クラウドも、依存関係も不要です。Node 20 以降が必要です。
クイックスタート
npm install -g stashpad
stashpad setup # prints the MCP settings for your agent app (generic, claude-code, vscode, codex)
stashpad doctor --client # starts the server the way your agent app does and checks it answers
次のように表示されます:client start: the server answered with 8 tools in ... ms および Nothing is broken.
Claude Code ユーザーはプラグインをインストールすることもできます。以下のフックも追加されます:/plugin marketplace add laaielichter/stashpad、続いて /plugin install stashpad@stashpad(またはReversePort マーケットプレイスから stashpad@reverseport)。
Stashpad を使う理由
- 圧縮後もエージェントが忘れなくなります。 ピン留めしたルールと最新の引き継ぎ内容が、すべてのセッション開始時と
/compactの直後に再び表示されます。 - 設定したルールがエージェントの前に表示され続けます。
stashpad pinは、すべてのブリーフに重要なルールをいくつか保持します。各プロンプトには、明確に一致するメモリだけが表示されます。 - 知らないうちにメモリに追加されることはありません。 エージェント、ツール、ウェブからのノートは人による確認を待ちます。ほぼ同じ内容、秘密情報、隠しテキストは拒否されます。
- 内容を読んで修正し、保持できます。 メモリは出典と日付を含む Markdown ファイルで、プロジェクト内に保存されます。必要なら git で管理できます。古い事実は上書きせず、終了扱いにします。
- 動作し続けます。 プロジェクトごとにストアは 1 つ(ワークツリー間で共有)、並列書き込み用のロック、変更前のスナップショット、修正点を示す
doctorを備えています。
比較
| Stashpad | mem0(オープンソース) | MCP リファレンスメモリサーバー | CLAUDE.md / AGENTS.md を手動で管理 | |
|---|---|---|---|---|
| 必要なもの | Node 20 | LLM と埋め込み/ベクトルストア | Node | なし |
| ストレージ | メモリごとに 1 つの Markdown ファイル | ベクトルストア(+履歴 DB) | 1 つの JSON Lines グラフファイル | 1 つの Markdown ファイル |
| 保存される内容 | 人が書いた内容、またはエージェントが提案して人が承認した内容 | LLM が会話から抽出した事実 | エージェントが書いた内容 | 自分が書いた内容 |
| 検索 | 単語(BM25)+同義語。一部の言い換えは見つかりません | セマンティック(埋め込み) | 部分文字列の一致 | エージェントがすべてを読み込みます |
| 古い事実 | 日付と置き換え履歴を付けて終了扱い | 更新または削除 | その場で編集 | 手動で編集 |
| 圧縮後も保持 | フックによるブリーフ+ピン留め項目+引き継ぎ | クライアントによります | クライアントによります | はい(常に読み込み) |
| 安全性 | レビューキュー、秘密情報と隠しテキストのチェック、データラベル、任意の暗号化 | セットアップによります | 組み込み機能なし | なし |
| ライセンス | MIT | Apache-2.0 | MIT / Apache-2.0 | – |
Stashpad が行わないこと:セマンティック検索(単語検索では、評価で言い換えられた質問の約 3 問中 2 問が見つかります)、チャットからのメモリの自動抽出(設計上行いません)、コンピューター間の同期(git を使用してください)、チーム向け共有サーバー。
セッションの開始と終了
stashpad brief # short summary: pinned rules, newest memories, open handoff
stashpad recall "add a postgres migration" # the few memories that clearly match a request
stashpad handoff leave --text "Half done: auth. Next: tests." # a note the next session reads once
stashpad sync-agents AGENTS.md # put the brief in a file agents already read (no MCP needed)
Claude Code プラグインを使うと、これらはフックとして実行されます。セッション開始時と圧縮後、各プロンプト時、圧縮前(自動引き継ぎ)です。docs/HOOKS.md を参照してください。エージェントは AGENT-GUIDE.md を読んでください。
開発
Node 20 以降が必要です。ほかに依存関係はありません。
npm test # run the tests
npm run build # build dist/
node bin/stashpad.mjs --help
メモリーは、プロジェクト内で最も近い .stashpad/memories フォルダーに保存されます。そのようなフォルダーがなければ、Git のルートに保存されるため、サブフォルダーと Git ワークツリーで同じストアを共有できます。stashpad where を実行すると、フォルダーがどのストアを使用しているか、その理由とともに表示されます。自分で選ぶには、STASHPAD_DIR を設定するか、--dir を渡します。どのプロジェクトでも共通すること(使用言語やコミットのスタイルなど)は、グローバルストアに保存します。--global(または -g)を追加してください。
使用する
stashpad save db-choice --kind decision --source-type user --source-ref "statement in chat" --text "We keep data in SQLite."
stashpad search "sqlite" --json
stashpad save db-choice-v2 --kind decision --source-type user --source-ref "later statement" --text "We keep data in Postgres." --supersedes db-choice
stashpad history db-choice-v2
stashpad search database --kind decision --as-of 2026-03-01 --explain # what was decided on that day, and why it matched
stashpad entities # names, tools and files the memories talk about
stashpad about Postgres # every memory about it, and what is mentioned with it
stashpad confirm db-choice-v2 # still true; doctor flags agent memories nobody confirmed for 180 days
stashpad handoff leave --text "Half done: auth. Next: tests." # a note the next session reads once
stashpad handoff claim # take it (a person's notes first); listing never takes one
stashpad feedback db-choice --signal stale # helpful, stale or wrong; wrong also asks for it to end
stashpad lint # what deserves a look; changes nothing
コマンドライン、MCP サーバー、レビュー用ページは同時に実行できます。書き込みのたびに、ストアが短時間ロックされます。
エージェント、ツール、ウェブからの書き込みはレビュー待ちになります。
stashpad review
stashpad accept <id>
stashpad reject <id> --reason "not verified"
stashpad audit
MCP クライアントから使用する
stashpad setup を実行すると、クライアントに適した設定ブロックが表示されます。Node のフルパスも含まれます(サーバーが接続できない原因として最も多いのは、単独の node を指定することです)。次のようになります。
{
"mcpServers": {
"stashpad": {
"command": "/full/path/to/node",
"args": ["/full/path/to/stashpad/bin/stashpad.mjs", "mcp"]
}
}
}
8 つのツール:stashpad_search、stashpad_get、stashpad_recent、stashpad_about、stashpad_save、stashpad_forget、stashpad_handoff、stashpad_feedback。
チェックとインポート
stashpad eval # 40 notes, 33 queries (English and Dutch), safety checks; no language model is called. Paraphrased questions are measured too (about 2 of 3 found): word search misses some rewordings, and that is reported openly.
stashpad import notes.jsonl # queue memories from an export; they wait for review
stashpad export --out memories.jsonl # back up current memories as JSON Lines (--all adds ended ones)
stashpad save <id> --kind fact --source-type user --source-file notes.txt --text "..." # keeps a copy of the raw source
stashpad review では、レビュー待ちのメモリーが現在のメモリーと競合する可能性があるか、また、そのメモリーを承認すると現在のメモリーが終了するかどうかも表示されます。
ページでレビューする
stashpad ui # opens http://127.0.0.1:4317/ to review, search and read the audit log
stashpad ui --open # the same, and opens the page in your browser
ページにアクセスできるのは、このコンピューターだけです。外部リソースを使用しない、小さなローカルページです。この決定を参照してください。
インポート形式は、JSON Lines(id、kind、text、省略可能な valid_from、source_ref)またはプレーンテキスト(段落ごとに 1 つの事実)です。
原則
- まずはプレーンファイル。ファイルが信頼できる情報源です。
- 人が承認するまで、エージェント、ツール、ウェブページからの内容は保存されません。
- 書き込み時にシークレットを拒否します(キー、トークン、JWT、Bearer トークン、接続文字列内のパスワード)。
- 不可視文字は拒否され、見た目が似た文字や分割された単語で、指示やシークレットを隠すこともできません。
- 指示のようなテキスト(英語とオランダ語)には、レビュアー向けのフラグが付けられます。
- ゲートキーパーは、短すぎるメモや、既存またはレビュー待ちのメモリーとほぼ同じメモをエージェントが記録しようとすると拒否し、その内容を監査ログに記録します。人が書いたメモがブロックされることはありません。
- 上限:メモリー 1 件あたり 4000 文字、レビュー待ちの書き込み 200 件。
- 呼び出されたテキストには、指示ではなくデータとしてラベルが付けられます。
ドキュメント
- 検索語と同義語
- 引き継ぎ、フィードバック、lint、有効期限、ReversePort
- フック:コンパクション後も維持する方法、固定ルール、プロンプトごとの呼び出し
- 暗号化(任意)
- アーキテクチャ
- 変更履歴
- あらゆるエージェントでの使用
- 安全な更新:スナップショット、復元、移行
- メモリーファイル形式
- 検索バックエンドに関する決定
- 現時点ではベクトル検索なし
- サードパーティに関する告知。コードは
npm run portで移植します。このコマンドは、MIT、Apache-2.0、BSD-2-Clause、BSD-3-Clause、ISC 以外のライセンスを拒否します。
FAQ
Stashpad は何かを外部に送信しますか? いいえ。ネットワーク呼び出しやモデルの呼び出しは行わず、テレメトリーもありません。レビュー用ページが待ち受けるのは、このコンピューターだけです。
メモリーはどこにありますか? プロジェクトの .stashpad/memories にあります(stashpad where で確認できます)。開いたり、編集したり、コミットしたりできる Markdown ファイルです。
エージェントはメモリーに好きな内容を書き込めますか? いいえ。エージェントによる書き込みは人の確認待ちになります(stashpad review または stashpad ui)。シークレット、不可視文字、ほぼ同じ内容のメモは拒否され、呼び出された内容にはすべて、指示ではなくデータとしてラベルが付けられます。
MCP クライアントにサーバーの起動失敗を表示されます。 stashpad doctor --client を実行してください。エージェントアプリと同じ方法でサーバーを起動し、修正が必要な箇所を知らせてくれます。
姉妹ツール
同じ作者による、ローカルで使えるオープンソースのツールです。それぞれに専用の MCP サーバーがあります。
- ReversePort:アプリ、ゲーム、バイナリ、ウェブサイトをリバースエンジニアリングし、Godot、Unity、Unreal、three.js および各種言語間で移植します。
re_case rememberは、証明ケースの調査結果を Stashpad のレビューキューに提案します (方法)。 - agentdisk:コーディングエージェント向けのディスクレポートツールです。エージェントが残したワークツリー、チェックポイント、依存関係フォルダーを見つけ、安全なものだけを元に戻せる形でクリーンアップします。
Claude Code では、1 つのマーケットプレイスから 3 つすべてを利用できます:/plugin marketplace add laaielichter/reverseport を実行し、続けて /plugin install reverseport@reverseport、stashpad@reverseport、または agentdisk@reverseport を実行します。
コントリビューションとコミュニティ
アイデア、バグ報告、プルリクエストを歓迎します。CONTRIBUTING.md、初めてのコントリビューションに適した課題、ディスカッションをご覧ください。セキュリティ上の問題については、SECURITY.mdをご覧ください。
ライセンス
MIT。LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。