lukasa1993/tanstack-skills-extracted/tanstack-ai-memory-redis

Claude Code and agent skill by lukasa1993/tanstack-skills-extracted

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when wiring redis() from @tanstack/ai-memory/redis in production — covers client setup (ioredis or node-redis via fromNodeRedis), the storage model, client-side ranking limits, and troubleshooting.

Install

npx vskill@latest install lukasa1993/tanstack-skills-extracted/tanstack-ai-memory-redis

SKILL.md

Redis Memory Adapter

Production-grade recall/save adapter backed by plain Redis (no vector index required). Ranks client-side (lexical + optional cosine + recency + importance).

Setup

Bring your own Redis client. ioredis wires in directly; redis (node-redis v4+) needs a small wrapper.

Option A: ioredis
ts
import Redis from 'ioredis'
import { memoryMiddleware } from '@tanstack/ai-memory'
import { redis } from '@tanstack/ai-memory/redis'
const client = new Redis(process.env.REDIS_URL ?? 'redis://localhost:6379')
const memory = redis({ redis: client, prefix: 'myapp:memory' })
// Resolve scope per request from the server-validated session — never from req.body.
function memoryFor(session: { userId: string; threadId: string }) {
return memoryMiddleware({
adapter: memory,
scope: { threadId: session.threadId, userId: session.userId },
})
}
Option B: redis (node-redis v4+)
ts
import { createClient } from 'redis'
import { memoryMiddleware } from '@tanstack/ai-memory'
import { redis, fromNodeRedis } from '@tanstack/ai-memory/redis'
const client = createClient({ url: process.env.REDIS_URL })
await client.connect()
const memory = redis({
redis: fromNodeRedis(client),
prefix: 'myapp:memory',
})
function memoryFor(session: { userId: string; threadId: string }) {
return memoryMiddleware({
adapter: memory,
scope: { threadId: session.threadId, userId: session.userId },
})
}

node-redis exposes a camelCase API (sAdd, mGet); fromNodeRedis translates it to the lowercase RedisLike shape. Passing a raw node-redis client without the wrapper throws client.sadd is not a function.

redis() accepts the same topK / minScore / kinds / embedder / extract options as inMemory().

Storage model

text
{prefix}:record:{id} -> JSON record
{prefix}:index:{tenantId or _}:{userId or _}:{threadId} -> Set<id>

save writes the record and adds it to the scope's index set; recall loads the set, scores, and renders. Scope values are escaped (:, \, and _) so a delimiter or the unset placeholder inside a dim can't collide two scopes.

Hard cut: there is no dual-read of older index layouts. If you previously wrote under a different shape (e.g. without tenantId), reindex or wipe — old keys are orphaned.

Always pass the same tenantId/userId/threadId on write and read: missing optional dims become _, so omit ≠ "match any".

Ranking limits

Ranking is client-side: recall loads every record for the scope into Node and scores it. Fine up to ~10k records per scope. Beyond that, write a vector-index-aware adapter against the same recall/save contract.

Troubleshooting

  • Records not visible across processes: ensure every process uses the same

REDIS_URL and prefix.

  • Malformed JSON rows: a row whose JSON won't parse is skipped on read and **left in

place** (never deleted) — the signal is a one-time console.warn per bad id. Fix or delete the offending {prefix}:record:{id} key to remediate.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/lukasa1993/tanstack-skills-extracted/tanstack-ai-memory-redis/badge)](https://verified-skill.com/skills/lukasa1993/tanstack-skills-extracted/tanstack-ai-memory-redis)

Something wrong with this skill or its page? Tell us.