[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-tanstack-ai-memory-honcho":3,"mdc--bpnoul-key":50,"related-org-tanstack-tanstack-ai-memory-honcho":580,"related-repo-tanstack-tanstack-ai-memory-honcho":724},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":45,"sourceUrl":48,"mdContent":49},"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":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,16,19],{"name":13,"slug":14,"type":15},"Memory","memory","tag",{"name":17,"slug":18,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},2884,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Fai","2026-07-26T06:08:45.054471",null,269,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,8,41,42,43,44],"ai","ai-agents","ai-sdk","anthropic","chatbot","function-calling","gemini","generative-ai","llm","multimodal","openai","react","solidjs","streaming","svelte","tool-calling","typescript","typescript-sdk","vue",{"repoUrl":21,"stars":20,"forks":24,"topics":46,"description":47},[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,8,41,42,43,44],"🤖 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.","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fai\u002Ftree\u002FHEAD\u002Fpackages\u002Fai-memory\u002Fskills\u002Ftanstack-ai-memory-honcho","---\nname: tanstack-ai-memory-honcho\ndescription: 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.\n---\n\n# Honcho Memory Adapter\n\nHosted `recall`\u002F`save` adapter backed by Honcho. Honcho models memory as peers\nexchanging messages in a session; `recall` returns a **synthesized dialectic answer**\nover the user peer's representation (so there are no discrete fragments), and `save`\nappends the turn's messages to the session.\n\n## Setup\n\n```ts\nimport { memoryMiddleware } from '@tanstack\u002Fai-memory'\nimport { honcho } from '@tanstack\u002Fai-memory\u002Fhoncho'\n\nconst memory = honcho({ user: currentUserId }) \u002F\u002F baseURL defaults to HONCHO_URL\n\nmemoryMiddleware({ adapter: memory, scope })\n```\n\n`@honcho-ai\u002Fsdk` is an **optional peer dependency**, loaded lazily on first use — install\nit where you use `honcho()`.\n\n## Options\n\n- `user` — user peer id (falls back to `scope.userId`, then `'demo-user'`).\n- `baseURL` — Honcho server URL (default `HONCHO_URL` or `http:\u002F\u002Flocalhost:8001`).\n- `workspaceId` — default `HONCHO_APP_NAME` or `'ai-memory'`.\n- `apiKey` — default `HONCHO_API_KEY`.\n- `assistantId` — assistant peer id (default `'assistant'`).\n\n**Scope fields:** session key = `{tenantId|_}__{threadId}`; peer id is\n`{tenantId}__{user}` when `tenantId` is set, otherwise `user` \u002F `scope.userId`.\n`namespace` is ignored.\n\n`recall` calls the user peer's dialectic `chat()` and injects the answer as the system\nprompt; Honcho exposes no LLM tools.\n",{"data":51,"body":52},{"name":4,"description":6},{"type":53,"children":54},"root",[55,64,109,116,350,376,382,500,556,574],{"type":56,"tag":57,"props":58,"children":60},"element","h1",{"id":59},"honcho-memory-adapter",[61],{"type":62,"value":63},"text","Honcho Memory Adapter",{"type":56,"tag":65,"props":66,"children":67},"p",{},[68,70,77,79,85,87,92,94,100,102,107],{"type":62,"value":69},"Hosted ",{"type":56,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":62,"value":76},"recall",{"type":62,"value":78},"\u002F",{"type":56,"tag":71,"props":80,"children":82},{"className":81},[],[83],{"type":62,"value":84},"save",{"type":62,"value":86}," adapter backed by Honcho. Honcho models memory as peers\nexchanging messages in a session; ",{"type":56,"tag":71,"props":88,"children":90},{"className":89},[],[91],{"type":62,"value":76},{"type":62,"value":93}," returns a ",{"type":56,"tag":95,"props":96,"children":97},"strong",{},[98],{"type":62,"value":99},"synthesized dialectic answer",{"type":62,"value":101},"\nover the user peer's representation (so there are no discrete fragments), and ",{"type":56,"tag":71,"props":103,"children":105},{"className":104},[],[106],{"type":62,"value":84},{"type":62,"value":108},"\nappends the turn's messages to the session.",{"type":56,"tag":110,"props":111,"children":113},"h2",{"id":112},"setup",[114],{"type":62,"value":115},"Setup",{"type":56,"tag":117,"props":118,"children":123},"pre",{"className":119,"code":120,"language":121,"meta":122,"style":122},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { memoryMiddleware } from '@tanstack\u002Fai-memory'\nimport { honcho } from '@tanstack\u002Fai-memory\u002Fhoncho'\n\nconst memory = honcho({ user: currentUserId }) \u002F\u002F baseURL defaults to HONCHO_URL\n\nmemoryMiddleware({ adapter: memory, scope })\n","ts","",[124],{"type":56,"tag":71,"props":125,"children":126},{"__ignoreMap":122},[127,177,215,225,292,300],{"type":56,"tag":128,"props":129,"children":132},"span",{"class":130,"line":131},"line",1,[133,139,145,151,156,161,166,172],{"type":56,"tag":128,"props":134,"children":136},{"style":135},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[137],{"type":62,"value":138},"import",{"type":56,"tag":128,"props":140,"children":142},{"style":141},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[143],{"type":62,"value":144}," {",{"type":56,"tag":128,"props":146,"children":148},{"style":147},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[149],{"type":62,"value":150}," memoryMiddleware",{"type":56,"tag":128,"props":152,"children":153},{"style":141},[154],{"type":62,"value":155}," }",{"type":56,"tag":128,"props":157,"children":158},{"style":135},[159],{"type":62,"value":160}," from",{"type":56,"tag":128,"props":162,"children":163},{"style":141},[164],{"type":62,"value":165}," '",{"type":56,"tag":128,"props":167,"children":169},{"style":168},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[170],{"type":62,"value":171},"@tanstack\u002Fai-memory",{"type":56,"tag":128,"props":173,"children":174},{"style":141},[175],{"type":62,"value":176},"'\n",{"type":56,"tag":128,"props":178,"children":180},{"class":130,"line":179},2,[181,185,189,194,198,202,206,211],{"type":56,"tag":128,"props":182,"children":183},{"style":135},[184],{"type":62,"value":138},{"type":56,"tag":128,"props":186,"children":187},{"style":141},[188],{"type":62,"value":144},{"type":56,"tag":128,"props":190,"children":191},{"style":147},[192],{"type":62,"value":193}," honcho",{"type":56,"tag":128,"props":195,"children":196},{"style":141},[197],{"type":62,"value":155},{"type":56,"tag":128,"props":199,"children":200},{"style":135},[201],{"type":62,"value":160},{"type":56,"tag":128,"props":203,"children":204},{"style":141},[205],{"type":62,"value":165},{"type":56,"tag":128,"props":207,"children":208},{"style":168},[209],{"type":62,"value":210},"@tanstack\u002Fai-memory\u002Fhoncho",{"type":56,"tag":128,"props":212,"children":213},{"style":141},[214],{"type":62,"value":176},{"type":56,"tag":128,"props":216,"children":218},{"class":130,"line":217},3,[219],{"type":56,"tag":128,"props":220,"children":222},{"emptyLinePlaceholder":221},true,[223],{"type":62,"value":224},"\n",{"type":56,"tag":128,"props":226,"children":228},{"class":130,"line":227},4,[229,235,240,245,250,255,260,266,271,276,281,286],{"type":56,"tag":128,"props":230,"children":232},{"style":231},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[233],{"type":62,"value":234},"const",{"type":56,"tag":128,"props":236,"children":237},{"style":147},[238],{"type":62,"value":239}," memory ",{"type":56,"tag":128,"props":241,"children":242},{"style":141},[243],{"type":62,"value":244},"=",{"type":56,"tag":128,"props":246,"children":248},{"style":247},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[249],{"type":62,"value":193},{"type":56,"tag":128,"props":251,"children":252},{"style":147},[253],{"type":62,"value":254},"(",{"type":56,"tag":128,"props":256,"children":257},{"style":141},[258],{"type":62,"value":259},"{",{"type":56,"tag":128,"props":261,"children":263},{"style":262},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[264],{"type":62,"value":265}," user",{"type":56,"tag":128,"props":267,"children":268},{"style":141},[269],{"type":62,"value":270},":",{"type":56,"tag":128,"props":272,"children":273},{"style":147},[274],{"type":62,"value":275}," currentUserId ",{"type":56,"tag":128,"props":277,"children":278},{"style":141},[279],{"type":62,"value":280},"}",{"type":56,"tag":128,"props":282,"children":283},{"style":147},[284],{"type":62,"value":285},") ",{"type":56,"tag":128,"props":287,"children":289},{"style":288},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[290],{"type":62,"value":291},"\u002F\u002F baseURL defaults to HONCHO_URL\n",{"type":56,"tag":128,"props":293,"children":295},{"class":130,"line":294},5,[296],{"type":56,"tag":128,"props":297,"children":298},{"emptyLinePlaceholder":221},[299],{"type":62,"value":224},{"type":56,"tag":128,"props":301,"children":303},{"class":130,"line":302},6,[304,309,313,317,322,326,331,336,341,345],{"type":56,"tag":128,"props":305,"children":306},{"style":247},[307],{"type":62,"value":308},"memoryMiddleware",{"type":56,"tag":128,"props":310,"children":311},{"style":147},[312],{"type":62,"value":254},{"type":56,"tag":128,"props":314,"children":315},{"style":141},[316],{"type":62,"value":259},{"type":56,"tag":128,"props":318,"children":319},{"style":262},[320],{"type":62,"value":321}," adapter",{"type":56,"tag":128,"props":323,"children":324},{"style":141},[325],{"type":62,"value":270},{"type":56,"tag":128,"props":327,"children":328},{"style":147},[329],{"type":62,"value":330}," memory",{"type":56,"tag":128,"props":332,"children":333},{"style":141},[334],{"type":62,"value":335},",",{"type":56,"tag":128,"props":337,"children":338},{"style":147},[339],{"type":62,"value":340}," scope ",{"type":56,"tag":128,"props":342,"children":343},{"style":141},[344],{"type":62,"value":280},{"type":56,"tag":128,"props":346,"children":347},{"style":147},[348],{"type":62,"value":349},")\n",{"type":56,"tag":65,"props":351,"children":352},{},[353,359,361,366,368,374],{"type":56,"tag":71,"props":354,"children":356},{"className":355},[],[357],{"type":62,"value":358},"@honcho-ai\u002Fsdk",{"type":62,"value":360}," is an ",{"type":56,"tag":95,"props":362,"children":363},{},[364],{"type":62,"value":365},"optional peer dependency",{"type":62,"value":367},", loaded lazily on first use — install\nit where you use ",{"type":56,"tag":71,"props":369,"children":371},{"className":370},[],[372],{"type":62,"value":373},"honcho()",{"type":62,"value":375},".",{"type":56,"tag":110,"props":377,"children":379},{"id":378},"options",[380],{"type":62,"value":381},"Options",{"type":56,"tag":383,"props":384,"children":385},"ul",{},[386,414,440,465,482],{"type":56,"tag":387,"props":388,"children":389},"li",{},[390,396,398,404,406,412],{"type":56,"tag":71,"props":391,"children":393},{"className":392},[],[394],{"type":62,"value":395},"user",{"type":62,"value":397}," — user peer id (falls back to ",{"type":56,"tag":71,"props":399,"children":401},{"className":400},[],[402],{"type":62,"value":403},"scope.userId",{"type":62,"value":405},", then ",{"type":56,"tag":71,"props":407,"children":409},{"className":408},[],[410],{"type":62,"value":411},"'demo-user'",{"type":62,"value":413},").",{"type":56,"tag":387,"props":415,"children":416},{},[417,423,425,431,433,439],{"type":56,"tag":71,"props":418,"children":420},{"className":419},[],[421],{"type":62,"value":422},"baseURL",{"type":62,"value":424}," — Honcho server URL (default ",{"type":56,"tag":71,"props":426,"children":428},{"className":427},[],[429],{"type":62,"value":430},"HONCHO_URL",{"type":62,"value":432}," or ",{"type":56,"tag":71,"props":434,"children":436},{"className":435},[],[437],{"type":62,"value":438},"http:\u002F\u002Flocalhost:8001",{"type":62,"value":413},{"type":56,"tag":387,"props":441,"children":442},{},[443,449,451,457,458,464],{"type":56,"tag":71,"props":444,"children":446},{"className":445},[],[447],{"type":62,"value":448},"workspaceId",{"type":62,"value":450}," — default ",{"type":56,"tag":71,"props":452,"children":454},{"className":453},[],[455],{"type":62,"value":456},"HONCHO_APP_NAME",{"type":62,"value":432},{"type":56,"tag":71,"props":459,"children":461},{"className":460},[],[462],{"type":62,"value":463},"'ai-memory'",{"type":62,"value":375},{"type":56,"tag":387,"props":466,"children":467},{},[468,474,475,481],{"type":56,"tag":71,"props":469,"children":471},{"className":470},[],[472],{"type":62,"value":473},"apiKey",{"type":62,"value":450},{"type":56,"tag":71,"props":476,"children":478},{"className":477},[],[479],{"type":62,"value":480},"HONCHO_API_KEY",{"type":62,"value":375},{"type":56,"tag":387,"props":483,"children":484},{},[485,491,493,499],{"type":56,"tag":71,"props":486,"children":488},{"className":487},[],[489],{"type":62,"value":490},"assistantId",{"type":62,"value":492}," — assistant peer id (default ",{"type":56,"tag":71,"props":494,"children":496},{"className":495},[],[497],{"type":62,"value":498},"'assistant'",{"type":62,"value":413},{"type":56,"tag":65,"props":501,"children":502},{},[503,508,510,516,518,524,526,532,534,539,541,546,548,554],{"type":56,"tag":95,"props":504,"children":505},{},[506],{"type":62,"value":507},"Scope fields:",{"type":62,"value":509}," session key = ",{"type":56,"tag":71,"props":511,"children":513},{"className":512},[],[514],{"type":62,"value":515},"{tenantId|_}__{threadId}",{"type":62,"value":517},"; peer id is\n",{"type":56,"tag":71,"props":519,"children":521},{"className":520},[],[522],{"type":62,"value":523},"{tenantId}__{user}",{"type":62,"value":525}," when ",{"type":56,"tag":71,"props":527,"children":529},{"className":528},[],[530],{"type":62,"value":531},"tenantId",{"type":62,"value":533}," is set, otherwise ",{"type":56,"tag":71,"props":535,"children":537},{"className":536},[],[538],{"type":62,"value":395},{"type":62,"value":540}," \u002F ",{"type":56,"tag":71,"props":542,"children":544},{"className":543},[],[545],{"type":62,"value":403},{"type":62,"value":547},".\n",{"type":56,"tag":71,"props":549,"children":551},{"className":550},[],[552],{"type":62,"value":553},"namespace",{"type":62,"value":555}," is ignored.",{"type":56,"tag":65,"props":557,"children":558},{},[559,564,566,572],{"type":56,"tag":71,"props":560,"children":562},{"className":561},[],[563],{"type":62,"value":76},{"type":62,"value":565}," calls the user peer's dialectic ",{"type":56,"tag":71,"props":567,"children":569},{"className":568},[],[570],{"type":62,"value":571},"chat()",{"type":62,"value":573}," and injects the answer as the system\nprompt; Honcho exposes no LLM tools.",{"type":56,"tag":575,"props":576,"children":577},"style",{},[578],{"type":62,"value":579},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":581,"total":723},[582,598,610,622,637,649,659,669,682,692,703,713],{"slug":583,"name":583,"fn":584,"description":585,"org":586,"tags":587,"stars":595,"repoUrl":596,"updatedAt":597},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[588,591,594],{"name":589,"slug":590,"type":15},"Data Analysis","data-analysis",{"name":592,"slug":593,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:59.429787",{"slug":599,"name":599,"fn":600,"description":601,"org":602,"tags":603,"stars":595,"repoUrl":596,"updatedAt":609},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[604,607,608],{"name":605,"slug":606,"type":15},"Debugging","debugging",{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":611,"name":611,"fn":612,"description":613,"org":614,"tags":615,"stars":595,"repoUrl":596,"updatedAt":621},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[616,617,618],{"name":589,"slug":590,"type":15},{"name":9,"slug":8,"type":15},{"name":619,"slug":620,"type":15},"UI Components","ui-components","2026-07-30T05:25:38.403427",{"slug":623,"name":623,"fn":624,"description":625,"org":626,"tags":627,"stars":595,"repoUrl":596,"updatedAt":636},"client-vs-server","manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[628,631,632,635],{"name":629,"slug":630,"type":15},"Data Pipeline","data-pipeline",{"name":592,"slug":593,"type":15},{"name":633,"slug":634,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":638,"name":638,"fn":639,"description":640,"org":641,"tags":642,"stars":595,"repoUrl":596,"updatedAt":648},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[643,646,647],{"name":644,"slug":645,"type":15},"Data Visualization","data-visualization",{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":650,"name":650,"fn":651,"description":652,"org":653,"tags":654,"stars":595,"repoUrl":596,"updatedAt":658},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[655,656,657],{"name":589,"slug":590,"type":15},{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":660,"name":660,"fn":661,"description":662,"org":663,"tags":664,"stars":595,"repoUrl":596,"updatedAt":668},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[665,666,667],{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},{"name":619,"slug":620,"type":15},"2026-07-30T05:26:03.37801",{"slug":670,"name":670,"fn":671,"description":672,"org":673,"tags":674,"stars":595,"repoUrl":596,"updatedAt":681},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[675,678,679,680],{"name":676,"slug":677,"type":15},"CSS","css",{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},{"name":619,"slug":620,"type":15},"2026-07-30T05:25:55.377366",{"slug":683,"name":683,"fn":684,"description":685,"org":686,"tags":687,"stars":595,"repoUrl":596,"updatedAt":691},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[688,689,690],{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},{"name":619,"slug":620,"type":15},"2026-07-30T05:25:51.400011",{"slug":693,"name":693,"fn":694,"description":695,"org":696,"tags":697,"stars":595,"repoUrl":596,"updatedAt":702},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[698,699,700,701],{"name":676,"slug":677,"type":15},{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},{"name":619,"slug":620,"type":15},"2026-07-30T05:25:48.703799",{"slug":704,"name":704,"fn":705,"description":706,"org":707,"tags":708,"stars":595,"repoUrl":596,"updatedAt":712},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[709,710,711],{"name":592,"slug":593,"type":15},{"name":9,"slug":8,"type":15},{"name":619,"slug":620,"type":15},"2026-07-30T05:25:47.367943",{"slug":714,"name":714,"fn":715,"description":716,"org":717,"tags":718,"stars":595,"repoUrl":596,"updatedAt":722},"core","build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[719,720,721],{"name":589,"slug":590,"type":15},{"name":592,"slug":593,"type":15},{"name":619,"slug":620,"type":15},"2026-07-30T05:25:52.366295",125,{"items":725,"total":825},[726,744,757,772,785,797,811],{"slug":727,"name":727,"fn":728,"description":729,"org":730,"tags":731,"stars":20,"repoUrl":21,"updatedAt":743},"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":8,"name":9,"logoUrl":10,"githubOrg":9},[732,734,737,740,741],{"name":733,"slug":28,"type":15},"AI SDK",{"name":735,"slug":736,"type":15},"Code Execution","code-execution",{"name":738,"slug":739,"type":15},"Sandboxing","sandboxing",{"name":9,"slug":8,"type":15},{"name":742,"slug":42,"type":15},"TypeScript","2026-07-16T06:04:13.597905",{"slug":745,"name":745,"fn":746,"description":747,"org":748,"tags":749,"stars":20,"repoUrl":21,"updatedAt":756},"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":8,"name":9,"logoUrl":10,"githubOrg":9},[750,751,753],{"name":17,"slug":18,"type":15},{"name":752,"slug":26,"type":15},"AI",{"name":754,"slug":755,"type":15},"Middleware","middleware","2026-07-30T05:26:10.404565",{"slug":758,"name":759,"fn":760,"description":761,"org":762,"tags":763,"stars":20,"repoUrl":21,"updatedAt":771},"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":8,"name":9,"logoUrl":10,"githubOrg":9},[764,765,768,770],{"name":733,"slug":28,"type":15},{"name":766,"slug":767,"type":15},"Configuration","configuration",{"name":769,"slug":34,"type":15},"LLM",{"name":9,"slug":8,"type":15},"2026-07-16T06:04:17.82075",{"slug":773,"name":774,"fn":775,"description":776,"org":777,"tags":778,"stars":20,"repoUrl":21,"updatedAt":784},"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":8,"name":9,"logoUrl":10,"githubOrg":9},[779,782,783],{"name":780,"slug":781,"type":15},"API Development","api-development",{"name":769,"slug":34,"type":15},{"name":9,"slug":8,"type":15},"2026-07-16T06:04:10.093367",{"slug":786,"name":787,"fn":788,"description":789,"org":790,"tags":791,"stars":20,"repoUrl":21,"updatedAt":796},"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":8,"name":9,"logoUrl":10,"githubOrg":9},[792,793,794,795],{"name":780,"slug":781,"type":15},{"name":592,"slug":593,"type":15},{"name":769,"slug":34,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:11.505241",{"slug":798,"name":799,"fn":800,"description":801,"org":802,"tags":803,"stars":20,"repoUrl":21,"updatedAt":810},"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":8,"name":9,"logoUrl":10,"githubOrg":9},[804,805,806,809],{"name":752,"slug":26,"type":15},{"name":592,"slug":593,"type":15},{"name":807,"slug":808,"type":15},"Persistence","persistence",{"name":9,"slug":8,"type":15},"2026-07-30T05:53:35.503176",{"slug":812,"name":813,"fn":814,"description":815,"org":816,"tags":817,"stars":20,"repoUrl":21,"updatedAt":824},"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":8,"name":9,"logoUrl":10,"githubOrg":9},[818,819,820,823],{"name":752,"slug":26,"type":15},{"name":780,"slug":781,"type":15},{"name":821,"slug":822,"type":15},"Backend","backend",{"name":9,"slug":8,"type":15},"2026-07-17T06:06:39.855351",27]