memry について
memryは、AIコーディングエージェント向けの永続メモリサービスです。決定や発見をセッションやプロジェクト間で引き継ぎ、CLIで対応エージェントを設定してプロジェクトの記憶を読み込めます。
主な機能
- 01セッションをまたぐメモリ保存
- 02エージェントの記憶の保存と検索
- 03開始時に最近のプロジェクト情報を読み込み
- 04CLIによる対応エージェントの設定
- 05複数リポジトリを同じプロジェクトに分類
活用シーン
- 01以前の決定を踏まえてコーディングを再開
- 02保存したバグ修正や発見を検索
- 03関連リポジトリ間でプロジェクト情報を共有
MCP 対応
memry setupは、選択したエージェントにmemry MCPサーバーを登録します。記憶の保存と検索に使うツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
memry
memry は、セッションやプロジェクトをまたいで引き継がれる永続的なメモリを、AI コーディングエージェントに提供します。あるセッションで保存した決定事項、バグ修正、発見事項は次のセッションでも利用できるため、同じコンテキストを何度も説明する必要がありません。
必要条件
- macOS、Linux、または Windows(amd64 または arm64)
- サポート対象のエージェントを少なくとも 1 つ。Claude Code の場合は、その CLI(
claude)がPATHに含まれている必要があります。
インストール
Homebrew を使用する場合:
brew install mrtheroi/tap/memry
memry setup
ほかの方法で memry をインストールする場合(依存関係のない単一のバイナリです):
-
Go を使用する場合:
go install github.com/mrtheroi/memry-cli/cmd/memry@latest。バイナリは$(go env GOPATH)/binに配置されます。このディレクトリはPATHに含まれている必要があります。 -
リリースからインストールする場合:お使いのシステム用の
memry_<version>_<os>_<arch>.tar.gzアーカイブをダウンロードし、checksums.txtと照合したうえで、アーカイブ内のmemryバイナリをPATHに配置します。例:tar -xzf memry_1.0.0_darwin_arm64.tar.gz memry sudo install -m 0755 memry /usr/local/bin/memry
Windows の場合は、Windowsを参照してください。
エージェントは memry をインストール先のパスから実行します。そのため、Homebrew 以外でインストールした場合は、バイナリを移動せずにその場所に置いてください。移動した場合は、memry setup を再度実行してください。
memry setup では、メールアドレスを入力すると 6 桁のログインコードが送信されます。その後、使用するエージェントを選択すると、選択したエージェントに memry が接続されます(マシン上で見つかったエージェントはあらかじめ選択されています。スペースキーで選択し、Enter キーで確定します)。その後、エージェントで新しいセッションを開始すると、memry を使用できます。
たとえばスクリプト内で、プロンプトを表示せずにエージェントを選択するには、エージェントのキーを渡します。
memry setup --agents=claude-code,codex
選択を変更するには、memry setup を再度実行します。選択解除したエージェントから memry が削除されます。
Claude Code プラグイン
このリポジトリは Claude Code プラグインマーケットプレイスでもあります。memry プラグインには、CLI のインストールから memry setup の実行までを案内する /memry:setup スキルが含まれています。
ターミナルから実行する場合:
claude plugin marketplace add mrtheroi/memry-cli
claude plugin install memry@memry
Claude Code のセッション内から実行する場合:
/plugin marketplace add mrtheroi/memry-cli
/plugin install memry@memry
Claude Code 2.1.275 以降では、セッション内のコマンド 1 つで両方を実行できます。
/plugin install memry --marketplace mrtheroi/memry-cli。
このプラグイン自体は MCP サーバーを登録しません。登録は memry setup が行うため、memry が二重に接続されることはありません。
セルフホスト
セルフホストの memry サーバーでは、メールログインの代わりに管理者がトークンを作成します。次の手順で接続してください。
memry setup --url https://memry.company.internal --token
--token を指定する場合は --url が必須です。そのため、トークンが公開サーバーに送信されることはありません。セットアップでは、トークンを画面に表示せずに入力し、保存前にサーバーで有効性を確認してから、通常どおり使用するエージェントを尋ねます。スクリプトでは、環境変数 MEMRY_TOKEN を設定してください。値を指定せずに --token を指定すると、--no-interaction を併用した場合も含め、プロンプトの代わりにこの環境変数が使われます。トークンはプロセス一覧に表示されません。--token=<token> を指定した場合もプロンプトを省略できます(MEMRY_TOKEN より優先されます)が、その場合、トークンはシェル履歴とプロセス一覧に残ります。
MEMRY_TOKEN="$token" memry setup --url https://memry.company.internal --token --no-interaction
MEMRY_TOKEN が読み取られるのは --token と併用した場合のみです。そのため、メールログインには影響しません。
https:// の URL を使用してください。セットアップではトークンまたはログインコードをサーバーに送信し、memry mcp は保存されたトークンをすべてのリクエストに含めて送信するため、http:// の URL が許可されるのはこのマシン宛て(localhost、127.x.x.x アドレス、または [::1])の場合のみです。それ以外の http:// サーバーでは、セットアップは入力や送信を始める前に停止し、次のメッセージを表示します:"Refusing to send credentials over plain HTTP to . Use an https:// URL, or pass --insecure to allow it (for example on a trusted LAN).". --insecure を指定するのは、信頼できるネットワーク上に限ってください。その場合、認証情報は暗号化されずに送信されます。同じルールは MEMRY_URL にも適用されます。
Windows
WinGet でインストールし、新しいターミナルでセットアップを実行すると、memry コマンドが PATH に追加されます。
winget install Memry.Memry
memry setup
ほかのインストール方法:
- Go を使う場合:
go install github.com/mrtheroi/memry-cli/cmd/memry@latest。バイナリは%GOPATH%\bin(go env GOPATH)に配置されます。このディレクトリをPATHに追加する必要があります。 - リリースから入手する場合:
memry_<version>_windows_<arch>.zip(amd64またはarm64)をダウンロードし、checksums.txtと照合します(cosign で署名されています。リリースプロセスにある cosign コマンドを参照)。その中のmemry.exeをPATHに追加します。
winget upgrade Memry.Memry で更新できます。アンインストールするには、memry uninstall を実行してから winget uninstall memry を実行します。手動でインストールした場合、memry uninstall を実行すると削除する memry.exe のパスが表示されます。
macOS および Linux との違い:
- 設定ファイル。
%USERPROFILE%\.config\memry\config.jsonにあり、読み取れるのは自分のユーザーのみです。memry はUSERPROFILE、次にHOME、次にLOCALAPPDATAの 2 階層上からホームディレクトリを検出します。いずれも設定されていない場合は、"Could not find your home directory; set USERPROFILE or HOME." というエラーで終了します(すべての OS で、ホームディレクトリが設定されていない場合はエラーになります)。別の場所に設定するには、--configまたはMEMRY_CONFIGを使います。 - Claude Code。 セットアップでは memry をローカルの
memry mcpサーバー(claude mcp add --transport stdio --scope user memry -- <memry.exe> mcp)として登録し、同じ SessionStart フックを追加します。claude.exeとclaude.cmdの両方に対応しています。 - フックは名前で
memryを実行するため、memryがPATHに含まれている必要があります。WinGet を使う場合は自動的に設定されます。go installを使う場合は、%GOPATH%\binをPATHに追加してください。Claude Code はフックに自身のPATHを渡すため、インストール後は、Claude Code の起動に使うターミナルまたはエディター(VS Code、JetBrains)を再起動してください。インストール前に開いたウィンドウではmemryが認識されず、フックはエラーを出さずにコンテキストを読み込まなくなります。Git Bash ではなく CMD で Claude Code を実行する場合、CMD は最初にカレントディレクトリを検索するため、信頼できないmemry.exeがあるフォルダーからセッションを開始しないでください。 - ウイルス対策ソフトと SmartScreen。
memry.exeには Authenticode 署名がないため、SmartScreen またはウイルス対策ソフトが警告を表示する場合があります。ダウンロードを確認するには、CONTRIBUTING.mdの説明に従って署名済みのchecksums.txtを検証し、アーカイブの SHA-256 と照合してください。 - カラー表示に対応していないターミナル。 レガシーコンソールでは、エージェントに関する質問は
Agents: <list> (pass --agents to choose).に置き換わり、デフォルトが維持されます。選択するには--agentsを使ってください。
カスタム設定ファイル
デフォルトでは、memry はログイン情報を ~/.config/memry/config.json に保存します。別のファイルを使うには、環境変数 MEMRY_CONFIG を設定するか、setup、uninstall、delete-account にグローバルオプション --config <path>(または --config=<path>)を渡します。
memry setup --config ~/work/memry.json
優先順位は --config、次に MEMRY_CONFIG、最後にデフォルトです。それぞれの設定は、そのプロセスにのみ適用されます。セットアップでは、このファイルをエージェントに登録するコマンドにも渡すため、それらのコマンドも同じログイン情報を読み取ります。
対応エージェント
| エージェント | キー | memry setup によって追加される内容 |
|---|---|---|
| Claude Code | claude-code | memry MCP サーバー(ユーザースコープ)と、セッション開始時にメモリを読み込むフック。 |
| Codex | codex | ~/.codex/config.toml の memry MCP サーバーと、~/.codex/AGENTS.md の memry 指示。 |
| OpenCode | opencode | ~/.config/opencode/opencode.json の memry MCP サーバーと、~/.config/opencode/AGENTS.md の memry 指示。 |
| Antigravity | antigravity | ~/.gemini/config/mcp_config.json の memry MCP サーバーと、~/.gemini/config/GEMINI.md の memry 指示。 |
| Windsurf | windsurf | ~/.codeium/windsurf/mcp_config.json の memry MCP サーバーと、グローバルルール(~/.codeium/windsurf/memories/global_rules.md)の memry 指示。 |
セットアップで追加されるのは memry 独自の項目のみです。これらのファイル内のそれ以外の内容は保持され、memry uninstall ではセットアップで追加した項目だけが削除されます。ログイントークンがエージェントのファイルに書き込まれることはありません。
仕組み
-
メールコードでログインします。 メールで送信されるワンタイムコードを使ってサインインします。パスワードを覚えておく必要はありません。
-
エージェントとの連携。 セットアップでは、選択した各エージェントに
memryMCP サーバーを登録し、メモリを保存して検索するためのツールをエージェントに提供します。 -
セッション開始時のコンテキスト。 新しいセッションごとに現在のプロジェクトの最近のメモリを読み込み、エージェントが前回の続きから作業できるようにします。Claude Code ではフックを使って読み込みます(再開したセッションや圧縮されたセッションでも同様です)。ほかのエージェントには、最初の手順として読み込むよう指示されます。
-
プロジェクト。 デフォルトでは、リポジトリのプロジェクト名はそのディレクトリ名です。複数のリポジトリを1つのプロジェクトにまとめるには(たとえば、1つの製品のバックエンドとフロントエンド)、各リポジトリのルートに
.memry.jsonファイルを追加します。{"project": "my-product"}
使用状況メトリクス(オプトイン)
memry はテレメトリを送信しません。memry ダッシュボードに Claude Code のトークン使用量とコストを表示したい場合は、明示的に有効にしてください。
memry usage enable # off by default
memry usage status # on or off as far as memry can see, and where to (never prints the token)
memry usage disable # turn it off again
memry usage enable を実行すると、送信されるデータについて説明し、使用状況メトリクスのみを送信できる使用状況トークンを memry サーバーに要求したうえで、Claude Code の OpenTelemetry メトリクスのエクスポートを ~/.claude/settings.json(または現在のディレクトリを基準に解決される相対パスの $CLAUDE_CONFIG_DIR/settings.json)の env に設定します。対象は CLAUDE_CODE_ENABLE_TELEMETRY、OTEL_METRICS_EXPORTER、OTEL_EXPORTER_OTLP_METRICS_PROTOCOL、OTEL_EXPORTER_OTLP_METRICS_ENDPOINT、OTEL_EXPORTER_OTLP_METRICS_HEADERS と、false に設定されるすべての OTEL_METRICS_INCLUDE_* ゲートです。設定を反映するには Claude Code を再起動してください。設定ファイルには使用状況トークンが保存されるため、memry はユーザー本人だけが読み取れる状態にします。
送信されるデータと保持されるデータ
- Claude Code は、何を送信するかを決定します。その内容は 監視ガイドに記載されています。トークン 使用量、コスト、セッション、コード行数などのメトリクスに、メールアドレスや 組織 ID などの識別属性、およびメトリクス固有の属性が含まれます。この一覧は網羅的なものではなく、Claude Code の 新しいバージョンで追加される可能性があります。memry は可能な範囲で、任意の属性に関する設定をオフにします。
- 保証となるのは memry サーバーです。memry アカウントに紐づけられたトークンとコストのデータポイント(カウントまたはコスト、モデル、トークンの種類、クエリの送信元、時間枠)のみを保持し、それ以外は受信時に破棄します。生の属性は保存せず、系列を区別するためのキー付きハッシュのみを保存します。
- memry は Claude Code のログやトレースを有効にしないため、プロンプトやコードが memry 経由で送信されることはありません。
memry が確認する内容と、確認できない内容
トークンを要求する前に、enable は実行元シェルの環境、settings.json、および Claude Code のファイルベースの管理対象設定(macOS では /Library/Application Support/ClaudeCode 内の managed-settings.json と managed-settings.d/*.json、Linux と WSL では /etc/claude-code、Windows では C:\Program Files\ClaudeCode)を確認します。--force の指定にかかわらず、memry 独自の変数に memry の値が設定されている場合を除き、該当するテレメトリー設定があると処理を停止します。対象は、すべての OTEL_*、CLAUDE_CODE_ENABLE_TELEMETRY*、CLAUDE_CODE_ENHANCED_TELEMETRY*、ENABLE_ENHANCED_TELEMETRY*、CLAUDE_CODE_OTEL_*、*BETA_TRACING* 変数、および otelHeadersHelper 設定です。ただし、エクスポーターが none に設定されている場合と、すでに memry の値が設定されている変数は除きます。読み取れない管理対象設定ファイルや、policyHelper を設定しているファイルがある場合も処理を停止します(memry は決してこれを実行しません)。有効なポリシーを判定できないためです。settings.json で memry 独自の変数に別の値が設定されている場合は、--force を指定しない限り処理を停止します。このマシン以外を指す通常の http:// サーバーには、memry setup と同様に --insecure が必要です。
memry は、セッションごとの --settings ファイル、管理対象ポリシーヘルパーの計算結果、MDM プロファイル、Windows レジストリ、サーバー管理の設定、Claude Code の実際の起動元環境を確認できません。これらはいずれも、Claude Code が送信するデータや送信先を変更する可能性があるため、status は「memry が確認できる範囲で」の情報を報告します。mTLS を使用している場合、Claude Code がクライアント証明書(CLAUDE_CODE_CLIENT_CERT)を memry サーバーに提示することもあります。
memry が記録する内容
- memry は、書き込んだ内容を memry 設定ファイル内の
usage_metricsに記録します(読み取れるのはユーザー本人のみです)。記録されるのは、サーバー、設定ファイル、各変数とその正確な値、使用状況トークンの ID、すでに memry の値に設定されていた変数です。すでに設定されていた変数は、memry が書き込んだり削除したりすることはありません。変数が memry のものと見なされるのは、記録された値と完全に一致している場合だけです。disable、memry uninstall、memry delete-accountは、記録されたファイルから該当するものだけを削除し、空になったenvを削除して、処理が成功するまで記録を保持します。 - memry が取り消すのは、記録されたサーバー上で、記録された正確な使用状況トークンだけです。そのため、ほかのマシンのトークンは引き続き機能します。取り消しはベストエフォートで行われ、未使用のトークンは30日後に機能しなくなります。別のサーバーまたは
CLAUDE_CONFIG_DIRに対してenableを実行すると、最初の設定でdisableを実行するまで停止します。別のサーバーに対してmemry setupを実行しても、記録は保持されます。 enableは設定を書き込む前に、新しい設定を保留中として保存します。そのため、中断されたenableは次の使用状況コマンドで処理されます。enableが失敗しても何も変更されず、使用中のトークンは引き続き機能します。- memry は、ファイルを確認したときとバイト単位で完全に同じ状態である場合にのみ設定を書き込み、置き換える直前にも再確認します。ファイルシステムには、ほかのプログラムとの間で真の比較交換操作を行う仕組みがないため、同じ瞬間に別のプログラムが
settings.jsonに書き込むと、最後に書き込んだ側の内容が反映されます。使用状況コマンド、memry setup、memry uninstall、memry delete-accountは、ユーザーのキャッシュディレクトリ内にあるmemry/のロックを共有します。このディレクトリはユーザー本人だけがアクセスできる必要があり、これにより memry 設定への変更が互いに上書きされることはありません。ロックが引き継がれることはありません。クラッシュ後には、削除するロックファイルの名前がエラーに表示されます。 - memry 設定が存在していても、JSON オブジェクトとして読み取れない場合、使用状況コマンド、
memry uninstall、memry delete-accountは何も変更せずに停止します。
更新
brew upgrade memry
Windows では、winget upgrade Memry.Memry を実行してください。パッケージマネージャーを使わない場合は、同じ go install を再実行するか、新しいリリースのバイナリに置き換えてください。アップグレード後も、ログインとエージェントの設定は引き続き機能します。
アンインストール
memry uninstall
brew uninstall memry
memry uninstall は確認を求めてから、エージェントから memry を削除し、ローカルのログイン情報を削除します。確認を省略するには、memry uninstall --force を使用してください。Homebrew を使わない場合は、brew uninstall を実行する代わりに memry バイナリを削除してください。Windows では、代わりに winget uninstall memry を実行してください(memry uninstall は、インストール方法に応じたヒントを表示します)。
アカウントを削除する
memry delete-account
memry delete-account は、memry アカウントとサーバー上のすべてのメモリーを完全に削除してから、memry uninstall と同様にエージェントから memry を削除し、ローカルのログイン情報を削除します。この操作は元に戻せないため、確認のためにアカウントのメールアドレスの入力を求めます。
データについて
メモリーは memry サーバーに保存され、アカウントに紐付けられます。memry uninstall はこのマシン上のトークンを取り消すため、このマシンからメモリーにアクセスできなくなります。memry delete-account はメモリーを削除します。使用状況メトリクスは、有効にした場合にのみ送信されます(使用状況メトリクスのオプトインを参照)。memry が保存する情報とその取り扱いについては、プライバシーポリシー(スペイン語)をご覧ください。
ライセンス
memry は MIT ライセンスのもとで公開されています。リリースノートは CHANGELOG.md、開発とトラブルシューティングについては CONTRIBUTING.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。