Skip to main content

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

  1. Sign up at memorymachines.com
  2. Go to your dashboard
  3. Copy your API key (starts with mm_sk_)

Authentication

The SDK auto-discovers your API key in this order:

  1. Explicit api_key parameter
  2. MM_API_KEY environment variable
  3. ~/.memorymachines/config.yaml file

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:

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

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

memorymachines-0.2.0.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memorymachines-0.2.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

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

Hashes for memorymachines-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a3a8277033e7829f5fdd49f646eaafb74a8750e9f195568ec1233a909df96acd
MD5 9b2f414ea03779b6d43f936bdbddef18
BLAKE2b-256 fb17a97a71f13367fb87e3c793adb9233d5f9720466cb4bea924481e0c221ba2

See more details on using hashes here.

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

Hashes for memorymachines-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 864a64b688195d61a9b496c22c03a9012a91f9092f3af8bda94bc0e922f7dbbf
MD5 68065242d52480cc15fe856c55ce4af3
BLAKE2b-256 74c716de2462b47a5e2e53466e4d97780b3ee7717e02dd9ae371cd5fe3ed67ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page