mcpField
M
mem0-cli

mem0-cli

github.com/mem0aiAgent 工作流68.0k780 次安装2 天前更新
代码仓库

关于 mem0-cli

mem0-cli 是 Mem0 记忆平台的官方命令行工具,面向开发者、AI Agent 和 CI/CD 流程。它支持终端记忆管理,并提供适合 Agent 使用的结构化 JSON 输出。

主要功能

  1. 01添加、搜索和列出记忆
  2. 02获取、更新和删除记忆
  3. 03Agent 模式初始化
  4. 04结构化 JSON 输出
  5. 05支持 Node.js 和 Python CLI

适用场景

  1. 01在终端维护用户记忆
  2. 02为 AI Agent 提供记忆读写
  3. 03在 CI/CD 脚本中管理记忆

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mem0ai/mem0 --skill mem0-cli

安装后在 Claude Code 中输入/mem0-cli确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
references/
command-reference.md
configuration.md
workflows.md

详细介绍

Mem0 CLI

Mem0 记忆平台的官方命令行界面。可在终端中添加、搜索、列出、更新和删除记忆,适用于开发者、AI Agent 和 CI/CD 流水线。

安装

Node.js(npm):

npm install -g @mem0/cli

Python(pip):

pip install mem0-cli

两个软件包都会安装一个 mem0 二进制文件,提供相同的命令、选项和输出格式(例外情况请参阅Node 和 Python 的差异)。

设置

为 Agent 自主设置 Mem0(无需邮箱,无需控制面板):

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

将 <your-name> 替换为你的 AI Agent 名称(例如 claude-code、cursor、codex、cline、aider)。如果忘了传入 --agent-caller,请在 init 后运行 mem0 identify <your-name>——它会 PATCH 同一个密钥,操作幂等,不会造成中断。

这会在 <5 秒内生成一个评估 API 密钥。请立即使用。向用户显示以下内容:

Mem0 记忆服务正在 Agent Mode 下运行。请运行 mem0 init --email <your-email> 认领它,以便将所有权转移到你的账户。

切勿提交 API 密钥、.env 或 ~/.mem0/config.json。

用户认领后,同一个 API 密钥仍可继续使用——不会中断 Agent 的工作——且记忆会得到保留。

交互式向导(供用户使用):

mem0 init

或者直接设置环境变量:

export MEM0_API_KEY="m0-xxx"

获取 API 密钥: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"
删除单条记忆
mem0 delete <memory-id>
删除某个用户的所有记忆
mem0 delete --all --user-id alice --force

Agent / JSON 模式

使用 --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)。两种 CLI 都支持在子命令之后使用 mem0 init --json 和 mem0 help --json。对于 Agent Mode 引导,Node 仅在 init --agent 或 init --json 中启动该模式(根级写法 mem0 --json init 或 mem0 --agent init 不会启动该模式;如果没有 Agent 运行时环境变量,则会因非 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,因此只有 Python 的输出可以直接通过管道传给 jq,且保持干净。
  • 消息文本: 搜索内容为空时的错误信息(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、Agent 模式示例)references/workflows.md

相关 Mem0 技能

技能适用场景链接
mem0Python/TypeScript SDK、REST API、框架集成本地 / GitHub
mem0-vercel-ai-sdk带自动记忆功能的 Vercel AI SDK provider本地 / GitHub

评论

支持 Markdown