with one click
pin
// Pins or unpins a memory to protect it from pruning during dream consolidation. Use when a memory is critical and must never be removed, such as architecture decisions, security constraints, or immutable team conventions.
// Pins or unpins a memory to protect it from pruning during dream consolidation. Use when a memory is critical and must never be removed, such as architecture decisions, security constraints, or immutable team conventions.
Sets up mem0 for a new project including API key configuration, MCP authentication, project file import, and coding categories. Use on first run in a new project, when API key needs updating, or to re-run initial setup after configuration changes.
Overrides the auto-detected project scope to read and write memories under a different project ID, or enables global search to access all memories across all users and projects. Use when working across multiple projects, accessing memories from another repo, enabling team-wide memory access, or when auto-detection resolves to the wrong project.
Sets up mem0 for a new project including API key configuration, MCP authentication, project file import, and coding categories. Use on first run in a new project, when API key needs updating, or to re-run initial setup after configuration changes.
Overrides the auto-detected project scope to read and write memories under a different project ID, or enables global search to access all memories across all users and projects. Use when working across multiple projects, accessing memories from another repo, enabling team-wide memory access, or when auto-detection resolves to the wrong project.
Mem0 SDK reference covering Python and TypeScript APIs, memory client methods, configuration, and framework integrations. Use when writing code that calls mem0 APIs, configuring memory providers, or integrating mem0 into an application.
Searches and injects relevant memories into context before starting work on a task. Use when beginning a new task, switching context, or when project history, past decisions, or coding conventions need to be loaded.
| name | pin |
| description | Pins or unpins a memory to protect it from pruning during dream consolidation. Use when a memory is critical and must never be removed, such as architecture decisions, security constraints, or immutable team conventions. |
Pin a memory to mark it as high-priority and protect from pruning.
The user provides either a search query or memory ID.
If memory ID:
get_memory with the ID.If search query:
search_memories with the query, filters={"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}]}, top_k=5.Call get_memory with the selected memory ID. Store:
original_text — the memory's text contentoriginal_metadata — the existing metadata dictThe MCP update_memory tool only accepts memory_id, text, and source — it
does not accept a metadata parameter. To pin, append a pin marker to the text:
pinned_text = "[PINNED] " + original_text if not original_text.startswith("[PINNED]") else original_text
update_memory(memory_id=<selected_id>, text=pinned_text)
For new memories (user wants to pin text that isn't stored yet):
add_memory with:
text="[PINNED] <the user's text>"user_id=<active_user_id>app_id=<active_project_id>metadata={"pinned": true, "type": "decision", "confidence": 1.0}infer=Falseevent_id. Call get_event_status(event_id=<event_id>) once to retrieve the memory ID, then confirm.Pinned: "<memory content, first 80 chars>"
Memory ID: <id>
Append ... only if content exceeds 80 characters.
If the user says "unpin":
get_memory to read current content.unpinned_text = original_text.removeprefix("[PINNED] ")
update_memory(memory_id=<id>, text=unpinned_text)
Unpinned: "<content>..."