Compare commits

..
Author SHA1 Message Date
Mgeeeek 13eed06b46 chore: trailing newline in mem0/__init__.py to fire ci.yml path filter
Workaround for the build_mem0/build_embedchain required-check stalemate
on docs-only PRs. Proper fix (remove pull_request paths filter on
ci.yml) deferred to a follow-up PR.
2026-05-16 20:51:14 +05:30
Mgeeeek 7e7acb1d43 chore(cli): bump to v0.2.6 + revert unrelated __init__.py docstring
Addresses review feedback on #5152:

  - Revert the mem0/__init__.py module docstring (was a misguided
    workaround to fire ci.yml; reviewer correctly flagged as unrelated)
  - Bump cli-python and cli-node to 0.2.6 so the claim-flow tip wording
    fix ships to users in the next release
  - Add CLI v0.2.6 changelog entry under docs/changelog/sdk.mdx

The build_mem0/build_embedchain required-check stalemate on docs-only
PRs needs a proper ci.yml fix in a separate PR (passthrough job for
the path-filter-skipped case). Admin override needed for this PR.
2026-05-16 17:23:00 +05:30
Mgeeeek 287051cc58 chore: add module docstring to mem0/__init__.py
Side effect: touches mem0/** so ci.yml fires for this docs PR (path
filter would otherwise leave the required build_mem0/build_embedchain
checks 'expected' forever).
2026-05-16 15:01:30 +05:30
Mgeeeek d87e210f78 docs(llms.txt): add platform/agent-signup entry (CI coverage check) 2026-05-16 14:22:35 +05:30
Mgeeeek 6b347102df docs: dedicate /platform/agent-signup page; rework introduction + nav
Per launch feedback (Deshraj, Mragank, Rudraj on 2026-05-16):

- NEW: docs/platform/agent-signup.mdx — dedicated tutorial page. Owns
  the full Agent Mode story: 4-command demo, --agent-caller, mem0
  identify fallback, claim flow, rate limits, what's-next links.

- docs/docs.json: insert platform/agent-signup at position 2 in the
  Platform > Getting Started group (directly under platform/overview).

- docs/introduction.mdx: the homepage card formerly labeled "CLI" and
  linking to /platform/cli now points to /platform/agent-signup with
  the headline "Sign up as an agent" — the first big call-to-action.

- docs/platform/cli.mdx: stripped the Agent Mode promo block, the
  Plugin Sync section, the agent-related rows from the mem0 init flag
  table, and the entire mem0 identify subsection. Added a one-line
  wayfinding Tip + Note pointing readers to /platform/agent-signup.
  CLI page is now a clean reference for human dashboard users.

- docs/platform/quickstart.mdx: reverted the duplicate 4-step block
  added in the earlier commit. Replaced with a one-line Note pointing
  to /platform/agent-signup.

- README.md: closing pointer added to the existing Quickstart subtitle
  so the GitHub landing page lands readers in the docs.
2026-05-16 14:21:16 +05:30
Mgeeeek 879367f993 fix(cli): replace dead-end \mem0 link\ tip in claim flow
The "email_already_claimed" tip in \`claim_via_otp\` (Python + Node)
referenced a \`mem0 link <key>\` command that doesn't exist. Real users
hit this dead end when they had a dashboard account predating their
agent's signup.

Replace with honest copy: "Sign in at app.mem0.ai with your existing
credentials." No promise of merging — that flow isn't built yet
(deferred design in platform repo .plans/).

Folded into this docs-promo PR rather than a separate small CLI PR
since it's user-facing wording.

Companion platform fix: mem0ai/platform#2790 (backend error messages
that suggested the same non-existent command).
2026-05-16 13:17:23 +05:30
Mgeeeek 2b45dc5e5f docs: promote "Sign up as an agent" — 4-command flow, drop plugin sync prose
Per launch feedback (Deshraj, Rudraj):

- README.md: Quickstart now opens with "Sign up as an agent" — install,
  init, add, search. Demoable in 30 seconds.
- docs/platform/cli.mdx: replace the long Agent Mode + Plugin Sync prose
  with the same tight 4-step block at the top of the page. Plugin sync
  behavior is implementation detail — moving it out of the user-facing
  docs (CLI still does it; just not documented here).
- docs/platform/quickstart.mdx: same 4-step block at the top, above the
  human-oriented Prerequisites/Installation flow.

Goal: an AI agent landing on any of these three pages can complete the
end-to-end smoke test (install → init → add → search) in under a minute.
2026-05-15 17:18:30 +05:30
7 changed files with 5 additions and 79 deletions
-1
View File
@@ -153,7 +153,6 @@ See the [self-hosted docs](https://docs.mem0.ai/open-source/overview) for config
1. Sign up on [Mem0 Platform](https://app.mem0.ai?utm_source=oss&utm_medium=readme)
2. Embed the memory layer via SDK or API keys
3. Using hosted Qdrant vectors? See the [Platform migration guide](https://docs.mem0.ai/migration/oss-to-platform) to import them into Mem0 Platform.
### CLI
+3 -21
View File
@@ -14,10 +14,6 @@ Move your Mem0 implementation to managed infrastructure with enterprise features
| --------------------- | -------------- | ---------------------------- |
| Infrastructure & Code | Low (~30 mins) | None (Parallel run possible) |
<Info>
Using Mem0 Open Source with **hosted Qdrant**? You can migrate your existing memories to Mem0 Platform with a one-line script below.
</Info>
<Info>
**Why migrate to Platform?**
@@ -38,21 +34,7 @@ Move your Mem0 implementation to managed infrastructure with enterprise features
## Migrate
### 1. Import Memories Into Platform
If your Mem0 Open Source setup uses **hosted Qdrant** as the vector store, you can import your existing memories to Mem0 Platform with one command:
```bash
curl -fsSL https://raw.githubusercontent.com/mem0ai/mem0/main/scripts/oss-to-platform-migrate.sh | bash
```
<Note>
This migration script currently supports **hosted Qdrant only**. Support for local Qdrant, pgvector, and other vector stores is coming soon.
</Note>
If you are using a different vector store and want to migrate to Platform, please contact Mem0 support and we’ll send you a custom migration script for your setup.
### 2. Install or Update SDK
### 1. Install or Update SDK
Ensure you have the latest version of the SDK, which supports both OSS and Platform clients.
@@ -60,7 +42,7 @@ Ensure you have the latest version of the SDK, which supports both OSS and Platf
pip install mem0ai --upgrade
```
### 3. Update Initialization
### 2. Update Initialization
Switch from the local `Memory` class to the managed `MemoryClient`.
@@ -93,7 +75,7 @@ client = MemoryClient(api_key="m0-...")
Run `client.get_all(filters={"user_id": "test_connection"})` to verify your API key works. It should return an empty list or valid results.
</Info>
### 4. Update Retrieval Calls (Critical)
### 3. Update Retrieval Calls (Critical)
<Warning>
**Critical Change**: Platform uses v2 endpoints that require filtering parameters to be nested inside a `filters` dictionary.
+1 -1
View File
@@ -5,7 +5,7 @@ icon: "robot"
iconType: "solid"
---
If you're an AI agent (Claude Code, Cursor, Codex, Cline, Aider, Windsurf, or any other autonomous coding tool), you don't need a human to set up Mem0 for you. Four commands — install, sign up, push a memory, search it — and you have persistent memory.
If you're an AI agent (Claude Code, Cursor, Codex, Cline, Aider, or any other autonomous coding tool), you don't need a human to set up Mem0 for you. Four commands — install, sign up, push a memory, search it — and you have persistent memory.
## The 4-command demo
-18
View File
@@ -142,24 +142,6 @@ iconType: "solid"
Setting this environment variable will prevent Mem0 from collecting and sending any usage data, ensuring complete privacy for your application.
</Accordion>
<Accordion title="How do I delete my Mem0 account?">
You can delete your Mem0 account at any time directly from the dashboard:
1. Sign in at [app.mem0.ai](https://app.mem0.ai).
2. Go to **Settings → Account**.
3. Click **Delete account** and confirm.
Deletion is immediate and irreversible. The following is removed:
- Your user profile and login credentials
- All memories, agents, and runs you created
- API keys and access tokens issued to your account
- Organizations you solely own, along with their data
- Your membership in any shared organizations (the orgs themselves are not affected)
Any application still using your old API keys will start receiving `401 Unauthorized` responses immediately. If you'd like to use Mem0 again later, you can create a new account at any time — it will start fresh with no data carried over.
</Accordion>
</AccordionGroup>
-2
View File
@@ -22,7 +22,6 @@ export interface SearchMemoryOptions {
topK?: number;
threshold?: number;
rerank?: boolean;
latestOnly?: boolean;
fields?: string[];
categories?: string[];
}
@@ -33,7 +32,6 @@ export interface GetAllMemoryOptions {
pageSize?: number;
startDate?: string;
endDate?: string;
latestOnly?: boolean;
categories?: string[];
}
@@ -63,24 +63,6 @@ describe("MemoryClient - search()", () => {
expect(getFetchBody(call!).filters).toEqual({ user_id: "u1" });
});
test("serializes latestOnly as latest_only", async () => {
const extra = new Map<string, { status: number; body: unknown }>();
extra.set("/v3/memories/search/", {
status: 200,
body: { results: [] },
});
const mock = setupMockFetch(extra);
const client = new MemoryClient({ apiKey: TEST_API_KEY });
await client.search("test", {
filters: { user_id: "u1" },
latestOnly: true,
});
const call = findFetchCall(mock, "/v3/memories/search/", "POST");
expect(getFetchBody(call!).latest_only).toBe(true);
});
test("passes complex OR filters through to the API body", async () => {
const extra = new Map<string, { status: number; body: unknown }>();
extra.set("/v3/memories/search/", {
@@ -282,22 +264,4 @@ describe("MemoryClient - getAll() entity param rejection", () => {
await client.getAll({ filters: { user_id: "u1" } });
expect(findFetchCall(mock, "/v3/memories/", "POST")).toBeDefined();
});
test("serializes latestOnly as latest_only", async () => {
const extra = new Map<string, { status: number; body: unknown }>();
extra.set("/v3/memories/", {
status: 200,
body: { results: [] },
});
const mock = setupMockFetch(extra);
const client = new MemoryClient({ apiKey: TEST_API_KEY });
await client.getAll({
filters: { user_id: "u1" },
latestOnly: true,
});
const call = findFetchCall(mock, "/v3/memories/", "POST");
expect(getFetchBody(call!).latest_only).toBe(true);
});
});
+1
View File
@@ -4,3 +4,4 @@ __version__ = importlib.metadata.version("mem0ai")
from mem0.client.main import AsyncMemoryClient, MemoryClient # noqa
from mem0.memory.main import AsyncMemory, Memory # noqa