[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"org-tanstack":3,"repo-skills-v-0-3-0":265},{"org":4,"repos":56},{"slug":5,"name":6,"logoUrl":7,"githubOrg":6,"website":8,"skillCount":9,"repoCount":10,"topRepos":11,"topTags":26,"lastUpdatedAt":55},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png","https:\u002F\u002Ftanstack.com",125,8,[12,15,17,20,23],{"name":13,"skillCount":14},"TanStack\u002Frouter",30,{"name":16,"skillCount":14},"TanStack\u002Ftable",{"name":18,"skillCount":19},"TanStack\u002Fai",27,{"name":21,"skillCount":22},"TanStack\u002Fdb",13,{"name":24,"skillCount":25},"TanStack\u002Fdevtools",9,[27,28,31,34,37,40,43,46,49,52],{"slug":5,"name":6},{"slug":29,"name":30},"frontend","Frontend",{"slug":32,"name":33},"database","Database",{"slug":35,"name":36},"tanstack-router","TanStack Router",{"slug":38,"name":39},"ui-components","UI Components",{"slug":41,"name":42},"typescript","TypeScript",{"slug":44,"name":45},"routing","Routing",{"slug":47,"name":48},"api-development","API Development",{"slug":50,"name":51},"vue","Vue",{"slug":53,"name":54},"agents","Agents","2026-07-30T05:53:37.544096",[57,88,122,156,176,201,224,245],{"name":58,"fullName":13,"repoUrl":59,"skillCount":14,"stars":60,"forks":61,"description":62,"topics":63,"topTags":77,"topTagCount":86,"lastUpdatedAt":87},"router","https:\u002F\u002Fgithub.com\u002FTanStack\u002Frouter",14787,1761,"🤖 A client-first, server-capable, fully type-safe router and full-stack framework for the web (React and more).",[64,65,66,67,68,58,44,69,70,71,72,73,74,75,41,76],"framework","fullstack","javascript","react","route","rpc","search","searchparams","server-functions","ssr","state-management","typesafe","url",[78,79,80,81,82,83],{"slug":5,"name":6},{"slug":29,"name":30},{"slug":35,"name":36},{"slug":44,"name":45},{"slug":41,"name":42},{"slug":84,"name":85},"backend","Backend",31,"2026-07-30T05:27:18.540978",{"name":89,"fullName":16,"repoUrl":90,"skillCount":14,"stars":91,"forks":92,"description":93,"topics":94,"topTags":109,"topTagCount":120,"lastUpdatedAt":121},"table","https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable",28175,3539,"🤖 Headless UI for building powerful tables & datagrids for TS\u002FJS -  React-Table, Vue-Table, Solid-Table, Svelte-Table",[95,96,97,98,99,100,101,66,102,67,103,104,105,106,107,108,89,41,50],"datagrid","datagrids","datatable","filtering","grid","grouping","hooks","pagination","reactjs","solid","solidjs","sorting","svelte","sveltejs",[110,111,112,113,116,117],{"slug":29,"name":30},{"slug":5,"name":6},{"slug":38,"name":39},{"slug":114,"name":115},"data-analysis","Data Analysis",{"slug":50,"name":51},{"slug":118,"name":119},"architecture","Architecture",17,"2026-07-30T05:26:06.391717",{"name":123,"fullName":18,"repoUrl":124,"skillCount":19,"stars":125,"forks":126,"description":127,"topics":128,"topTags":142,"topTagCount":155,"lastUpdatedAt":55},"ai","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fai",2884,269,"🤖 Type-safe, provider-agnostic TypeScript AI SDK for streaming chat, tool calling, agents, and multimodal apps across OpenAI, Anthropic, Gemini, React, Vue, Svelte, and Solid.",[123,129,130,131,132,133,134,135,136,137,138,67,105,139,107,5,140,41,141,50],"ai-agents","ai-sdk","anthropic","chatbot","function-calling","gemini","generative-ai","llm","multimodal","openai","streaming","tool-calling","typescript-sdk",[143,144,145,148,150,153],{"slug":5,"name":6},{"slug":53,"name":54},{"slug":146,"name":147},"persistence","Persistence",{"slug":130,"name":149},"AI SDK",{"slug":151,"name":152},"memory","Memory",{"slug":123,"name":154},"AI",35,{"name":157,"fullName":21,"repoUrl":158,"skillCount":22,"stars":159,"forks":160,"description":161,"topics":162,"topTags":163,"topTagCount":174,"lastUpdatedAt":175},"db","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fdb",3811,245,"The reactive client store for your API.",[],[164,165,166,167,170,171],{"slug":32,"name":33},{"slug":5,"name":6},{"slug":29,"name":30},{"slug":168,"name":169},"data-modeling","Data Modeling",{"slug":41,"name":42},{"slug":172,"name":173},"angular","Angular",19,"2026-07-26T05:48:59.452568",{"name":177,"fullName":24,"repoUrl":178,"skillCount":25,"stars":179,"forks":180,"description":181,"topics":182,"topTags":184,"topTagCount":199,"lastUpdatedAt":200},"devtools","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fdevtools",476,92,"🤖 Framework-agnostic devtools panel for handling TanStack libraries devtools and your custom devtool plugins",[183,177,67,105],"devtool",[185,186,189,192,195,196],{"slug":5,"name":6},{"slug":187,"name":188},"debugging","Debugging",{"slug":190,"name":191},"observability","Observability",{"slug":193,"name":194},"engineering","Engineering",{"slug":29,"name":30},{"slug":197,"name":198},"vite","Vite",15,"2026-07-17T06:04:30.109945",{"name":202,"fullName":203,"repoUrl":204,"skillCount":205,"stars":25,"forks":206,"description":207,"topics":208,"topTags":209,"topTagCount":222,"lastUpdatedAt":223},"markdown","TanStack\u002Fmarkdown","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fmarkdown",6,0,"Tiny, fast Markdown parsing and rendering for blogs and documentation",[],[210,212,215,216,219,221],{"slug":202,"name":211},"Markdown",{"slug":213,"name":214},"documentation","Documentation",{"slug":29,"name":30},{"slug":217,"name":218},"html","HTML",{"slug":73,"name":220},"SSR",{"slug":5,"name":6},12,"2026-07-26T06:08:52.566102",{"name":225,"fullName":226,"repoUrl":227,"skillCount":228,"stars":229,"forks":230,"description":231,"topics":232,"topTags":233,"topTagCount":243,"lastUpdatedAt":244},"cli","TanStack\u002Fcli","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fcli",5,1281,180,"The official TanStack CLI - Project Scaffolding, MCP Server, Agent Skills Installation, etc",[],[234,236,237,240,241,242],{"slug":225,"name":235},"CLI",{"slug":5,"name":6},{"slug":238,"name":239},"integrations","Integrations",{"slug":213,"name":214},{"slug":193,"name":194},{"slug":29,"name":30},7,"2026-07-20T05:59:14.921659",{"name":246,"fullName":247,"repoUrl":248,"skillCount":228,"stars":249,"forks":206,"description":250,"topics":251,"topTags":252,"topTagCount":263,"lastUpdatedAt":264},"highlight","TanStack\u002Fhighlight","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fhighlight",2,"Tiny, synchronous syntax highlighting for blogs and documentation",[],[253,254,255,258,261,262],{"slug":29,"name":30},{"slug":47,"name":48},{"slug":256,"name":257},"configuration","Configuration",{"slug":259,"name":260},"css","CSS",{"slug":193,"name":194},{"slug":202,"name":211},10,"2026-07-30T05:26:42.312771",{"items":266,"total":19},[267,284,296,309,320,332,344,356,368,381,403,415,429,441,456,472,492,506,520,532,543,556,566,576],{"slug":268,"name":268,"fn":269,"description":270,"org":271,"tags":272,"stars":125,"repoUrl":124,"updatedAt":283},"ai-code-mode","execute sandboxed TypeScript code with LLMs","LLM-generated TypeScript execution in sandboxed environments: createCodeModeTool() with isolate drivers (createNodeIsolateDriver, createQuickJSIsolateDriver, createCloudflareIsolateDriver), codeModeWithSkills() for persistent skill libraries, trust strategies, skill storage (FileSystem, LocalStorage, InMemory, Mongo), client-side execution progress via code_mode:* custom events in useChat.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[273,275,278,281,282],{"name":149,"slug":130,"type":274},"tag",{"name":276,"slug":277,"type":274},"Code Execution","code-execution",{"name":279,"slug":280,"type":274},"Sandboxing","sandboxing",{"name":6,"slug":5,"type":274},{"name":42,"slug":41,"type":274},"2026-07-16T06:04:13.597905",{"slug":285,"name":285,"fn":286,"description":287,"org":288,"tags":289,"stars":125,"repoUrl":124,"updatedAt":295},"ai-core","configure TanStack AI agent features","Entry point for TanStack AI skills. Routes to chat-experience, tool-calling, media-generation, structured-outputs, adapter-configuration, ag-ui-protocol, middleware, locks, custom-backend-integration, and debug-logging, plus the skills shipped by companion packages (@tanstack\u002Fai-persistence, @tanstack\u002Fai-code-mode). Use chat() not streamText(), openaiText() not createOpenAI(), toServerSentEventsResponse() not manual SSE, middleware hooks not onEnd callbacks.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[290,291,292],{"name":54,"slug":53,"type":274},{"name":154,"slug":123,"type":274},{"name":293,"slug":294,"type":274},"Middleware","middleware","2026-07-30T05:26:10.404565",{"slug":297,"name":298,"fn":299,"description":300,"org":301,"tags":302,"stars":125,"repoUrl":124,"updatedAt":308},"ai-coreadapter-configuration","ai-core\u002Fadapter-configuration","configure AI provider adapters","Provider adapter selection and configuration: openaiText, anthropicText, geminiText, ollamaText, grokText, groqText, openRouterText, bedrockText, openaiCompatible. Per-model type safety with modelOptions, reasoning\u002Fthinking configuration, runtime adapter switching, extendAdapter() for custom models, createModel(). Generic OpenAI-compatible providers (DeepSeek, Together, Fireworks, etc.) via openaiCompatible({ baseURL, apiKey, models }) from @tanstack\u002Fai-openai\u002Fcompatible. API key env vars: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY\u002FGEMINI_API_KEY, XAI_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, OLLAMA_HOST, BEDROCK_API_KEY (or AWS_BEARER_TOKEN_BEDROCK).\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[303,304,305,307],{"name":149,"slug":130,"type":274},{"name":257,"slug":256,"type":274},{"name":306,"slug":136,"type":274},"LLM",{"name":6,"slug":5,"type":274},"2026-07-16T06:04:17.82075",{"slug":310,"name":311,"fn":312,"description":313,"org":314,"tags":315,"stars":125,"repoUrl":124,"updatedAt":319},"ai-coreag-ui-protocol","ai-core\u002Fag-ui-protocol","implement TanStack AI streaming protocol","Server-side AG-UI streaming protocol implementation: StreamChunk event types (RUN_STARTED, TEXT_MESSAGE_START\u002FCONTENT\u002FEND, TOOL_CALL_START\u002FARGS\u002FEND, RUN_FINISHED, RUN_ERROR, STEP_STARTED\u002FSTEP_FINISHED, STATE_SNAPSHOT\u002FDELTA, CUSTOM), toServerSentEventsStream() for SSE format, toHttpStream() for NDJSON format. For backends serving AG-UI events without client packages.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[316,317,318],{"name":48,"slug":47,"type":274},{"name":306,"slug":136,"type":274},{"name":6,"slug":5,"type":274},"2026-07-16T06:04:10.093367",{"slug":321,"name":322,"fn":323,"description":324,"org":325,"tags":326,"stars":125,"repoUrl":124,"updatedAt":331},"ai-corechat-experience","ai-core\u002Fchat-experience","implement chat experiences with TanStack AI","End-to-end chat implementation: server endpoint with chat() and toServerSentEventsResponse(), client-side useChat hook with fetchServerSentEvents(), message rendering with UIMessage parts, multimodal content, thinking\u002Freasoning display. Covers streaming states, connection adapters, and message format conversions. NOT Vercel AI SDK — uses chat() not streamText().\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[327,328,329,330],{"name":48,"slug":47,"type":274},{"name":30,"slug":29,"type":274},{"name":306,"slug":136,"type":274},{"name":6,"slug":5,"type":274},"2026-07-30T05:26:11.505241",{"slug":333,"name":334,"fn":335,"description":336,"org":337,"tags":338,"stars":125,"repoUrl":124,"updatedAt":343},"ai-coreclient-persistence","ai-core\u002Fclient-persistence","implement browser chat persistence for TanStack AI","Browser chat persistence on useChat \u002F ChatClient: localStoragePersistence, sessionStoragePersistence, indexedDBPersistence. Client-authoritative (adapter, full transcript) vs server-authoritative (persistence: true, no client cache). Reload restore, pending interrupts, mid-stream rejoin with delivery durability. Use for SPA reload durability — NOT server history alone. No extra package: the adapters ship in the framework packages.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[339,340,341,342],{"name":154,"slug":123,"type":274},{"name":30,"slug":29,"type":274},{"name":147,"slug":146,"type":274},{"name":6,"slug":5,"type":274},"2026-07-30T05:53:35.503176",{"slug":345,"name":346,"fn":347,"description":348,"org":349,"tags":350,"stars":125,"repoUrl":124,"updatedAt":355},"ai-corecustom-backend-integration","ai-core\u002Fcustom-backend-integration","integrate custom backends with TanStack AI","Connect useChat to a non-TanStack-AI backend through custom connection adapters. ConnectConnectionAdapter (single async iterable) vs SubscribeConnectionAdapter (separate subscribe\u002Fsend). Customize fetchServerSentEvents() and fetchHttpStream() with auth headers, custom URLs, and request options. Import from framework package, not @tanstack\u002Fai-client.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[351,352,353,354],{"name":154,"slug":123,"type":274},{"name":48,"slug":47,"type":274},{"name":85,"slug":84,"type":274},{"name":6,"slug":5,"type":274},"2026-07-17T06:06:39.855351",{"slug":357,"name":358,"fn":359,"description":360,"org":361,"tags":362,"stars":125,"repoUrl":124,"updatedAt":367},"ai-coredebug-logging","ai-core\u002Fdebug-logging","configure debug logging for TanStack AI","Pluggable, category-toggleable debug logging for TanStack AI activities. Toggle with `debug: true | false | DebugConfig` on chat(), summarize(), generateImage(), generateSpeech(), generateTranscription(), generateVideo(). Categories: request, provider, output, middleware, tools, agentLoop, config, errors. Pipe into pino\u002Fwinston\u002Fetc via `debug: { logger }`. Errors log by default even when `debug` is omitted; silence with `debug: false`.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[363,364,365,366],{"name":188,"slug":187,"type":274},{"name":306,"slug":136,"type":274},{"name":191,"slug":190,"type":274},{"name":6,"slug":5,"type":274},"2026-07-16T06:04:12.257598",{"slug":369,"name":370,"fn":371,"description":372,"org":373,"tags":374,"stars":125,"repoUrl":124,"updatedAt":55},"ai-corelocks","ai-core\u002Flocks","manage multi-instance locks in TanStack AI","LockStore, InMemoryLockStore, LocksCapability and withLocks for multi-instance coordination in TanStack AI. Ships in @tanstack\u002Fai — NOT in @tanstack\u002Fai-persistence. Separate from AIPersistence state stores — not a stores key, not composable. InMemoryLockStore vs a distributed (e.g. Cloudflare Durable Object) lock, lease recovery, AbortSignal in critical sections. Use when sandbox or other middleware needs cross-worker mutual exclusion — NOT for storing messages\u002Fruns (use withPersistence).\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[375,376,379,380],{"name":154,"slug":123,"type":274},{"name":377,"slug":378,"type":274},"Concurrency","concurrency",{"name":194,"slug":193,"type":274},{"name":6,"slug":5,"type":274},{"slug":382,"name":383,"fn":384,"description":385,"org":386,"tags":387,"stars":125,"repoUrl":124,"updatedAt":402},"ai-coremedia-generation","ai-core\u002Fmedia-generation","generate media and speech with AI","Image, audio, video, speech (TTS), and transcription generation using activity-specific adapters: generateImage() with openaiImage\u002FgeminiImage, generateAudio() with geminiAudio\u002FfalAudio, generateVideo() with async polling (openaiVideo\u002FgeminiVideo\u002FgrokVideo\u002FfalVideo, per-model typed durations), generateSpeech() with openaiSpeech, generateTranscription() with openaiTranscription. React hooks: useGenerateImage, useGenerateAudio, useGenerateSpeech, useTranscription, useGenerateVideo. TanStack Start server function integration with toServerSentEventsResponse.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[388,389,392,395,398,399],{"name":149,"slug":130,"type":274},{"name":390,"slug":391,"type":274},"Audio","audio",{"name":393,"slug":394,"type":274},"Images","images",{"name":396,"slug":397,"type":274},"Speech","speech",{"name":6,"slug":5,"type":274},{"name":400,"slug":401,"type":274},"Video","video","2026-07-16T06:04:17.479185",{"slug":404,"name":405,"fn":406,"description":407,"org":408,"tags":409,"stars":125,"repoUrl":124,"updatedAt":414},"ai-coremiddleware","ai-core\u002Fmiddleware","configure chat lifecycle middleware","Chat lifecycle middleware hooks: onConfig, onStart, onChunk, onBeforeToolCall, onAfterToolCall, onUsage, onFinish, onAbort, onError. Use for analytics, event firing, tool caching (toolCacheMiddleware), logging, and tracing. Middleware array in chat() config, left-to-right execution order. NOT onEnd\u002FonFinish callbacks on chat() — use middleware.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[410,411,412,413],{"name":149,"slug":130,"type":274},{"name":293,"slug":294,"type":274},{"name":191,"slug":190,"type":274},{"name":6,"slug":5,"type":274},"2026-07-30T05:26:09.402989",{"slug":416,"name":417,"fn":418,"description":419,"org":420,"tags":421,"stars":125,"repoUrl":124,"updatedAt":428},"ai-corestructured-outputs","ai-core\u002Fstructured-outputs","generate type-safe structured JSON outputs","Type-safe JSON schema responses from LLMs using outputSchema on chat() and useChat(). Supports Zod, ArkType, and Valibot schemas. The adapter handles provider-specific strategies transparently — never configure structured output at the provider level. Pass stream:true alongside outputSchema for incremental JSON deltas + a terminal validated object via the `structured-output.complete` event. Every assistant turn in useChat carries its own typed `StructuredOutputPart` on `messages[i].parts`, so multi-turn structured chats preserve history automatically — partial\u002Ffinal derive from the latest assistant turn's part. convertSchemaToJsonSchema() for manual schema conversion.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[422,423,426,427],{"name":149,"slug":130,"type":274},{"name":424,"slug":425,"type":274},"JSON","json",{"name":6,"slug":5,"type":274},{"name":42,"slug":41,"type":274},"2026-07-16T06:04:17.136221",{"slug":430,"name":431,"fn":432,"description":433,"org":434,"tags":435,"stars":125,"repoUrl":124,"updatedAt":440},"ai-coretool-calling","ai-core\u002Ftool-calling","implement tool calling in TanStack AI","Isomorphic tool system: toolDefinition() with Zod schemas, .server() and .client() implementations, passing tools to both chat() on server and useChat\u002FclientTools on client, tool approval flows with needsApproval and bound interrupts (resolveInterrupt), lazy tool discovery with lazy:true, rendering ToolCallPart and ToolResultPart in UI.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[436,437,438,439],{"name":149,"slug":130,"type":274},{"name":48,"slug":47,"type":274},{"name":6,"slug":5,"type":274},{"name":42,"slug":41,"type":274},"2026-07-30T05:26:08.442106",{"slug":442,"name":442,"fn":443,"description":444,"org":445,"tags":446,"stars":125,"repoUrl":124,"updatedAt":455},"ai-mcp","connect and run MCP tools","Host-side Model Context Protocol (MCP) client for TanStack AI: connect to external MCP servers, discover and run their tools inside any adapter's chat() loop, read resources and prompts, generate TypeScript types (typed tool names\u002Fpool keys) with the bundled CLI, and manage lifecycle with close()\u002Fawait using.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[447,448,451,454],{"name":54,"slug":53,"type":274},{"name":449,"slug":450,"type":274},"AI Infrastructure","ai-infrastructure",{"name":452,"slug":453,"type":274},"MCP","mcp",{"name":6,"slug":5,"type":274},"2026-07-16T06:04:30.739067",{"slug":457,"name":458,"fn":459,"description":460,"org":461,"tags":462,"stars":125,"repoUrl":124,"updatedAt":471},"ai-persistencebuild-cloudflare-adapter","ai-persistence\u002Fbuild-cloudflare-adapter","build Cloudflare Worker adapters for TanStack AI","Use when a Cloudflare Worker needs TanStack AI chat persistence — writes a chat-persistence.ts into the app against its D1 binding (raw or via Drizzle), plus a Durable Object LockStore. Covers per-request bindings, wrangler config, D1 migrations, and lease-based locks.",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[463,466,467,470],{"name":464,"slug":465,"type":274},"Cloudflare","cloudflare",{"name":147,"slug":146,"type":274},{"name":468,"slug":469,"type":274},"Serverless","serverless",{"name":6,"slug":5,"type":274},"2026-07-30T05:53:31.519866",{"slug":473,"name":474,"fn":475,"description":476,"org":477,"tags":478,"stars":125,"repoUrl":124,"updatedAt":491},"ai-persistencebuild-custom-adapter","ai-persistence\u002Fbuild-custom-adapter","build custom database adapters for TanStack AI","Use when an app needs TanStack AI chat persistence on a database with no dedicated recipe — raw Postgres (pg\u002Fpostgres.js), Kysely, node:sqlite, MongoDB, Supabase, Redis. Writes a chat-persistence.ts against the app's existing client, covering the four stores, the idempotency invariants, and the conformance gate. Route to the Drizzle, Prisma, or Cloudflare skills instead when one of those matches.",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[479,480,483,484,487,490],{"name":33,"slug":32,"type":274},{"name":481,"slug":482,"type":274},"MongoDB","mongodb",{"name":147,"slug":146,"type":274},{"name":485,"slug":486,"type":274},"PostgreSQL","postgresql",{"name":488,"slug":489,"type":274},"Redis","redis",{"name":6,"slug":5,"type":274},"2026-07-30T05:53:36.51292",{"slug":493,"name":494,"fn":495,"description":496,"org":497,"tags":498,"stars":125,"repoUrl":124,"updatedAt":505},"ai-persistencebuild-drizzle-adapter","ai-persistence\u002Fbuild-drizzle-adapter","build Drizzle adapters for TanStack AI persistence","Use when an app already runs Drizzle ORM and needs TanStack AI chat persistence — writes a chat-persistence.ts into the app against its existing db handle, schema file, and drizzle-kit journal. Covers the four tables (SQLite\u002FPostgres\u002FMySQL), the onConflict idempotency rules, JSON columns, and per-request bindings like D1.",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[499,500,503,504],{"name":33,"slug":32,"type":274},{"name":501,"slug":502,"type":274},"Drizzle","drizzle",{"name":147,"slug":146,"type":274},{"name":6,"slug":5,"type":274},"2026-07-30T05:53:32.020485",{"slug":507,"name":508,"fn":509,"description":510,"org":511,"tags":512,"stars":125,"repoUrl":124,"updatedAt":519},"ai-persistencebuild-prisma-adapter","ai-persistence\u002Fbuild-prisma-adapter","build Prisma adapters for TanStack AI persistence","Use when an app already runs Prisma and needs TanStack AI chat persistence — writes a chat-persistence.ts into the app against its existing PrismaClient and schema.prisma. Covers the four models, BigInt timestamps, JSON-as-string columns, upsert-with-empty-update idempotency, and model renaming.",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[513,514,515,518],{"name":33,"slug":32,"type":274},{"name":147,"slug":146,"type":274},{"name":516,"slug":517,"type":274},"Prisma","prisma",{"name":6,"slug":5,"type":274},"2026-07-30T05:53:30.493586",{"slug":521,"name":522,"fn":523,"description":524,"org":525,"tags":526,"stars":125,"repoUrl":124,"updatedAt":531},"ai-persistenceserver","ai-persistence\u002Fserver","configure server-side chat state for TanStack AI","Server chat state with withPersistence from @tanstack\u002Fai-persistence. Authoritative transcript, run lifecycle, durable interrupts\u002Fapprovals, chatParamsFromRequest, reconstructChat, snapshotStreaming. Use when the server owns history, multi-device, or durable tool approvals. NOT client localStorage (see ai-core\u002Fclient-persistence in @tanstack\u002Fai) and NOT stream reconnect alone.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[527,528,529,530],{"name":154,"slug":123,"type":274},{"name":85,"slug":84,"type":274},{"name":147,"slug":146,"type":274},{"name":6,"slug":5,"type":274},"2026-07-30T05:53:29.989036",{"slug":533,"name":534,"fn":535,"description":536,"org":537,"tags":538,"stars":125,"repoUrl":124,"updatedAt":542},"ai-persistencestores","ai-persistence\u002Fstores","implement persistence store contracts for TanStack AI","Implement the MessageStore, RunStore, InterruptStore, MetadataStore contracts for @tanstack\u002Fai-persistence against any database. defineAIPersistence, composePersistence overrides, critical invariants (full-replace saveThread, insert-if-absent createOrResume and interrupt create), authorize thread access, runPersistenceConformance testkit. Use whenever you need server persistence — the package ships contracts, not a backend for your database.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[539,540,541],{"name":33,"slug":32,"type":274},{"name":147,"slug":146,"type":274},{"name":6,"slug":5,"type":274},"2026-07-30T05:53:31.017951",{"slug":544,"name":544,"fn":545,"description":546,"org":547,"tags":548,"stars":125,"repoUrl":124,"updatedAt":555},"ai-sandbox","run AI agents in isolated sandboxes","Run harness adapters (Claude Code, Codex, OpenCode) INSIDE isolated sandboxes via defineSandbox + withSandbox + a provider (localProcessSandbox \u002F dockerSandbox). Covers declarative provisioning: createSecrets + secret\u002Fbearer, skills (agentSkill\u002FgitSkill\u002FmcpSkill\u002F fileSkill), plugins, instructions → canonical AGENTS.md + symlinks projected per harness; shallow-clone default with depth opt-out; serial\u002Fparallel setup callback over a persistent shell; snapshot-after-setup default with snapshotMaxAge TTL; defineWorkspace (git\u002Fsetup\u002Fscripts\u002Fskills\u002Fsecrets\u002F instructions\u002Fplugins), defineSandboxPolicy (allow\u002Fask\u002Fdeny), lifecycle\u002Fresume, the SandboxHandle (fs\u002Fgit\u002Fprocess\u002Fports), capability tokens, defineSandbox hooks (onFile\u002FonFileCreate\u002FonFileChange\u002FonFileDelete\u002FonReady\u002FonError\u002F onDestroy) + fileEvents flag, chat middleware sandbox group (defineChatMiddleware sandbox hooks), the sandbox debug category, watchWorkspace as a low-level building block, and the file.changed \u002F sandbox.file \u002F claude-code.session-id events. Use whenever a harness adapter needs a sandbox or when building sandbox providers.\n",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[549,550,553,554],{"name":54,"slug":53,"type":274},{"name":551,"slug":552,"type":274},"Docker","docker",{"name":279,"slug":280,"type":274},{"name":6,"slug":5,"type":274},"2026-07-16T06:02:33.818289",{"slug":557,"name":557,"fn":558,"description":559,"org":560,"tags":561,"stars":125,"repoUrl":124,"updatedAt":565},"tanstack-ai-memory","wire TanStack AI memory middleware","Use when wiring memoryMiddleware from @tanstack\u002Fai-memory into a chat() call — covers the recall\u002Fsave adapter contract, scope shape and server-side scope security, the recall-inject \u002F deferred-save lifecycle, choosing an adapter (inMemory, redis, hindsight, mem0, honcho), and devtools events.",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[562,563,564],{"name":54,"slug":53,"type":274},{"name":152,"slug":151,"type":274},{"name":6,"slug":5,"type":274},"2026-07-26T06:08:45.538491",{"slug":567,"name":567,"fn":568,"description":569,"org":570,"tags":571,"stars":125,"repoUrl":124,"updatedAt":575},"tanstack-ai-memory-hindsight","wire TanStack AI hindsight memory adapter","Use when wiring hindsight() from @tanstack\u002Fai-memory\u002Fhindsight — a hosted memory adapter that buckets memory per conversation and exposes retain\u002Frecall\u002Freflect tools to the model. Requires the optional @vectorize-io\u002Fhindsight-client peer.",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[572,573,574],{"name":54,"slug":53,"type":274},{"name":152,"slug":151,"type":274},{"name":6,"slug":5,"type":274},"2026-07-26T06:08:54.629827",{"slug":577,"name":577,"fn":578,"description":579,"org":580,"tags":581,"stars":125,"repoUrl":124,"updatedAt":585},"tanstack-ai-memory-honcho","wire TanStack AI memory honcho adapter","Use when wiring honcho() from @tanstack\u002Fai-memory\u002Fhoncho — a hosted memory adapter where recall is a dialectic answer over the user's representation (no discrete fragments). Requires the optional @honcho-ai\u002Fsdk peer.",{"slug":5,"name":6,"logoUrl":7,"githubOrg":6},[582,583,584],{"name":54,"slug":53,"type":274},{"name":152,"slug":151,"type":274},{"name":6,"slug":5,"type":274},"2026-07-26T06:08:45.054471"]