Metadata-Version: 2.4
Name: zerodb-mem0
Version: 0.1.0
Summary: Drop-in mem0ai replacement backed by ZeroDB. Same API, free cloud storage.
Author-email: AINative Studio <dev@ainative.studio>
License-Expression: MIT
Project-URL: Homepage, https://github.com/AINative-Studio/zerodb-mem0
Project-URL: Documentation, https://docs.ainative.studio
Project-URL: Repository, https://github.com/AINative-Studio/zerodb-mem0
Project-URL: Issues, https://github.com/AINative-Studio/zerodb-mem0/issues
Keywords: mem0,mem0-alternative,mem0ai-alternative,ai-memory,agent-memory,persistent-memory,semantic-search,zerodb,ainative,zeromemory,knowledge-graph,vector-database,embeddings,long-term-memory,episodic-memory,semantic-memory,cognitive-memory,claude,cursor,windsurf,mcp,free-memory,rag,langchain,llama-index,crewai
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Database
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.28
Dynamic: license-file

# zerodb-mem0

**Drop-in replacement for [mem0ai](https://pypi.org/project/mem0ai/) backed by ZeroDB.**

Same API. Free cloud storage. No Mem0 Cloud pricing.

[![PyPI](https://img.shields.io/pypi/v/zerodb-mem0)](https://pypi.org/project/zerodb-mem0/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Why switch?

| | mem0ai | zerodb-mem0 |
|---|---|---|
| **Cloud storage** | Mem0 Cloud (paid) | ZeroDB (free tier) |
| **Self-hosted** | Requires Qdrant/Postgres | Works out of the box |
| **Benchmark** | Not published | 100% Recall@1 (LongMemEval) |
| **Knowledge graph** | Basic | Full graph with GraphRAG |
| **Provisioning** | Manual setup | Auto-provision on first use |
| **License** | Apache-2.0 | MIT |

## Installation

```bash
pip install zerodb-mem0
```

## Migration (30 seconds)

Change one import:

```python
# Before
from mem0 import Memory

# After
from zerodb_mem0 import Memory
```

That's it. Every method works the same.

## Quick Start

```python
from zerodb_mem0 import Memory

# Auto-provisions a free ZeroDB project on first use
m = Memory()

# Store memories
m.add("I love Italian food, especially pizza", user_id="alice")
m.add("I'm allergic to shellfish", user_id="alice")
m.add("My favorite restaurant is Pizzeria Delfina", user_id="alice")

# Search by meaning (not keywords)
results = m.search("food preferences", user_id="alice")
for r in results:
    print(f"  {r['memory']} (score: {r['score']:.2f})")

# Get all memories for a user
all_memories = m.get_all(user_id="alice")
print(f"Total memories: {len(all_memories)}")

# Delete a specific memory
m.delete(memory_id=results[0]["id"])

# Delete all memories for a user
m.delete_all(user_id="alice")
```

## API Reference

### `Memory(api_key=None, project_id=None, base_url=None)`

Create a memory client. Credentials are resolved in order:
1. Constructor arguments
2. Environment variables (`ZERODB_API_KEY`, `ZERODB_PROJECT_ID`)
3. Config file (`~/.zerodb/config.json`)
4. Auto-provision (free, no signup required)

### Core Methods (mem0ai-compatible)

| Method | Description |
|--------|-------------|
| `add(data, user_id=None, metadata=None)` | Store a memory |
| `search(query, user_id=None, limit=10)` | Semantic search |
| `get_all(user_id=None)` | Get all memories |
| `get(memory_id)` | Get a specific memory |
| `delete(memory_id)` | Delete a memory |
| `delete_all(user_id=None)` | Delete all user memories |
| `update(memory_id, data)` | Update a memory |
| `history(memory_id)` | Get memory history |

### Extended Methods (ZeroDB-only)

These methods are not available in mem0ai:

| Method | Description |
|--------|-------------|
| `reflect(entity_id, user_id=None)` | Generate insights from memories |
| `relate(subject, predicate, obj)` | Create knowledge graph edges |
| `graph_search(query, user_id=None)` | Hybrid vector + graph search |

## Configuration

### Environment Variables

```bash
export ZERODB_API_KEY="your-api-key"
export ZERODB_PROJECT_ID="your-project-id"
# Optional: custom API endpoint
export ZERODB_BASE_URL="https://api.ainative.studio"
```

### Config File

```json
// ~/.zerodb/config.json
{
  "api_key": "your-api-key",
  "project_id": "your-project-id"
}
```

### Auto-Provisioning

If no credentials are found, `zerodb-mem0` automatically creates a free ZeroDB project. The credentials are saved to `~/.zerodb/config.json` for future use.

## Use with AI Frameworks

### LangChain

```python
from zerodb_mem0 import Memory
from langchain.memory import ConversationBufferMemory

mem = Memory()

# Store conversation context
mem.add(f"User asked about {topic}", user_id=session_id)

# Recall relevant context
context = mem.search(user_message, user_id=session_id)
```

### CrewAI

```python
from zerodb_mem0 import Memory

mem = Memory()

# Agent stores learned facts
mem.add("Client prefers weekly updates", user_id="project-123")

# Another agent recalls context
facts = mem.search("client communication preferences", user_id="project-123")
```

## Benchmark

ZeroDB achieves **100% Recall@1** on the [LongMemEval](https://github.com/xiaowu0162/LongMemEval) benchmark, the standard evaluation for long-term memory systems.

## License

MIT
