turbomem
Local-first agent memory for TypeScript. Persistent, semantically searchable memory that runs inside your Node or Bun process or in the browser with IndexedDB-backed PGlite. No separate memory server, no Python sidecar.
Install
npm install turbomemSet OPENAI_API_KEY for the default OpenAI embeddings and fact-extraction stack. PGlite is included; no extra database setup. For the optional sqlite-vec backend: npm install better-sqlite3 sqlite-vec. For edge deployment with Upstash Vector: npm install @upstash/vector — see the Edge guide. For browser apps, import from turbomem/browser — see the Browser guide.
Providers: embeddings via OpenAI, local (transformers), Voyage AI (VOYAGE_API_KEY), or Google Gemini (GEMINI_API_KEY); fact extraction via OpenAI, Anthropic, or Google Gemini (plus any OpenAI-compatible endpoint via a custom baseURL). See the Providers reference.
Quick start
import { TurboMemory } from "turbomem";
const memory = new TurboMemory({
embeddings: "openai", // or "local" | "voyage" | "google"
storage: "pglite",
extraction: { provider: "openai", model: "gpt-4.1-mini" },
openai: { apiKey: process.env.OPENAI_API_KEY },
});
await memory.init();
await memory.add(
[{ role: "user", content: "I love hiking and I'm training for a half marathon this fall." }],
{ userId: "user_123" },
);
const results = await memory.search("What outdoor activities is the user into?", {
userId: "user_123",
limit: 5,
});
for (const { memory: m, score } of results) {
console.log(`[${score.toFixed(3)}] ${m.content}`);
}
await memory.close();The example above uses OpenAI (text-embedding-3-small by default). You can also use local transformers, Voyage AI, or Google Gemini via the embeddings preset, or pass a custom adapter for a specific model — see the Providers reference.
Framework adapters
| Package | Use case |
|---|---|
@turbomem/mastra |
Mastra memory provider |
@turbomem/vercel-ai |
Vercel AI SDK tools |
CLI
| Package | Use case |
|---|---|
@turbomem/cli |
Terminal memory management |
Documentation
Full guides, configuration reference, and runnable examples:
Requirements
Node.js 20+ or Bun. TypeScript recommended.
License
Apache License 2.0