Skip to main content

The official CLI for mem0 — the memory layer for AI agents

Project description

mem0 CLI (Python)

The official command-line interface for mem0 — the memory layer for AI agents. Python implementation.

Built for AI agents. Pass --agent (or --json) as a global flag on any command to get structured JSON output optimized for programmatic consumption — sanitized fields, no colors or spinners, and errors as JSON too.

Prerequisites

  • Python 3.10+

Installation

Using pipx (recommended)

pipx install mem0-cli

Using pip

pip install mem0-cli

Note: On macOS with Homebrew Python, pip install outside a virtual environment will fail with an externally-managed-environment error (PEP 668). Use pipx instead, or install inside a virtual environment.

Quick start

# Interactive setup wizard
mem0 init

# Or login via email
mem0 init --email alice@company.com

# Or authenticate with an existing API key
mem0 init --api-key m0-xxx

# 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 switched to light mode"

# 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 init --email alice@company.com

If an existing configuration is detected, the CLI asks for confirmation before overwriting. Use --force to skip the prompt (useful in CI/CD).

mem0 init --api-key m0-xxx --user-id alice --force
Flag Description
--api-key API key (skip prompt)
-u, --user-id Default user ID (skip prompt)
--email Login via email verification code
--code Verification code (use with --email for non-interactive login)
--force Overwrite existing config without confirmation

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
Flag Description
-u, --user-id Scope to a user
--agent-id Scope to an agent
--messages Conversation messages as JSON
-f, --file Read messages from a JSON file
-m, --metadata Custom metadata as JSON
--categories Categories (JSON array or comma-separated)
--graph / --no-graph Enable or disable graph memory extraction
-o, --output Output format: text, json, quiet

mem0 search

Search memories using natural language.

mem0 search "dietary restrictions" --user-id alice
mem0 search "preferred tools" --user-id alice --output json --top-k 5
Flag Description
-u, --user-id Filter by user
-k, --top-k Number of results (default: 10)
--threshold Minimum similarity score (default: 0.3)
--rerank Enable reranking
--keyword Use keyword search instead of semantic
--filter Advanced filter expression (JSON)
--graph / --no-graph Enable or disable graph in search
-o, --output Output 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
Flag Description
-u, --user-id Filter by user
--page Page number (default: 1)
--page-size Results per page (default: 100)
--category Filter by category
--after Created after date (YYYY-MM-DD)
--before Created before date (YYYY-MM-DD)
-o, --output Output 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
Flag Description
--all Delete all memories matching scope filters
--entity Delete the entity and all its memories
--project With --all: delete all memories project-wide
--dry-run Preview without deleting
--force Skip 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 entity

List or delete entities (users, agents, apps, runs).

mem0 entity list users
mem0 entity list agents --output json
mem0 entity delete --user-id alice --force

mem0 event

Inspect background processing events created by async operations (e.g. bulk deletes, large add jobs).

# List recent events
mem0 event list

# Check the status of a specific event
mem0 event status <event-id>
Flag Description
-o, --output Output format: text, json

mem0 status

Verify your API connection and display the current project.

mem0 status

mem0 version

Print the CLI version.

mem0 version

Agent mode

Pass --agent (or its alias --json) as a global flag on any command to get output designed for AI agent tool loops:

mem0 --agent search "user preferences" --user-id alice
mem0 --agent add "User prefers dark mode" --user-id alice
mem0 --agent list --user-id alice
mem0 --agent delete --all --user-id alice --force

Every command returns the same envelope shape:

{
  "status": "success",
  "command": "search",
  "duration_ms": 134,
  "scope": { "user_id": "alice" },
  "count": 2,
  "data": [
    { "id": "abc-123", "memory": "User prefers dark mode", "score": 0.97, "created_at": "2026-01-15", "categories": ["preferences"] }
  ]
}

What agent mode does differently from --output json:

  • Sanitized data: only the fields an agent needs (id, memory, score, etc.) — no internal API noise
  • No human output: spinners, colors, and banners are suppressed entirely
  • Errors as JSON: errors go to stdout as {"status": "error", "command": "...", "error": "..."} with a non-zero exit code

Use mem0 help --json to get the full command tree as JSON — useful for agents that need to self-discover available commands.

Output formats

Control how results are displayed with --output:

Format Description
text Human-readable with colors and formatting (default)
json Structured JSON for piping to jq (raw API response)
table Tabular format (default for list)
quiet Minimal — just IDs or status codes
agent Structured JSON envelope with sanitized fields (set by --agent/--json)

Global flags

These flags are available on all commands:

Flag Description
--json Enable agent mode: structured JSON envelope output, no colors or spinners
--agent Alias for --json
--api-key Override the configured API key for this request
--base-url Override the configured API base URL for this request
-o, --output Set the output format

Environment variables

Variable Description
MEM0_API_KEY API key (overrides config file)
MEM0_BASE_URL API base URL
MEM0_USER_ID Default user ID
MEM0_AGENT_ID Default agent ID
MEM0_APP_ID Default app ID
MEM0_RUN_ID Default run ID
MEM0_ENABLE_GRAPH Enable graph memory (true / false)

Environment variables take precedence over values in the config file, which take precedence over defaults.

Development

cd cli/python
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# Run during development
python -m mem0_cli --help
mem0 add "test memory" --user-id alice

Releasing

  1. Update version in pyproject.toml
  2. Create a GitHub Release with tag cli-v<version> (e.g. cli-v0.2.1)

For a pre-release, use a beta version like 0.2.1b1 and check the pre-release checkbox.

Documentation

Full documentation is available at docs.mem0.ai/platform/cli.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mem0_cli-0.2.2.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mem0_cli-0.2.2-py3-none-any.whl (41.9 kB view details)

Uploaded Python 3

File details

Details for the file mem0_cli-0.2.2.tar.gz.

File metadata

  • Download URL: mem0_cli-0.2.2.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mem0_cli-0.2.2.tar.gz
Algorithm Hash digest
SHA256 68ba27228e9e3ec0598138d31bdf291ba3c0136feceb1d07d087ee7c74319cb4
MD5 721bffcd1ebf41f7562882ed4c5f751e
BLAKE2b-256 9126d19eb2e4c6ab90b230865eb23914a719fcd612e5682c122bd856caaf4cd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mem0_cli-0.2.2.tar.gz:

Publisher: cli-python-cd.yml on mem0ai/mem0

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mem0_cli-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: mem0_cli-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 41.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mem0_cli-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2309994baca41a25f183841fcfb0e0929ce246cf1f3d344e77fd15dc62d1cde6
MD5 e66e4180dae635ae3d53fac4aeedc128
BLAKE2b-256 3a896a4253a060001c81641d584aaf82180d85b3635d0b711612410be197db31

See more details on using hashes here.

Provenance

The following attestation bundles were made for mem0_cli-0.2.2-py3-none-any.whl:

Publisher: cli-python-cd.yml on mem0ai/mem0

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page