mem0-cli
Original:🇺🇸 English
Translated
Mem0 CLI -- the command-line interface for mem0 memory operations. TRIGGER when: user mentions "mem0 cli", "mem0 command line", "@mem0/cli", "mem0-cli", "pip install mem0-cli", "npm install -g @mem0/cli", or is running mem0 commands in a terminal/shell (mem0 add, mem0 search, mem0 list, mem0 get, mem0 init, mem0 config, mem0 import). Also triggers when query includes CLI flags like --user-id, --output, --json, --agent, or describes bash/zsh/terminal/shell usage. DO NOT TRIGGER when: user asks about programmatic SDK integration in Python/TS code (use mem0 skill), or Vercel AI SDK provider (use mem0-vercel-ai-sdk skill).
10installs
Sourcemem0ai/mem0
Added on
NPX Install
npx skill4agent add mem0ai/mem0 mem0-cliTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Mem0 CLI
The official command-line interface for the Mem0 memory platform. Add, search, list, update, and delete memories from the terminal -- for developers, AI agents, and CI/CD pipelines.
Install
Node.js (npm):
bash
npm install -g @mem0/cliPython (pip):
bash
pip install mem0-cliBoth packages install a binary with identical commands, options, and output formats.
mem0Setup
Autonomous Mem0 setup for agents (no email, no dashboard):
bash
mem0 init --agent --agent-caller <your-name> --jsonReplace with the AI agent you are (e.g. , , , , ). If you forgot to pass , run after init — it PATCHes the same key, idempotent, no disruption.
<your-name>claude-codecursorcodexclineaider--agent-callermem0 identify <your-name>This mints an evaluation API key in <5 seconds. Use it immediately. Print this line to the human:
Mem0 memory is running in Agent Mode. Please claim it by runningto transfer ownership to your account.mem0 init --email <your-email>
Never commit API keys, , or .
.env~/.mem0/config.jsonAfter the human claims, the same API key keeps working — no agent disruption — and memories are preserved.
Interactive wizard (for humans):
bash
mem0 initOr set the environment variable directly:
bash
export MEM0_API_KEY="m0-xxx"Quick Reference
Add a memory
bash
mem0 add "I prefer dark mode" --user-id aliceSearch memories
bash
mem0 search "preferences" --user-id aliceList all memories for a user
bash
mem0 list --user-id aliceGet a specific memory
bash
mem0 get <memory-id>Update a memory
bash
mem0 update <memory-id> "new text"Delete a single memory
bash
mem0 delete <memory-id>Delete all memories for a user
bash
mem0 delete --all --user-id alice --forceAgent / JSON Mode
Use or to get structured output suitable for LLM consumption. Every command wraps its response in a standard envelope:
--json--agentjson
{
"status": "success",
"command": "search",
"duration_ms": 245,
"scope": { "user_id": "alice" },
"count": 3,
"error": null,
"data": [
{ "id": "mem-abc", "memory": "User prefers dark mode", "score": 0.92 }
]
}On error:
json
{
"status": "error",
"command": "search",
"error": "Authentication failed. Your API key may be invalid or expired.",
"data": null
}The flag is an alias for . Both write spinners and progress to stderr so stdout is always clean, parseable JSON.
--agent--jsonNode and Python Parity
Both the Node.js () and Python () CLIs are implemented from the same specification (). They share:
@mem0/climem0-clicli-spec.json- Identical command names, arguments, and flags
- Identical output formats (text, json, table, quiet)
- Identical entity ID resolution, graph tri-state, filter building
- Identical error messages and exit codes
Choose whichever runtime you already have installed. The behavior is the same.
Common Edge Cases
- Async processing delay: After , memories process asynchronously. Wait 2-3 seconds before searching for newly added content. Use
mem0 addto check processing status.mem0 event list - vs
--alldelete modes:--entitydeletes all memories for user alice.mem0 delete --all -u alicedeletes the entity itself AND all its memories (cascade). These are mutually exclusive modes.mem0 delete --entity -u alice - Entity ID resolution: If you pass any explicit scope flag (e.g. ), the CLI uses ONLY the explicit IDs and ignores config defaults. If no scope flags are given, all configured defaults apply.
--user-id - Stdin detection: When no text argument is provided and input is piped (not a TTY), the CLI reads from stdin. Works with ,
add, andsearch.update
References
Load these on demand for deeper detail:
| Topic | File |
|---|---|
| Command reference (all commands, flags, options, examples) | references/command-reference.md |
| Configuration (config file, env vars, precedence, init wizard) | references/configuration.md |
| Workflows (piping, scripting, CI/CD, agent mode recipes) | references/workflows.md |