Official Python SDK for Memory Machines API
Project description
Memory Machines Python SDK
Official Python SDK for the Memory Machines API.
Installation
pip install memorymachines
Or install from source:
git clone https://github.com/memorymachines/memorymachines-sdk.git
cd memorymachines-sdk
pip install -e .
Quick Start
# One-time login (saves to ~/.memorymachines/config.yaml)
memorymachines login
from memorymachines import MemoryClient
# No API key needed - auto-discovered from config file
client = MemoryClient()
# Ingest content
client.ingest("Had a great meeting about Q4 goals today")
# Search memories
memories = client.search("what did we discuss about Q4?")
for memory in memories:
print(memory['content'])
Getting an API Key
- Sign up at memorymachines.com
- Go to your dashboard
- Copy your API key (starts with
mm_sk_)
Authentication
The SDK auto-discovers your API key in this order:
- Explicit
api_keyparameter MM_API_KEYenvironment variable~/.memorymachines/config.yamlfile
CLI Login (Recommended)
# Save your API key securely
memorymachines login
# Check who's logged in
memorymachines whoami
# List profiles
memorymachines profiles
# Logout
memorymachines logout
Programmatic Login
from memorymachines import login, logout
# Save token
login("mm_sk_...")
# Remove token
logout()
Multiple Profiles
# Save multiple accounts
memorymachines login --profile personal
memorymachines login --profile work
# Switch profiles
memorymachines use work
# Use specific profile
client = MemoryClient(profile="work")
Usage
Initialize Client
from memorymachines import MemoryClient
# Auto-discover API key (recommended)
client = MemoryClient()
# Or explicit API key
client = MemoryClient(api_key="mm_sk_...")
# Or specific profile
client = MemoryClient(profile="work")
# Custom endpoint (for development)
client = MemoryClient(base_url="http://localhost:8080")
Ingest Data
# Single item
client.ingest(
content="Meeting notes from today...",
source="notes",
metadata={"date": "2024-10-24"}
)
# Batch ingestion
items = [
{'content': 'Email from client...', 'source': 'email'},
{'content': 'Meeting notes...', 'source': 'notes'}
]
client.ingest_batch(items)
Search Memories
# Natural language search
memories = client.search("what did I discuss last week?", limit=10)
# List all memories with filters
response = client.list_memories(
limit=50,
source="email",
since=datetime(2024, 10, 1)
)
Manage Memories
# Get specific memory
memory = client.get_memory(memory_id="mem_123")
# Delete memory
client.delete_memory(memory_id="mem_123")
# Check connected services
services = client.get_connected_services() # ['gmail', 'slack']
Examples
See the examples/ directory for more usage examples:
- basic_usage.py - Basic SDK operations
- batch_ingest.py - Batch data ingestion
API Reference
MemoryClient
__init__(api_key: str, base_url: str = "https://api.memorymachines.com")
Initialize the client.
ingest(content: str, source: str = "custom", metadata: dict = None) -> dict
Ingest text content to extract memories.
ingest_batch(items: List[dict]) -> dict
Ingest multiple items at once.
search(query: str, limit: int = 10) -> List[dict]
Search memories with natural language.
list_memories(limit: int = 50, offset: int = 0, source: str = None, since: datetime = None) -> dict
List memories with filters.
get_memory(memory_id: str) -> dict
Get a specific memory by ID.
delete_memory(memory_id: str) -> dict
Delete a memory.
get_connected_services() -> List[str]
Get list of connected OAuth services.
health_check() -> bool
Check if API is accessible.
Development
Setup
git clone https://github.com/memorymachines/memorymachines-sdk.git
cd memorymachines-sdk
pip install -e ".[dev]"
Run Examples
export MEMORY_MACHINES_API_KEY="mm_sk_..."
python examples/basic_usage.py
Support
- Documentation: docs.memorymachines.com
- Issues: GitHub Issues
- Email: support@memorymachines.com
License
Apache 2.0 - see LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memorymachines-0.2.0.tar.gz.
File metadata
- Download URL: memorymachines-0.2.0.tar.gz
- Upload date:
- Size: 21.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3a8277033e7829f5fdd49f646eaafb74a8750e9f195568ec1233a909df96acd
|
|
| MD5 |
9b2f414ea03779b6d43f936bdbddef18
|
|
| BLAKE2b-256 |
fb17a97a71f13367fb87e3c793adb9233d5f9720466cb4bea924481e0c221ba2
|
File details
Details for the file memorymachines-0.2.0-py3-none-any.whl.
File metadata
- Download URL: memorymachines-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
864a64b688195d61a9b496c22c03a9012a91f9092f3af8bda94bc0e922f7dbbf
|
|
| MD5 |
68065242d52480cc15fe856c55ce4af3
|
|
| BLAKE2b-256 |
74c716de2462b47a5e2e53466e4d97780b3ee7717e02dd9ae371cd5fe3ed67ae
|