Getting Started
Quick Start

Quick Start

Get Remina running in a few minutes.

Prerequisites

  • Python 3.10+
  • Redis server
  • OpenAI API key (or alternative LLM provider)

Installation

pip install remina-memory[openai,sqlite,chroma,redis]

Start Redis

# Docker
docker run -d -p 6379:6379 redis
 
# macOS (Homebrew)
brew services start redis
 
# Ubuntu
sudo apt install redis-server
sudo systemctl start redis

Set API Key

export OPENAI_API_KEY="your-api-key"

Basic Usage

from remina import Memory
 
# Initialize with defaults
memory = Memory()
 
# Add a memory from text
result = memory.add(
    messages="My name is Alice and I work as a software engineer at Google.",
    user_id="alice_123"
)
 
print(f"Extracted {len(result['results'])} memories:")
for mem in result['results']:
    print(f"  - {mem['memory']}")

Output:

Extracted 2 memories:
  - Name is Alice
  - Works as a software engineer at Google

Search Memories

results = memory.search(
    query="Where does Alice work?",
    user_id="alice_123",
    limit=5
)
 
for mem in results['results']:
    print(f"[{mem['score']:.2f}] {mem['memory']}")

Output:

[0.92] Works as a software engineer at Google
[0.45] Name is Alice

Conversation Input

memory.add(
    messages=[
        {"role": "user", "content": "I prefer dark mode in all my apps"},
        {"role": "assistant", "content": "Noted."},
        {"role": "user", "content": "I use VS Code as my main editor"}
    ],
    user_id="alice_123"
)
 
results = memory.search(
    query="What are Alice's preferences?",
    user_id="alice_123"
)
 
for mem in results['results']:
    print(f"  - {mem['memory']}")

Complete Example

from remina import Memory
 
def main():
    memory = Memory()
    user_id = "demo_user"
    
    # Clear existing
    memory.delete_all(user_id=user_id)
    
    # Add memories
    memory.add(
        messages="I'm a Python developer who prefers FastAPI and PostgreSQL.",
        user_id=user_id
    )
    
    memory.add(
        messages=[
            {"role": "user", "content": "I started learning Rust recently"},
            {"role": "assistant", "content": "Rust is excellent for systems programming."},
            {"role": "user", "content": "I want to build CLI tools with it"}
        ],
        user_id=user_id
    )
    
    # Search
    print("Query: What does the user want to build?")
    results = memory.search(
        query="What does the user want to build?",
        user_id=user_id
    )
    for r in results['results']:
        print(f"  [{r['score']:.2f}] {r['memory']}")
    
    # List all
    print("\nAll memories:")
    all_mems = memory.get_all(user_id=user_id)
    for i, m in enumerate(all_mems['results'], 1):
        print(f"  {i}. {m['memory']}")
    
    memory.close()
 
if __name__ == "__main__":
    main()

Next Steps