MemNexus
GuidesUsing the SDK

Memory Operations

Create, update, search, and manage memories with the TypeScript SDK.

The SDK provides full CRUD operations for memories, conversations, facts, topics, and entities.

Creating memories

Basic creation

const memory = await client.memories.create({
  content: "Deployed v1.26.2 with OpenAPI validation fixes.",
  topics: ["deployment", "core-api", "openapi"],
  importance: 0.8,
});

console.log("Created:", memory.id);

With a conversation

Group related memories into a conversation:

// Create a new conversation
const conv = await client.conversations.create({
  title: "API Rate Limiting Implementation",
});

// Create memories in that conversation
await client.memories.create({
  content: "Starting rate limiting feature. Will use token bucket algorithm.",
  topics: ["rate-limiting", "architecture"],
  importance: 0.7,
  conversationId: conv.id,
});

await client.memories.create({
  content: "Rate limiting middleware complete. 100 req/min default.",
  topics: ["rate-limiting", "implementation"],
  importance: 0.8,
  conversationId: conv.id,
});

Retrieving memories

Get a single memory

const memory = await client.memories.get("mem_abc123");
console.log(memory.content);
console.log(memory.topics);

List memories

const memories = await client.memories.list({
  page: 0,
  limit: 20,
});

for (const memory of memories.data) {
  console.log(`[${memory.importance}] ${memory.content}`);
}

Batch get

const memories = await client.memories.batchGet([
  "mem_abc123",
  "mem_def456",
  "mem_ghi789",
]);

Updating memories

await client.memories.update("mem_abc123", {
  content: "Updated: Deployed v1.26.3 with additional fixes.",
  importance: 0.9,
});

Deleting memories

await client.memories.delete("mem_abc123");

Working with facts

Facts are structured knowledge as subject-predicate-object triples:

// Create a fact
const fact = await client.facts.create({
  subject: "MemNexus",
  predicate: "built_with",
  object: "Node.js",
  confidence: 1.0,
});

// Search facts
const facts = await client.facts.search({
  query: "Node.js",
});

// List facts
const allFacts = await client.facts.list({ page: 0, limit: 50 });

Working with conversations

// List recent conversations
const conversations = await client.conversations.list({
  page: 0,
  limit: 10,
});

// Get conversation details
const conv = await client.conversations.get("conv_abc123");

// Get conversation timeline
const timeline = await client.conversations.timeline("conv_abc123");

Working with topics

// List topics
const topics = await client.topics.list();

// Discover related topics
const related = await client.topics.discoverRelated("topic_abc123");

// Cluster topics
const clusters = await client.topics.cluster({
  algorithm: "kmeans",
  numClusters: 5,
});

Pagination pattern

All list operations return paginated results:

async function getAllMemories() {
  const memories = [];
  let page = 0;
  let hasMore = true;

  while (hasMore) {
    const result = await client.memories.list({ page, limit: 100 });
    memories.push(...result.data);
    hasMore = result.data.length === 100;
    page++;
  }

  return memories;
}

Next steps