Skip to content
Back to skills

Tanstack Ai Memory In Memory

ASecurity

Use when wiring inMemory() from @tanstack/ai-memory/in-memory — explains setup, options (embedder, extract, topK/minScore), when to pick it (dev/tests/single-process demos), and what NOT to use it for (multi-process or persistent).

  • 3,166 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agents

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add TanStack/ai --skill tanstack-ai-memory-in-memory --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tanstack Ai Memory In Memory?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tanstack Ai Memory In Memory
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tanstack-tanstack-ai-memory-in-memory/badge)](https://www.skillsdirectory.com/skills/tanstack-tanstack-ai-memory-in-memory)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tanstack-ai-memory-in-memory
description: Use when wiring inMemory() from @tanstack/ai-memory/in-memory — explains setup, options (embedder, extract, topK/minScore), when to pick it (dev/tests/single-process demos), and what NOT to use it for (multi-process or persistent).
---

# In-Memory Memory Adapter

Zero-dependency `recall`/`save` adapter backed by a `Map`. Records vanish on process
restart.

## When to use it

- Local development.
- Vitest / Playwright tests.
- Single-process demos where users don't need persistence.

## When NOT to use it

- Production multi-process deployments — every worker has its own `Map`; users get
  inconsistent memory.
- Anything that needs survival across restarts.

For production, use `redis()` (see the `tanstack-ai-memory-redis` skill).

## Setup

```ts
import { memoryMiddleware } from '@tanstack/ai-memory'
import { inMemory } from '@tanstack/ai-memory/in-memory'

const memory = inMemory()

// A static scope is fine for dev/tests; derive it from the session in real apps.
memoryMiddleware({
  adapter: memory,
  scope: { threadId: 'demo-thread', userId: 'alice' },
})
```

## Options

`inMemory(options?)` accepts:

- `topK` (default 6), `minScore` (default 0.15), `kinds` — recall tuning.
- `embedder: { embed(text): Promise<number[]> }` — enable semantic scoring (both
  `recall` and `save` embed through it).
- `extract(turn, scope)` — return derived facts to persist alongside the raw turn
  (e.g. call an LLM to pull out preferences). Without it, `save` stores the raw
  user/assistant messages and `recall` scores them lexically + by recency.
- `render(hits)` — replace the built-in prompt renderer.

## Capacity

The adapter scans every record in a scope per `recall`. Fine up to ~100k records; beyond
that, switch to Redis.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.