@mem0/pi-agent-plugin. Your agent forgets everything between sessions. This plugin fixes that by automatically capturing knowledge from conversations, storing it in Mem0’s cloud memory layer, and retrieving relevant context before every response.
Overview
The plugin provides:- Auto-capture: Extracts durable facts from both user and assistant messages automatically
- Semantic recall: Retrieves relevant memories via the
mem0_memorytool before each response - Dream consolidation: Periodic maintenance: merges duplicates, resolves contradictions, prunes stale entries
- Monorepo-aware scoping: Uses git root for project detection, consistent across subdirectories
- Confirmation dialogs: Destructive commands ask before acting via Pi’s built-in UI
- 8 skills + 8 commands: Essential memory management from slash commands and agent-guided workflows
Prerequisites
-
A Mem0 Platform account and API key:
- Sign up at app.mem0.ai
- Get your API key (starts with
m0-)
- Pi Agent installed (pi.dev)
- Your API key added to your shell profile:
Installation
MEM0_API_KEY from your environment is picked up automatically.
Start a new Pi session and run
/mem0-status to verify the connection. You should see your user ID, detected project, and memory count.Optional Configuration
For advanced settings, create~/.pi/agent/mem0-config.json:
What’s Included
Agent Tool
Themem0_memory tool is registered with Pi and callable by the agent during conversations:
All actions accept an optional
scope parameter: project (default), session, or global.
Tool output is truncated to 200 lines / 50KB to prevent context overflow.
Commands
Memory Scopes
Memories are scoped using Mem0’suser_id, app_id, and run_id parameters:
The
app_id is auto-detected from the git repository root (git rev-parse --show-toplevel), so all subdirectories within a monorepo share the same memory pool. Falls back to the working directory name for non-git directories. The run_id is derived from Pi’s session file path.
Dream Consolidation
Confirmation Dialogs
Destructive and mutating commands use Pi’s built-inctx.ui.confirm() dialog before acting:
/mem0-forgetasks “Delete this memory?” before deleting a single match/mem0-pinasks “Pin this memory?” before modifying it- Cancelling either operation is always safe. No changes are made
Pin
/mem0-pin uses Mem0’s update() API to prepend [PINNED] to the memory text. This preserves the original memory ID. There is no add+delete cycle that would lose history or change the UUID.
Dream Consolidation
The plugin includes automated memory maintenance (“dream”) that merges duplicates, resolves contradictions, and prunes stale entries. When enabled, dreams auto-trigger after enough sessions, time, and memories accumulate (configurable viadream.* settings). Run /mem0-dream to trigger consolidation manually at any time. Pinned memories (via /mem0-pin) are protected from pruning.
Example Workflow
Troubleshooting
- “No API key found”: Verify
MEM0_API_KEYis set:echo $MEM0_API_KEY. If empty, add it to your shell profile (see Prerequisites) - Extension not loading: Check Pi startup output for errors. Run
pi -e ./src/entry.tsfrom the plugin directory for verbose output - Memories not capturing: Verify
autoCaptureistrue(default). Check/mem0-statusfor connection health - Wrong project detected: The plugin uses the git repository root as
app_id. If not in a git repo, it falls back to the working directory name. Run/mem0-statusto see the detected project - Dream not triggering: All three gates must pass (time, sessions, memories). Use
/mem0-dreamto force it manually
Claude Code Integration
Add Mem0 memory to Claude Code
OpenClaw Integration
Add Mem0 memory to OpenClaw agents
Using Mem0? Star us on GitHub to help more developers discover memory for AI apps.