Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

mem0-cli — Claude Code skill: what it does, how to install

This skill lets an agent use Mem0 memory operations from a terminal, including adding, searching, reading, updating, and deleting records.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add mem0ai/mem0 --skill mem0-cli -a claude-code
Open on GitHub

What mem0-cli does

mem0-cli gives an agent Mem0's command-line interface. It can add and search memories, retrieve a record by ID, update or delete entries, and list memories for a user. The CLI also supports structured output through --json or --agent, which is useful when an agent needs to parse the result.

You can install the command with Node.js using npm install -g @mem0/cli or with Python using pip install mem0-cli; both packages provide the mem0 binary. The MEM0_API_KEY environment variable is required before use. New memories are processed asynchronously after mem0 add, so a search may need a short wait. Check the runtime first: Node.js accepts global --json only before the subcommand.

What it helps with

  • add facts to Mem0 from a terminal
  • search memories for a user or query
  • retrieve and update a memory by ID
  • remove one record or all memories for a user

Example prompts for the agent

  • Add this fact to Mem0 for user `alice`: I prefer dark mode. Use `mem0 add`.
  • Search Mem0 for `preferences` for user `alice` and return the result as JSON.
  • Retrieve the Mem0 record with ID `mem-abc` using `mem0 get`.

How to install mem0-cli

1Skills CLI (Vercel)

npx skills add mem0ai/mem0 --skill mem0-cli -a claude-code

2Manually: put the files in place

~/.claude/skills/mem0-cli/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/mem0-cli/

From the same set4

The whole set →

Similar

k-schoollunch-menu NomaDamas Finds Korean school meal menus by education office and school name. Useful when an agent needs to look up a school’s meals from a natural-language request. Claude Code CX Codex Cursor +1 6,700installs smb-router official anthropics Routes open-ended business requests to a relevant skill or slash command. Use it when you need help choosing a workflow or deciding where to start. Claude Code CX Codex Cursor +1 1,600installs smb-onboard official anthropics Onboards small business owners by connecting their first two tools, running a recipe on live data, capturing business context, and setting up weekly check-ins. Claude Code CX Codex Cursor +1 1,600installs llm-wiki Hermes Agent A skill for building a persistent knowledge base from interlinked markdown files. The agent summarizes sources, cross-references pages, and maintains consistency while you curate and direct the analysis. Claude Code CX Codex Cursor +1 603installs ce-work EveryInc Executes a plan document or build spec end-to-end with local verification. Ideal for implementing features without reopening architectural debates. Claude Code CX Codex Cursor +1 3,600installs ce-doc-review EveryInc This skill reviews requirements, plans, and specs through role-based reviewers. Use it to catch consequential issues in an existing document and apply fixes within the granted authority. Claude Code CX Codex Cursor +1 3,600installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs

Questions about mem0-cli

How do I install mem0-cli in Claude Code?

Run npx skills add mem0ai/mem0 --skill mem0-cli -a claude-code, run the same command a second time, then check ~/.claude/skills/mem0-cli/SKILL.md.

What does mem0-cli do?

The skill gives an agent terminal access to Mem0 operations such as adding, searching, reading, updating, and deleting memories. Use --json or --agent for structured output.

What does mem0-cli need to run?

Set the MEM0_API_KEY environment variable first. The CLI runs with Node.js 18+ or Python 3.10+.

Source text

SKILL.md · Apache-2.0
---
name: mem0-cli
description: >
  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).
license: Apache-2.0
metadata:
  author: mem0ai
  version: "1.2.0"
  category: ai-memory
  tags: "cli, terminal, memory, ai, command-line"
  mem0_tested_versions: "mem0-cli (PyPI) >=0.2.13,<0.3.0; @mem0/cli (npm) >=0.2.14,<0.3.0; mem0ai (PyPI) >=2.0.0,<3.0.0; mem0ai (npm) >=3.0.0,<4.0.0"
compatibility: Node.js 18+ (npm install -g @mem0/cli) or Python 3.10+ (pip install mem0-cli), MEM0_API_KEY env var
---

# 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/cli
```

**Python (pip):**
```bash
pip install mem0-cli
```

Both packages install a `mem0` binary with the same commands, options, and output formats (see [Node and Python Differences](#node-and-python-differences) for the exceptions).

## Setup

**Autonomous Mem0 setup for agents (no email, no dashboard):**

```bash
mem0 init --agent --agent-caller <your-name> --json
```

Replace `<your-name>` with the AI agent you are (e.g. `claude-code`, `cursor`, `codex`, `cline`, `aider`). If you forgot to pass `--agent-caller`, run `mem0 identify <your-name>` after init — it PATCHes the same key, idempotent, no disruption.

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 running `mem0 init --email <your-email>` to transfer ownership to your account.

Never commit API keys, `.env`, or `~/.mem0/config.json`.

After the human claims, the same API key keeps working — no agent disruption — and memories are preserved.

**Interactive wizard (for humans):**
```bash
mem0 init
```

**Or set the environment variable directly:**
```bash
export MEM0_API_KEY="m0-xxx"
```

Get an API key at: https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=skill-mem0-cli

## Quick Reference

### Add a memory
```bash
mem0 add "I prefer dark mode" --user-id alice
```

### Search memories
```bash
mem0 search "preferences" --user-id alice
```

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

### Get 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 --force
```

## Agent / JSON Mode

Use `--json` or `--agent` to get structured output suitable for LLM consumption. Place the flag before the subcommand (`mem0 --json search "q"`), which works in both CLIs. Data commands (add, search, list, get, update, delete, import, config, entity, event, status) wrap their response in a standard envelope:

```json
{
  "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 }
  ]
}
```

On error:
```json
{
  "status": "error",
  "command": "search",
  "error": "Invalid or expired API key.",
  "data": null
}
```

The `--agent` flag is an alias for `--json` (except on `mem0 init`, where `--agent` is the Agent Mode bootstrap flag). Both write spinners and progress to stderr so stdout is clean, parseable JSON (the one exception is Node `import`, see below). Optional keys: `duration_ms`, `scope`, `count` appear only where relevant, and `mem0_notice` appears when the platform flags an unclaimed Agent Mode account.

## Node and Python Differences

Both the Node.js (`@mem0/cli`) and Python (`mem0-cli`) CLIs share the command set, flags, entity ID resolution, filter building, and the JSON envelope. Choose whichever runtime you already have installed. Known differences:

- **`--json` / `--agent` placement:** Python accepts the flag anywhere on the command line. Node reads it only as a global option, so put it before the subcommand (`mem0 --json list`). `mem0 init --json` and `mem0 help --json` work after the subcommand in both. For the Agent Mode bootstrap, Node starts it only from `init --agent` or `init --json` (a root-level `mem0 --json init` or `mem0 --agent init` does not start it, and without an agent runtime env var it fails with the non-TTY error), while Python also accepts those root-level forms. `mem0 init --agent --json` works in both.
- **`--limit`:** `mem0 search --limit` is a Python-only alias for `--top-k`.
- **Agent-mode `delete --all` data:** Python returns `{"deleted": true}` (plus scope for `--project`); Node returns the raw API result.
- **`import` JSON output:** Python prints the envelope with `scope`. Node omits `scope` and writes the `Importing memories... n/n` progress line to stdout before the JSON, so only Python's output pipes cleanly to `jq`.
- **Message text:** The empty-search error (`Search query cannot be empty.` in Python, `No query provided...` in Node) and the delete dry-run footers differ slightly.

## Common Edge Cases

- **Async processing delay:** After `mem0 add`, memories process asynchronously. Wait 2-3 seconds before searching for newly added content. Use `mem0 event list` to check processing status.
- **`--all` vs `--entity` delete modes:** `mem0 delete --all -u alice` deletes all memories for user alice. `mem0 delete --entity -u alice` deletes the entity itself AND all its memories (cascade). These are mutually exclusive modes.
- **`--dry-run` in `--json`/`--agent` mode:** `mem0 --json delete --all --dry-run` still requires `--force`, then prints nothing and deletes nothing (exit 0). Node also prints nothing for single and `--entity` dry runs. Use text mode to see the preview.
- **`--dry-run` does not protect `--all --project`:** `mem0 delete --all --project --dry-run` ignores the flag and deletes every memory in the project. Never use `--dry-run` to preview a project-wide delete.
- **Entity ID resolution:** If you pass any explicit scope flag (e.g. `--user-id`), the CLI uses ONLY the explicit IDs and ignores config defaults. If no scope flags are given, all configured defaults apply.
- **Stdin detection:** When no text argument is provided and stdin is a pipe or a redirected file (a plain non-TTY is not enough), the CLI reads from stdin. Works with `add`, `search`, and `update`. In `--json`/`--agent` mode `add` never reads stdin (Python also skips it for `search` and `update`), so pass the text as an argument there.

## References

Load these on demand for deeper detail:

| Topic | File |
|-------|------|
| Command reference (all commands, flags, options, examples) | [references/command-reference.md](references/command-reference.md) |
| Configuration (config file, env vars, precedence, init wizard) | [references/configuration.md](references/configuration.md) |
| Workflows (piping, scripting, CI/CD, agent mode recipes) | [references/workflows.md](references/workflows.md) |

## Related Mem0 Skills

| Skill | When to use | Link |
|-------|-------------|------|
| mem0 | Python/TypeScript SDK, REST API, framework integrations | [local](../mem0/SKILL.md) / [GitHub](https://github.com/mem0ai/mem0/tree/main/skills/mem0) |
| mem0-vercel-ai-sdk | Vercel AI SDK provider with automatic memory | [local](../mem0-vercel-ai-sdk/SKILL.md) / [GitHub](https://github.com/mem0ai/mem0/tree/main/skills/mem0-vercel-ai-sdk) |

© mem0ai · Apache-2.0 · mem0ai/mem0

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor