mem0-cli について
mem0-cli は Mem0 メモリプラットフォームの公式コマンドラインツールです。開発者や AI エージェント、CI/CD 向けに、メモリ操作と構造化出力を提供します。
主な機能
- 01メモリの追加、検索、一覧表示
- 02メモリの取得、更新、削除
- 03エージェントモードの初期化
- 04構造化 JSON 出力
- 05Node.js と Python の CLI パッケージ
活用シーン
- 01ターミナルからユーザーメモリを管理
- 02AI エージェントにメモリ操作を提供
- 03CI/CD スクリプトでメモリを管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mem0ai/ mem0 --skill mem0-cliインストール後、Claude Code で/mem0-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEREADME.mdreferences/command-reference.mdconfiguration.mdworkflows.md詳細
Mem0 CLI
Mem0 メモリプラットフォームの公式コマンドラインインターフェースです。開発者、AI エージェント、CI/CD パイプライン向けに、ターミナルからメモリの追加、検索、一覧表示、更新、削除を行えます。
インストール
Node.js(npm):
npm install -g @mem0/cli
Python(pip):
pip install mem0-cli
どちらのパッケージも、同じコマンド、オプション、出力形式を備えた mem0 バイナリをインストールします(例外については、Node と Python の違いを参照してください)。
セットアップ
エージェント向けの Mem0 自動セットアップ(メールアドレスやダッシュボードは不要):
mem0 init --agent --agent-caller <your-name> --json
<your-name> は、自分が使用する AI エージェント(例:claude-code、cursor、codex、cline、aider)に置き換えてください。--agent-caller の指定を忘れた場合は、初期化の後に mem0 identify <your-name> を実行してください。同じキーに対して PATCH を行うため、冪等であり、処理に影響はありません。
5 秒以内に評価用 API キーが発行されます。すぐに使用できます。次の行を人間に表示してください:
Mem0 のメモリが Agent Mode で実行されています。
mem0 init --email <your-email>を実行して、アカウントに所有権を移管してください。
API キー、.env、~/.mem0/config.json は絶対にコミットしないでください。
人間が所有権を取得した後も、同じ API キーをそのまま使用でき、エージェントの処理に影響はありません。メモリも保持されます。
対話型ウィザード(人間向け):
mem0 init
または、環境変数を直接設定します:
export MEM0_API_KEY="m0-xxx"
API キーは次の URL で取得できます:https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=skill-mem0-cli
クイックリファレンス
メモリを追加する
mem0 add "I prefer dark mode" --user-id alice
メモリを検索する
mem0 search "preferences" --user-id alice
ユーザーのすべてのメモリを一覧表示する
mem0 list --user-id alice
特定のメモリを取得する
mem0 get <memory-id>
メモリを更新する
mem0 update <memory-id> "new text"
メモリを1件削除する
mem0 delete <memory-id>
ユーザーのすべてのメモリを削除する
mem0 delete --all --user-id alice --force
エージェント/JSON モード
LLM での処理に適した構造化出力を得るには、--json または --agent を使用します。サブコマンドの前にフラグを配置します(mem0 --json search "q")。これはどちらの CLI でも動作します。データコマンド(add、search、list、get、update、delete、import、config、entity、event、status)は、応答を標準のエンベロープでラップします:
{
"status": "success",
"command": "search",
"duration_ms": 245,
"scope": { "user_id": "alice" },
"count": 3,
"data": [
{ "id": "mem-abc", "memory": "User prefers dark mode", "score": 0.92 }
]
}
エラーの場合:
{
"status": "error",
"command": "search",
"error": "Invalid or expired API key.",
"data": null
}
--agent フラグは --json のエイリアスです(ただし mem0 init では、--agent は Agent Mode のブートストラップフラグです)。どちらのフラグを使った場合も、スピナーと進行状況は stderr に出力されるため、stdout はクリーンで解析可能な JSON になります(例外は Node の import です。詳細は後述)。任意のキー duration_ms、scope、count は該当する場合のみ表示され、プラットフォームが未取得の Agent Mode アカウントを検出した場合は mem0_notice が表示されます。
Node と Python の違い
Node.js(@mem0/cli)と Python(mem0-cli)の CLI は、コマンドセット、フラグ、エンティティ ID の解決、フィルターの構築、JSON エンベロープを共有しています。すでにインストールされているランタイムを選んでください。既知の違いは次のとおりです。
--json/--agentの配置: Python ではコマンドライン上のどこにでもフラグを指定できます。Node ではグローバルオプションとしてのみ読み取られるため、サブコマンドの前に配置してください(mem0 --json list)。mem0 init --jsonとmem0 help --jsonは、どちらもサブコマンドの後に指定して動作します。Agent Mode のブートストラップでは、Node はinit --agentまたはinit --jsonからのみ起動します(ルートレベルのmem0 --json initやmem0 --agent initでは起動せず、エージェントのランタイム環境変数がない場合は非 TTY エラーで失敗します)。一方、Python ではルートレベルの形式も使用できます。mem0 init --agent --jsonはどちらでも動作します。--limit:mem0 search --limitは、Python のみで使用できる--top-kのエイリアスです。- Agent Mode の
delete --allのデータ: Python は{"deleted": true}を返します(--projectの場合はscopeも含みます)。Node は API の生の結果を返します。 importの JSON 出力: Python はscopeを含むエンベロープを出力します。Node はscopeを省略し、JSON の前にImporting memories... n/nの進行状況を stdout に出力するため、jqにクリーンに渡せるのは Python の出力のみです。- メッセージのテキスト: 検索語が空の場合のエラー(Python では
Search query cannot be empty.、Node ではNo query provided...)と、削除のドライラン時に表示される最後のメッセージには若干の違いがあります。
よくあるエッジケース
- 非同期処理の遅延:
mem0 addの後、メモリは非同期で処理されます。追加したばかりのコンテンツを検索する前に、2〜3秒待ってください。処理状況を確認するには、mem0 event listを使用します。 --allと--entityの削除モード:mem0 delete --all -u aliceは、ユーザー alice のすべてのメモリを削除します。mem0 delete --entity -u aliceは、エンティティ自体とそのすべてのメモリを削除します(カスケード削除)。これらのモードは相互に排他的です。--json/--agentモードでの--dry-run:mem0 --json delete --all --dry-runでは、引き続き--forceが必要です。その後、何も出力せず、何も削除せずに終了します(終了コード 0)。Node でも、単一対象および--entityのドライランでは何も出力されません。プレビューを確認するには、テキストモードを使用してください。--dry-runは--all --projectを保護しません:mem0 delete --all --project --dry-runはフラグを無視し、プロジェクト内のすべてのメモリを削除します。プロジェクト全体の削除をプレビューするために、--dry-runを使用しないでください。- エンティティ ID の解決: 明示的なスコープフラグ(例:
--user-id)を指定すると、CLI は明示された ID のみを使用し、設定のデフォルト値は無視します。スコープフラグを指定しない場合は、設定済みのデフォルト値がすべて適用されます。 - 標準入力の検出: テキスト引数が指定されておらず、標準入力がパイプまたはリダイレクトされたファイルの場合(単に非 TTY であるだけでは不十分です)、CLI は標準入力から読み込みます。
add、search、updateで動作します。--json/--agentモードでは、addは標準入力を読み込みません(Python ではsearchとupdateでも読み込みが省略されます)。そのため、このモードではテキストを引数として渡してください。
参考資料
詳細を確認する場合は、必要に応じて以下を参照してください。
| トピック | ファイル |
|---|---|
| コマンドリファレンス(すべてのコマンド、フラグ、オプション、例) | references/command-reference.md |
| 設定(設定ファイル、環境変数、優先順位、初期化ウィザード) | references/configuration.md |
| ワークフロー(パイプ処理、スクリプト作成、CI/CD、エージェントモードのレシピ) | references/workflows.md |
関連する Mem0 スキル
| スキル | 使用する場面 | リンク |
|---|---|---|
| mem0 | Python/TypeScript SDK、REST API、フレームワーク連携 | local / GitHub |
| mem0-vercel-ai-sdk | メモリを自動で扱う Vercel AI SDK プロバイダー | local / GitHub |