Skip to main content
Add persistent memory to OpenAI Codex with the Mem0 plugin. Codex forgets everything between tasks. This plugin fixes that by connecting to Mem0’s cloud memory layer via MCP, automatically capturing learnings at key lifecycle points, and retrieving relevant context before every response.

Prerequisites

Before setting up Mem0 with Codex, ensure you have:
  1. A Mem0 Platform account and API key:
  2. OpenAI Codex access
  3. Your API key added to your shell profile (persists across sessions):

Installation

Install the full plugin including MCP server, lifecycle hooks, and SDK skill.
  1. Add the Mem0 marketplace:
  2. Install the plugin:
    Or, in the app: restart Codex, open the Plugin Directory, browse the Mem0 Plugins marketplace, and install Mem0.
Step 1 is required for the app UI. Mem0 isn’t in OpenAI’s curated directory yet, so without codex plugin marketplace add, Mem0 won’t appear in the Codex app’s Plugin Directory: searching for it returns nothing. Adding the marketplace surfaces it (under Created by you) and makes it installable.
Do not combine with Option B. The plugin manifest auto-registers the mem0 MCP server, so adding both will create a duplicate registration.

Option B: Direct MCP

The fastest way to connect Codex to Mem0 needs no plugin or marketplace. Add the MCP server with a single command:
Or add it manually to ~/.codex/config.toml:
Make sure MEM0_API_KEY is exported in the shell you launch Codex from, then restart Codex. This gives you the MCP tools but not the lifecycle hooks or SDK skill.

Managing the Plugin

To update, run codex plugin marketplace upgrade to pull the latest from the Mem0 repo.
After either option, start a new Codex task and ask: “List my mem0 entities” or “Search my memories for hello”. If the mem0 tools appear and respond, you’re all set.

Codex Cloud

Codex Cloud tasks run setup scripts and the agent in separate phases with different variable scoping:
  • Environment Variables persist for the full duration of the task, through both the setup script and the agent phase.
  • Secrets are only available to the setup script; they are wiped before the agent phase starts, so the agent itself cannot read them.
Because the mem0 MCP server authenticates on every tool call the agent makes (not just during setup), set MEM0_API_KEY as an Environment Variable in your Codex Cloud environment configuration, not as a Secret. A Secret will let a setup script authenticate but the agent will lose access to MEM0_API_KEY once the task phase begins, breaking Mem0 MCP calls. Lifecycle hooks that shell out to local scripts (Option A) are not applicable in Codex Cloud’s ephemeral containers; use Option B (Direct MCP) with MEM0_API_KEY set as above.

What’s Included

Available MCP Tools

Once installed, the following tools are available in every Codex session:

Lifecycle Hooks

Unlike Claude Code, Codex has no plugin-host mechanism for auto-wiring hooks from an installed plugin: it only reads hooks from ~/.codex/hooks.json (or <repo>/.codex/hooks.json). Installing the plugin (Option A) does not turn hooks on by itself. To enable them, run the bundled installer once against your local clone:
This merges Mem0’s entries into ~/.codex/hooks.json and is idempotent (safe to re-run after upgrading). It also requires the codex_hooks feature flag in ~/.codex/config.toml:
The installer prints a reminder if the flag isn’t set. Restart Codex after installing hooks or editing the config. To remove: python3 .../install_codex_hooks.py --uninstall. Once enabled, Mem0 hooks into Codex’s lifecycle to automatically manage memory: What you type is stored as yours. What Codex produces (session summaries and compaction summaries) is stored as the assistant’s, so its suggestions never become your stated preferences.

Example Workflow

Troubleshooting

  • “Connection failed”: Verify MEM0_API_KEY is set: echo $MEM0_API_KEY
  • No tools appearing: Restart your Codex session after installation
  • Duplicate mem0 MCP / “tool collision” errors: You combined Option A with Option B. Remove the [mcp_servers.mem0] block from ~/.codex/config.toml; the plugin registers it automatically
  • Hooks not firing: Hooks are opt-in and are not installed by the marketplace install itself. Run scripts/install_codex_hooks.py (see Lifecycle Hooks), confirm codex_hooks = true is set under [features] in ~/.codex/config.toml, and restart Codex. MCP-only installs (Option B) never include hooks

Mem0 MCP Setup

Detailed MCP configuration for all clients

Claude Code Integration

Add Mem0 memory to Claude Code workflows
Using Mem0? Star us on GitHub to help more developers discover memory for AI apps.