Skip to main content
The mem0 CLI lets you add, search, list, update, and delete memories directly from the terminal. It works with the Mem0 Platform API and is available as both an npm package and a Python package. Both implementations provide identical behavior — same commands, same options, same output formats.

Installation

npm install -g @mem0/cli

Authentication

Run the interactive setup wizard to configure your API key:
mem0 init
This prompts for your API key and a default user ID, validates the connection, and saves the configuration locally. For CI/CD or non-interactive environments, pass both values as flags:
mem0 init --api-key m0-xxx --user-id alice
You can also set your API key via environment variable:
export MEM0_API_KEY="m0-xxx"

Quick start

# Add a memory
mem0 add "I prefer dark mode and use vim keybindings" --user-id alice

# Search memories
mem0 search "What are Alice's preferences?" --user-id alice

# List all memories for a user
mem0 list --user-id alice

# Get a specific memory
mem0 get <memory-id>

# Update a memory
mem0 update <memory-id> "I prefer light mode now"

# Delete a memory
mem0 delete <memory-id>

Commands

mem0 init

Interactive setup wizard. Prompts for your API key and default user ID.
mem0 init
mem0 init --api-key m0-xxx --user-id alice

mem0 add

Add a memory from text, a JSON messages array, a file, or stdin.
mem0 add "I prefer dark mode" --user-id alice
mem0 add --file conversation.json --user-id alice
echo "Loves hiking on weekends" | mem0 add --user-id alice
FlagDescription
-u, --user-idScope to a user
--agent-idScope to an agent
--messagesConversation messages as JSON
-f, --fileRead messages from a JSON file
-m, --metadataCustom metadata as JSON
--categoriesCategories (JSON array or comma-separated)
--graph / --no-graphEnable or disable graph memory extraction
-o, --outputOutput format: text, json, quiet
Search memories using natural language.
mem0 search "dietary restrictions" --user-id alice
mem0 search "preferred tools" --user-id alice --output json --top-k 5
FlagDescription
-u, --user-idFilter by user
-k, --top-kNumber of results (default: 10)
--thresholdMinimum similarity score (default: 0.3)
--rerankEnable reranking
--keywordUse keyword search instead of semantic
--filterAdvanced filter expression (JSON)
--graph / --no-graphEnable or disable graph in search
-o, --outputOutput format: text, json, table

mem0 list

List memories with optional filters and pagination.
mem0 list --user-id alice
mem0 list --user-id alice --category preferences --output json
mem0 list --user-id alice --after 2024-01-01 --page-size 50
FlagDescription
-u, --user-idFilter by user
--pagePage number (default: 1)
--page-sizeResults per page (default: 100)
--categoryFilter by category
--afterCreated after date (YYYY-MM-DD)
--beforeCreated before date (YYYY-MM-DD)
-o, --outputOutput format: text, json, table

mem0 get

Retrieve a specific memory by ID.
mem0 get 7b3c1a2e-4d5f-6789-abcd-ef0123456789
mem0 get 7b3c1a2e-4d5f-6789-abcd-ef0123456789 --output json

mem0 update

Update the text or metadata of an existing memory.
mem0 update <memory-id> "Updated preference text"
mem0 update <memory-id> --metadata '{"priority": "high"}'
echo "new text" | mem0 update <memory-id>

mem0 delete

Delete a single memory, all memories for a scope, or an entire entity.
# Delete a single memory
mem0 delete <memory-id>

# Delete all memories for a user
mem0 delete --all --user-id alice --force

# Delete all memories project-wide
mem0 delete --all --project --force

# Preview what would be deleted
mem0 delete --all --user-id alice --dry-run
FlagDescription
--allDelete all memories matching scope filters
--entityDelete the entity and all its memories
--projectWith --all: delete all memories project-wide
--dry-runPreview without deleting
--forceSkip confirmation prompt

mem0 import

Bulk import memories from a JSON file.
mem0 import data.json --user-id alice
The file should be a JSON array where each item has a memory (or text or content) field and optional user_id, agent_id, and metadata fields.

mem0 config

View or modify the local CLI configuration.
mem0 config show              # Display current config (secrets redacted)
mem0 config get api_key       # Get a specific value
mem0 config set user_id bob   # Set a value

mem0 entities

List or delete entities (users, agents, apps).
mem0 entities list
mem0 entities list --type agent --output json
mem0 entities delete --user-id alice --force

mem0 status

Verify your API connection and display the current project.
mem0 status

mem0 version

Print the CLI version.
mem0 version

Output formats

All commands support the --output flag to control how results are displayed:
FormatDescription
textHuman-readable output with colors and formatting (default for most commands)
jsonStructured JSON, suitable for piping to jq or consumption by AI agents
tableTabular format (default for list)
quietMinimal output — just IDs or status codes
Example with JSON output:
mem0 search "user preferences" --user-id alice --output json | jq '.data.results[].memory'

Use with AI agents

The CLI is designed to be used by AI agents and automation tools. Two features make this straightforward:
  • --output json returns structured data that agents can parse directly
  • mem0 help --json returns the full command tree as JSON, so agents can discover available commands programmatically
# Agent adds a memory
mem0 add "User prefers concise responses" --user-id user-42 --output quiet

# Agent searches memories and parses results
mem0 search "response preferences" --user-id user-42 --output json
For non-interactive environments (CI, agent runtimes), use mem0 init --api-key --user-id or set the MEM0_API_KEY environment variable to skip interactive prompts.

Environment variables

VariableDescription
MEM0_API_KEYAPI key (overrides config file)
MEM0_BASE_URLAPI base URL
MEM0_USER_IDDefault user ID
MEM0_AGENT_IDDefault agent ID
MEM0_APP_IDDefault app ID
MEM0_RUN_IDDefault run ID
MEM0_ENABLE_GRAPHEnable graph memory (true / false)
Environment variables take precedence over values in the config file, which take precedence over defaults.

Global flags

These flags are available on all commands that interact with the API:
FlagDescription
--api-keyOverride the configured API key for this request
--base-urlOverride the configured API base URL for this request
-o, --outputSet the output format

What’s next

Quickstart

Store your first memory in under five minutes using the SDK or CLI

Memory Operations

Learn about add, search, update, and delete operations in depth

API Reference

See the complete REST API documentation