Metadata-Version: 2.1
Name: jeanmemory
Version: 2.0.0
Summary: Python SDK for Jean Memory - Add long-term memory to your Python agents and backend services
Home-page: https://github.com/jean-technologies/jean-memory
Author: Jean Memory
Author-email: support@jeanmemory.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/jean-technologies/jean-memory/issues
Project-URL: Documentation, https://jeanmemory.com/docs
Project-URL: Homepage, https://jeanmemory.com
Keywords: jean-memory ai chatbot personalization sdk
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
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 :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: openai

# Jean Memory Python SDK

The official Python SDK for Jean Memory - Build personalized AI chatbots with persistent memory.

## Installation

```bash
pip install jeanmemory
```

## Quick Start

```python
from jeanmemory import JeanAgent
import os

# Create agent
agent = JeanAgent(
    api_key=os.getenv("JEAN_API_KEY")
)

# Run the agent
agent.run()
```

## Features

- 🧠 **Persistent Memory**: Conversations remember previous interactions
- 🚀 **Easy Setup**: Get started in 3 lines of code
- 🔒 **Secure**: OAuth 2.1 authentication with JWT tokens
- ⚡ **Fast**: Optimized for production use
- 🐍 **Pythonic**: Follows Python best practices

## API Reference

### JeanAgent

```python
class JeanAgent:
    def __init__(self, api_key: str, demo_mode: bool = False)
    def run(self) -> None
    async def process_message(self, message: str) -> str
```

### Example Usage

```python
import asyncio
from jeanmemory import JeanAgent

async def main():
    agent = JeanAgent(api_key="jean_sk_your_api_key")
    
    # Process a message
    response = await agent.process_message("Remember that I love pizza")
    print(response)
    
    # Later conversation
    response = await agent.process_message("What do I like to eat?")
    print(response)  # Will remember pizza preference

if __name__ == "__main__":
    asyncio.run(main())
```

## Links

- [Documentation](https://docs.jeanmemory.com)
- [GitHub](https://github.com/jean-technologies/jean-memory)
- [Website](https://jeanmemory.com)

