{"id":24056527,"url":"https://github.com/assistant-ui/assistant-ui","last_synced_at":"2026-06-01T03:05:38.099Z","repository":{"id":235006081,"uuid":"722184017","full_name":"assistant-ui/assistant-ui","owner":"assistant-ui","description":"Typescript/React Library for AI Chat💬🚀","archived":false,"fork":false,"pushed_at":"2026-05-24T00:35:48.000Z","size":88885,"stargazers_count":10204,"open_issues_count":16,"forks_count":1032,"subscribers_count":79,"default_branch":"main","last_synced_at":"2026-05-24T02:24:51.697Z","etag":null,"topics":["ai-chatbot","chatbot","conversational-ai","copilot","radix-ui","react-chatbot","shadcn","ui-components","vercel-ai-sdk"],"latest_commit_sha":null,"homepage":"https://www.assistant-ui.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/assistant-ui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-11-22T16:01:17.000Z","updated_at":"2026-05-24T02:06:04.000Z","dependencies_parsed_at":"2024-06-28T20:04:29.797Z","dependency_job_id":"14a7f04f-ad3f-4254-9d97-b6cce9331661","html_url":"https://github.com/assistant-ui/assistant-ui","commit_stats":null,"previous_names":["yonom/assistant-ui","assistant-ui/assistant-ui"],"tags_count":1462,"template":false,"template_full_name":null,"purl":"pkg:github/assistant-ui/assistant-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assistant-ui%2Fassistant-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assistant-ui%2Fassistant-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assistant-ui%2Fassistant-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assistant-ui%2Fassistant-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/assistant-ui","download_url":"https://codeload.github.com/assistant-ui/assistant-ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assistant-ui%2Fassistant-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33543974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-chatbot","chatbot","conversational-ai","copilot","radix-ui","react-chatbot","shadcn","ui-components","vercel-ai-sdk"],"created_at":"2025-01-09T05:00:59.594Z","updated_at":"2026-05-27T00:02:35.661Z","avatar_url":"https://github.com/assistant-ui.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","others","🏗️ Reference Implementations \u0026 Case Studies","Open Source","Components \u0026 Libraries","13. Developer Tools \u0026 Integrations","Chatbots \u0026 Virtual Companions","🌐 Web Development - Frontend"],"sub_categories":["T20 · Product \u0026 UX","Self-Hosted"],"readme":"\u003ca href=\"https://www.assistant-ui.com\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/header.svg\" alt=\"assistant-ui Header\" width=\"100%\" /\u003e\n\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.assistant-ui.com\"\u003eProduct\u003c/a\u003e ·\n  \u003ca href=\"https://www.assistant-ui.com/docs\"\u003eDocumentation\u003c/a\u003e ·\n  \u003ca href=\"https://www.assistant-ui.com/examples\"\u003eExamples\u003c/a\u003e ·\n  \u003ca href=\"https://discord.gg/S9dwgCNEFs\"\u003eDiscord\u003c/a\u003e ·\n  \u003ca href=\"https://cal.com/simon-farshid/assistant-ui\"\u003eContact Sales\u003c/a\u003e\n\u003c/p\u003e\n\n[![npm version](https://img.shields.io/npm/v/@assistant-ui/react)](https://www.npmjs.com/package/@assistant-ui/react)\n[![npm downloads](https://img.shields.io/npm/dm/@assistant-ui/react)](https://www.npmjs.com/package/@assistant-ui/react)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/assistant-ui/assistant-ui)\n[![Weave Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fapp.workweave.ai%2Fapi%2Frepository%2Fbadge%2Forg_GhSIrtWo37b5B3Mv0At3wQ1Q%2F722184017\u0026cacheSeconds=3600)](https://app.workweave.ai/reports/repository/org_GhSIrtWo37b5B3Mv0At3wQ1Q/722184017)\n![GitHub License](https://img.shields.io/github/license/assistant-ui/assistant-ui)\n[![GitHub stars](https://img.shields.io/github/stars/assistant-ui/assistant-ui)](https://github.com/assistant-ui/assistant-ui)\n![Backed by Y Combinator](https://img.shields.io/badge/Backed_by-Y_Combinator-orange)\n\n## The UX of ChatGPT in your React app 💬🚀\n\n**assistant-ui** is an open-source TypeScript/React library to build production-grade AI chat experiences fast.\n\n## Installation\n\nThe fastest path is the CLI, which scaffolds a Next.js app or adds the styled components to an existing project:\n\n```bash\nnpx assistant-ui@latest create   # new project\nnpx assistant-ui@latest init     # add to existing project\n```\n\nOr install the packages directly:\n\n```bash\nnpm install @assistant-ui/react @assistant-ui/react-ai-sdk\n```\n\n## Usage\n\n```tsx\n\"use client\";\n\nimport { AssistantRuntimeProvider } from \"@assistant-ui/react\";\nimport { useChatRuntime } from \"@assistant-ui/react-ai-sdk\";\nimport { Thread } from \"@/components/assistant-ui/thread\";\n\nexport function Chat() {\n  const runtime = useChatRuntime();\n  return (\n    \u003cAssistantRuntimeProvider runtime={runtime}\u003e\n      \u003cThread /\u003e\n    \u003c/AssistantRuntimeProvider\u003e\n  );\n}\n```\n\n`useChatRuntime` connects to the Vercel AI SDK out of the box. Swap it for `useLangGraphRuntime`, `useDataStreamRuntime`, or any custom runtime to integrate with your own backend.\n\n[![assistant-ui starter template](https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/assistant-ui-starter.gif)](https://youtu.be/k6Dc8URmLjk)\n\n## What you get\n\n- **Composable primitives**: build any chat UX from `Thread`, `Message`, `Composer`, `ThreadList`, `ActionBar`, and friends. Style every pixel yourself, or start from a polished shadcn/ui theme that the CLI copies into your project.\n- **Production UX out of the box**: streaming, auto-scroll, retries, attachments, markdown, code highlighting, voice dictation, keyboard shortcuts, and accessibility.\n- **Generative UI**: render tool calls and JSON as React components, collect inline human approvals, and expose safe frontend actions to the model.\n- **Strong TypeScript**: typed runtime APIs, tool schemas, message parts, and adapters end to end.\n\n## Backends\n\n| Integration                            | Package                                                          |\n| -------------------------------------- | ---------------------------------------------------------------- |\n| Vercel AI SDK                          | `@assistant-ui/react-ai-sdk`                                     |\n| LangGraph / LangChain                  | `@assistant-ui/react-langgraph`, `@assistant-ui/react-langchain` |\n| AG-UI / A2A protocols                  | `@assistant-ui/react-ag-ui`, `@assistant-ui/react-a2a`           |\n| Google ADK / OpenCode                  | `@assistant-ui/react-google-adk`, `@assistant-ui/react-opencode` |\n| Custom data-stream backend             | `@assistant-ui/react-data-stream`                                |\n| Managed thread history, telemetry, and file storage | `assistant-cloud`                                       |\n\nBroad model support out of the box (OpenAI, Anthropic, Google Gemini, Mistral, Perplexity, AWS Bedrock, Azure, Fireworks, Ollama) plus community providers via the AI SDK, and easy extension to any custom HTTP backend.\n\n## Customization\n\nRadix-style: instead of a single monolithic chat component, you compose primitives and bring your own styles. The CLI ships a great starter; you control everything else.\n\n![Overview of components](https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/components.png)\n\nSample customization to make a Perplexity lookalike:\n\n![Perplexity clone created with assistant-ui](https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/perplexity.gif)\n\n## Used in production by\n\n\u003ca href=\"https://mastra.ai/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/Mastra.svg\" height=\"20\" alt=\"Mastra\"\u003e\u003c/a\u003e, \u003ca href=\"https://langchain.com/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/LangChain.svg\" height=\"20\" alt=\"LangChain\"\u003e\u003c/a\u003e, \u003ca href=\"https://athenaintelligence.ai/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/Athena-Intelligence.svg\" height=\"20\" alt=\"Athena Intelligence\"\u003e\u003c/a\u003e, \u003ca href=\"https://browser-use.com/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/Browser-Use.svg\" height=\"20\" alt=\"Browser Use\"\u003e\u003c/a\u003e, \u003ca href=\"https://stack-ai.com/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/Stack.svg\" height=\"20\" alt=\"Stack\"\u003e\u003c/a\u003e, \u003ca href=\"https://inconvo.com/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/Inconvo.svg\" height=\"20\" alt=\"Inconvo\"\u003e\u003c/a\u003e, \u003ca href=\"https://iterable.com/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/Iterable.svg\" height=\"20\" alt=\"Iterable\"\u003e\u003c/a\u003e, \u003ca href=\"https://helicone.ai/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/helicone.svg\" height=\"20\" alt=\"Helicone\"\u003e\u003c/a\u003e, \u003ca href=\"https://getgram.ai/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/gram.svg\" height=\"20\" alt=\"Gram\"\u003e\u003c/a\u003e, \u003ca href=\"https://coreviz.io/?ref=assistant-ui\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/logos/Coreviz.svg\" height=\"20\" alt=\"Coreviz\"\u003e\u003c/a\u003e, and many more.\n\n![Chart of assistant-ui's traction](https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/traction.png)\n\n## Demos\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://youtu.be/ZW56UHlqTCQ\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/ZW56UHlqTCQ/hqdefault.jpg\" alt=\"Short Demo\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://youtu.be/9eLKs9AM4tU\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/9eLKs9AM4tU/hqdefault.jpg\" alt=\"Long Demo\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Community \u0026 Support\n\n- [Examples](https://www.assistant-ui.com/examples)\n- [Documentation](https://www.assistant-ui.com/docs/)\n- [Discord](https://discord.com/invite/S9dwgCNEFs)\n- [Book a sales call](https://cal.com/simon-farshid/assistant-ui)\n\n## For other platforms\n\n- React Native: [`@assistant-ui/react-native`](https://www.npmjs.com/package/@assistant-ui/react-native)\n- Terminal (Ink): [`@assistant-ui/react-ink`](https://www.npmjs.com/package/@assistant-ui/react-ink)\n\n## License\n\nMIT, with optional Assistant Cloud for managed thread persistence and analytics.\n\nBacked by Y Combinator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassistant-ui%2Fassistant-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fassistant-ui%2Fassistant-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassistant-ui%2Fassistant-ui/lists"}