[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73825":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},73825,"ai","TanStack\u002Fai","TanStack","🤖 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.","",null,"TypeScript",2771,232,7,38,0,6,30,131,26,29.1,"MIT License",false,"main",[],"2026-06-12 02:03:18","\u003Cdiv align=\"center\">\n  \u003Cimg src=\".\u002Fmedia\u002Fheader_ai.png\" >\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\n\u003Cdiv align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002F@tanstack\u002Fai\" target=\"\\_parent\">\n  \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002F@tanstack\u002Fai.svg\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTanStack\u002Fai\" target=\"\\_parent\">\n\t  \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FTanStack\u002Fai.svg?style=social&label=Star\" alt=\"GitHub stars\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fbundlephobia.com\u002Fresult?p=@tanstack\u002Fai@latest\" target=\"\\_parent\">\n  \u003Cimg alt=\"\" src=\"https:\u002F\u002Fbadgen.net\u002Fbundlephobia\u002Fminzip\u002F@tanstack\u002Fai@latest\" \u002F>\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\u003Ca href=\"#badge\">\n  \u003Cimg alt=\"semantic-release\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n\u003C\u002Fa>\n\t\u003Ca href=\"#badge\">\n\t\t\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ftanstack\u002Fai\" alt=\"Release\"\u002F>\n\t\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Ftan_stack\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Ftan_stack.svg?style=social\" alt=\"Follow @TanStack\"\u002F>\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n  \n### [Become a Sponsor!](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Ftannerlinsley\u002F)\n\u003C\u002Fdiv>\n\n# TanStack AI\n\nA powerful, type-safe AI SDK for building AI-powered applications.\n\n- Provider-agnostic adapters (OpenAI, Anthropic, Gemini, Ollama, etc.)\n- **Tree-shakeable adapters** - Import only what you need for smaller bundles\n- **Multimodal content support** - Send images, audio, video, and documents\n- **Image generation** - Generate images with OpenAI DALL-E\u002FGPT-Image and Gemini Imagen\n- Chat completion, streaming, and agent loop strategies\n- Headless chat state management with adapters (SSE, HTTP stream, custom)\n- Isomorphic type-safe tools with server\u002Fclient execution\n- **Enhanced integration with TanStack Start** - Share implementations between AI tools and server functions\n- **Observability events** - Structured, typed events for text, tools, image, speech, transcription, and video ([docs](.\u002Fdocs\u002Fguides\u002Fobservability.md))\n\n### \u003Ca href=\"https:\u002F\u002Ftanstack.com\u002Fai\">Read the docs →\u003C\u002Fa>\n\n## Requirements\n\n- **Node.js v24+** is required to avoid compatibility issues with `isolated-vm`.\n\n## Tree-Shakeable Adapters\n\nImport only the functionality you need for smaller bundle sizes:\n\n```typescript\n\u002F\u002F Only chat functionality - no summarization code bundled\nimport { openaiText } from '@tanstack\u002Fai-openai\u002Fadapters'\nimport { generate } from '@tanstack\u002Fai'\n\nconst textAdapter = openaiText()\n\nconst result = generate({\n  adapter: textAdapter,\n  model: 'gpt-4o',\n  messages: [{ role: 'user', content: [{ type: 'text', content: 'Hello!' }] }],\n})\n\nfor await (const chunk of result) {\n  console.log(chunk)\n}\n```\n\nAvailable adapters: `openaiText`, `openaiEmbed`, `openaiSummarize`, `anthropicText`, `geminiText`, `ollamaText`, and more.\n\n## Get Involved\n\n- We welcome issues and pull requests!\n- Participate in [GitHub discussions](https:\u002F\u002Fgithub.com\u002FTanStack\u002Fai\u002Fdiscussions)\n- Chat with the community on [Discord](https:\u002F\u002Fdiscord.com\u002Finvite\u002FWrRKjPJ)\n- See [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) for setup instructions\n\n## Partners\n\n\u003Ctable align=\"center\">\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fwww.coderabbit.ai\u002F?via=tanstack&dub_id=aCcEEdAOqqutX6OS\" >\n        \u003Cpicture>\n         \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Ftanstack.com\u002Fassets\u002Fcoderabbit-dark-D643Zkrv.svg\" \u002F>\n          \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Ftanstack.com\u002Fassets\u002Fcoderabbit-light-CIzGLYU_.svg\" \u002F>\n          \u003Cimg src=\"https:\u002F\u002Ftanstack.com\u002Fassets\u002Fcoderabbit-light-CIzGLYU_.svg\" height=\"40\" alt=\"CodeRabbit\" \u002F>\n        \u003C\u002Fpicture>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com?utm_source=tanstack\">\n        \u003Cpicture>\n           \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Ftanstack.com\u002Fassets\u002Fcloudflare-white-Co-Tyjbl.svg\" \u002F>\n          \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Ftanstack.com\u002Fassets\u002Fcloudflare-black-6Ojsn8yh.svg\" \u002F>\n          \u003Cimg src=\"https:\u002F\u002Ftanstack.com\u002Fassets\u002Fcloudflare-white-Co-Tyjbl.svg\" height=\"60\" alt=\"Cloudflare\" \u002F>\n        \u003C\u002Fpicture>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\".\u002Fmedia\u002Fpartner_logo.svg\" alt=\"AI & you?\" height=\"65\">\n\u003Cp>\nWe're looking for TanStack AI Partners to join our mission! Partner with us to push the boundaries of TanStack AI and build amazing things together.\n\u003C\u002Fp>\n\u003Ca href=\"mailto:partners@tanstack.com?subject=TanStack AI Partnership\">\u003Cb>LET'S CHAT\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n## Explore the TanStack Ecosystem\n\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fconfig\">\u003Cb>TanStack Config\u003C\u002Fb>\u003C\u002Fa> – Tooling for JS\u002FTS packages\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fdb\">\u003Cb>TanStack DB\u003C\u002Fb>\u003C\u002Fa> – Reactive sync client store\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fdevtools\">\u003Cb>TanStack Devtools\u003C\u002Fb>\u003C\u002Fa> – Unified devtools panel\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fform\">\u003Cb>TanStack Form\u003C\u002Fb>\u003C\u002Fa> – Type‑safe form state\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fpacer\">\u003Cb>TanStack Pacer\u003C\u002Fb>\u003C\u002Fa> – Debouncing, throttling, batching\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fquery\">\u003Cb>TanStack Query\u003C\u002Fb>\u003C\u002Fa> – Async state & caching\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Franger\">\u003Cb>TanStack Ranger\u003C\u002Fb>\u003C\u002Fa> – Range & slider primitives\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Frouter\">\u003Cb>TanStack Router\u003C\u002Fb>\u003C\u002Fa> – Type‑safe routing, caching & URL state\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Frouter\">\u003Cb>TanStack Start\u003C\u002Fb>\u003C\u002Fa> – Full‑stack SSR & streaming\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fstore\">\u003Cb>TanStack Store\u003C\u002Fb>\u003C\u002Fa> – Reactive data store\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Ftable\">\u003Cb>TanStack Table\u003C\u002Fb>\u003C\u002Fa> – Headless datagrids\n- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftanstack\u002Fvirtual\">\u003Cb>TanStack Virtual\u003C\u002Fb>\u003C\u002Fa> – Virtualized rendering\n\n… and more at \u003Ca href=\"https:\u002F\u002Ftanstack.com\">\u003Cb>TanStack.com »\u003C\u002Fb>\u003C\u002Fa>\n\n\u003C!-- USE THE FORCE LUKE -->\n","TanStack\u002Fai 是一个用于增强应用程序AI能力的SDK。它支持多种AI服务提供商（如OpenAI、Anthropic等），并通过树摇技术减少最终包体积，仅需导入所需功能。该项目支持多模态内容处理，包括图像生成、文本聊天及流式处理等功能，并且与TanStack Start集成良好，方便在服务器和客户端之间共享实现。此外，它还提供了结构化的可观测性事件支持。适用于需要快速集成AI功能的应用场景，尤其是那些对性能有较高要求且希望保持代码简洁的项目。",2,"2026-06-11 03:47:31","high_star"]