{
  "name": "turbomem",
  "version": "0.8.4",
  "description": "Embedded memory for TypeScript agents. Local-first by default. Pluggable to edge and serverless. Extract facts, embed them, and recall scoped memories from your app process, with pluggable vector storage and framework adapters.",
  "homepage": "https://turbomem.dev",
  "license": "Apache-2.0",
  "author": "arneesh aima",
  "repository": {
    "type": "git",
    "url": "https://github.com/turbomem/turbomem.git",
    "directory": "packages/core"
  },
  "keywords": [
    "memory",
    "agent",
    "llm",
    "ai",
    "embeddings",
    "vector",
    "pglite",
    "pgvector",
    "sqlite-vec",
    "sqlite",
    "rag",
    "edge",
    "browser",
    "indexeddb",
    "upstash",
    "pinecone"
  ],
  "type": "module",
  "main": "./dist/index.cjs",
  "module": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    },
    "./browser": {
      "types": "./dist/browser.d.ts",
      "import": "./dist/browser.js",
      "require": "./dist/browser.cjs"
    }
  },
  "files": [
    "dist",
    "logo.svg"
  ],
  "dependencies": {
    "@electric-sql/pglite": "^0.2.0",
    "openai": "^4.0.0",
    "zod": "^3.22.0"
  },
  "peerDependencies": {
    "@anthropic-ai/sdk": "^0.24.0",
    "@huggingface/transformers": "^3.0.0",
    "@upstash/vector": "^1.0.0",
    "@pinecone-database/pinecone": "^8.0.0",
    "better-sqlite3": "^11.0.0",
    "sqlite-vec": "^0.1.0"
  },
  "peerDependenciesMeta": {
    "@huggingface/transformers": {
      "optional": true
    },
    "@anthropic-ai/sdk": {
      "optional": true
    },
    "@upstash/vector": {
      "optional": true
    },
    "@pinecone-database/pinecone": {
      "optional": true
    },
    "better-sqlite3": {
      "optional": true
    },
    "sqlite-vec": {
      "optional": true
    }
  },
  "devDependencies": {
    "@anthropic-ai/sdk": "^0.24.0",
    "@huggingface/transformers": "^3.0.0",
    "@upstash/vector": "^1.2.3",
    "@pinecone-database/pinecone": "^8.0.0",
    "@types/better-sqlite3": "^7.6.0",
    "better-sqlite3": "^11.0.0",
    "fake-indexeddb": "^6.0.0",
    "sqlite-vec": "^0.1.6"
  },
  "scripts": {
    "build": "tsup",
    "test": "vitest run",
    "dev": "tsup --watch",
    "lint": "eslint src",
    "typecheck": "tsc --noEmit"
  },
  "readme": "<p align=\"center\">\n  <img src=\"./logo.svg\" alt=\"turbomem\" width=\"120\" />\n</p>\n\n# turbomem\n\n[![npm version](https://img.shields.io/npm/v/turbomem)](https://www.npmjs.com/package/turbomem) · [Website](https://turbomem.dev) · [Documentation](https://docs.turbomem.dev)\n\nEmbedded agent memory for TypeScript. Local-first by default, runs inside your Node or Bun process or in the browser with IndexedDB-backed PGlite. Pluggable to edge and serverless with Upstash Vector or Pinecone. No separate memory server, no Python sidecar.\n\n## Install\n\n```bash\nnpm install turbomem\n```\n\nSet `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](https://docs.turbomem.dev/guide/edge). For Pinecone: `npm install @pinecone-database/pinecone@^8` see the [Storage guide](https://docs.turbomem.dev/guide/storage#pinecone-edge-optional). For browser apps, import from `turbomem/browser` see the [Browser guide](https://docs.turbomem.dev/guide/browser).\n\n**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](https://docs.turbomem.dev/guide/providers).\n\n## Quick start\n\n```ts\nimport { TurboMemory } from \"turbomem\";\n\nconst memory = new TurboMemory({\n  embeddings: \"openai\", // or \"local\" | \"voyage\" | \"google\"\n  storage: \"pglite\",\n  extraction: { provider: \"openai\", model: \"gpt-4.1-mini\" },\n  openai: { apiKey: process.env.OPENAI_API_KEY },\n});\n\nawait memory.init();\n\nawait memory.add(\n  [{ role: \"user\", content: \"I love hiking and I'm training for a half marathon this fall.\" }],\n  { userId: \"user_123\" },\n);\n\nconst results = await memory.search(\"What outdoor activities is the user into?\", {\n  userId: \"user_123\",\n  limit: 5,\n});\n\nfor (const { memory: m, score } of results) {\n  console.log(`[${score.toFixed(3)}] ${m.content}`);\n}\n\nawait memory.close();\n```\n\nThe 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](https://docs.turbomem.dev/guide/providers).\n\n## Framework adapters\n\n| Package                                                                    | Use case               |\n| -------------------------------------------------------------------------- | ---------------------- |\n| [`@turbomem/mastra`](https://www.npmjs.com/package/@turbomem/mastra)       | Mastra memory provider |\n| [`@turbomem/vercel-ai`](https://www.npmjs.com/package/@turbomem/vercel-ai) | Vercel AI SDK tools    |\n\n## CLI\n\n| Package                                                        | Use case                   |\n| -------------------------------------------------------------- | -------------------------- |\n| [`@turbomem/cli`](https://www.npmjs.com/package/@turbomem/cli) | Terminal memory management |\n\n## Documentation\n\nFull guides, configuration reference, and runnable examples:\n\n**https://turbomem.dev** · **https://docs.turbomem.dev**\n\n## Requirements\n\nNode.js 20+ or Bun. TypeScript recommended.\n\n## License\n\nApache License 2.0\n"
}