mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-07-31 03:44:07 +00:00
Fixes across existing pages: stale claude-3-sonnet -> current models, deprecated ai/react + toAIStreamResponse -> current AI SDK APIs, five divergent search signatures unified to client.search.memories (v4) / client.search.documents (v3), singular containerTag in v4 contexts, from-zep containerTag type error, canonical processing-status enum, corrected 'v4 has no SDK' claim, internal links re-pointed at final destinations. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
144 lines
3.5 KiB
Text
144 lines
3.5 KiB
Text
---
|
|
title: 'Supermemory SDK'
|
|
sidebarTitle: "Supermemory SDK"
|
|
description: 'Official Python and JavaScript SDKs for Supermemory'
|
|
icon: "/images/supermemory.svg"
|
|
---
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="Python SDK" icon="python" href="https://pypi.org/project/supermemory/">
|
|
pip install supermemory
|
|
</Card>
|
|
<Card title="JavaScript SDK" icon="js" href="https://www.npmjs.com/package/supermemory">
|
|
npm install supermemory
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
<Tip>
|
|
Both SDKs also work against [self-hosted Supermemory](/self-hosting/overview) — pass `baseURL: "http://localhost:6767"` (TypeScript) or `base_url="http://localhost:6767"` (Python) when creating the client.
|
|
</Tip>
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
## Installation
|
|
|
|
```bash
|
|
npm install supermemory
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```typescript
|
|
import Supermemory from 'supermemory';
|
|
|
|
const client = new Supermemory({
|
|
apiKey: process.env.SUPERMEMORY_API_KEY, // Default, can be omitted
|
|
});
|
|
|
|
// Add a memory
|
|
await client.add({ content: "Meeting notes from Q1 planning", containerTag: "user_123" });
|
|
|
|
// Search memories
|
|
const response = await client.search.documents({
|
|
q: "planning notes",
|
|
containerTags: ["user_123"]
|
|
});
|
|
console.log(response.results);
|
|
|
|
// Get user profile
|
|
const profile = await client.profile({ containerTag: "user_123" });
|
|
console.log(profile.profile.static);
|
|
console.log(profile.profile.dynamic);
|
|
```
|
|
|
|
## Common Operations
|
|
|
|
```typescript
|
|
// Add with metadata
|
|
await client.add({
|
|
content: "Technical design doc",
|
|
containerTag: "user_123",
|
|
metadata: { category: "engineering", priority: "high" }
|
|
});
|
|
|
|
// Search with filters
|
|
const results = await client.search.documents({
|
|
q: "design document",
|
|
containerTags: ["user_123"],
|
|
filters: {
|
|
AND: [
|
|
{ key: "category", value: "engineering" }
|
|
]
|
|
}
|
|
});
|
|
|
|
// List documents
|
|
const docs = await client.documents.list({ containerTags: ["user_123"], limit: 10 });
|
|
|
|
// Delete a document
|
|
await client.documents.delete({ docId: "doc_123" });
|
|
```
|
|
</Tab>
|
|
|
|
<Tab title="Python">
|
|
## Installation
|
|
|
|
```bash
|
|
pip install supermemory
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```python
|
|
import os
|
|
from supermemory import Supermemory
|
|
|
|
client = Supermemory(
|
|
api_key=os.environ.get("SUPERMEMORY_API_KEY"), # Default, can be omitted
|
|
)
|
|
|
|
# Add a memory
|
|
client.add(content="Meeting notes from Q1 planning", container_tag="user_123")
|
|
|
|
# Search memories
|
|
response = client.search.documents(
|
|
q="planning notes",
|
|
container_tags=["user_123"]
|
|
)
|
|
print(response.results)
|
|
|
|
# Get user profile
|
|
profile = client.profile(container_tag="user_123")
|
|
print(profile.profile.static)
|
|
print(profile.profile.dynamic)
|
|
```
|
|
|
|
## Common Operations
|
|
|
|
```python
|
|
# Add with metadata
|
|
client.add(
|
|
content="Technical design doc",
|
|
container_tag="user_123",
|
|
metadata={"category": "engineering", "priority": "high"}
|
|
)
|
|
|
|
# Search with filters
|
|
results = client.search.documents(
|
|
q="design document",
|
|
container_tags=["user_123"],
|
|
filters={
|
|
"AND": [
|
|
{"key": "category", "value": "engineering"}
|
|
]
|
|
}
|
|
)
|
|
|
|
# List documents
|
|
docs = client.documents.list(container_tags=["user_123"], limit=10)
|
|
|
|
# Delete a document
|
|
client.documents.delete(doc_id="doc_123")
|
|
```
|
|
</Tab>
|
|
</Tabs>
|