explaingit

tambo-ai/tambo

11,158TypeScriptAudience · developerComplexity · 3/5Setup · easy

TLDR

A toolkit for React developers that lets an AI agent decide which UI components to show based on what a user types in a chat, with streaming and error recovery built in.

Mindmap

mindmap
  root((tambo))
    What it does
      AI picks components
      Chat-driven UI
      Streams component data
    Tech stack
      TypeScript
      React
      Docker
      MCP protocol
    Use cases
      Dynamic dashboards
      AI chat interfaces
      Component automation
    Audience
      React developers
      App builders
      Vibe coders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a chat-driven dashboard where users ask for sales by region and the right chart appears automatically.

USE CASE 2

Create a task manager app where users add and update tasks through natural language messages.

USE CASE 3

Add an AI-powered interface to an existing React app without rewriting your components.

USE CASE 4

Connect your app to external tools like Slack or databases using the MCP protocol.

Tech stack

TypeScriptReactNode.jsDocker

Getting it running

Difficulty · easy Time to first run · 30min

Requires your own API key for an LLM provider such as OpenAI, Anthropic, or Google Gemini.

In plain English

Tambo is a toolkit for adding AI-driven user interfaces to React applications. Instead of building static screens with fixed layouts, you register your existing React components with Tambo, and an AI agent decides which components to show based on what the user types in a chat. If a user asks "show me sales by region," Tambo picks your Chart component and fills it with the right data. If the user says "add a task," it updates your TaskBoard component. Under the hood, Tambo runs the conversation loop with a language model of your choice: OpenAI, Anthropic, Google Gemini, Mistral, or any compatible provider. You bring your own API key. Tambo then streams component data back to your app as the model generates it, handling the technical details of cancellation, reconnection, and error recovery. The toolkit distinguishes between two kinds of components. Generative components appear once in response to a message, things like charts or summaries. Interactable components persist on screen and update as the user keeps refining their request, like a shopping cart or task board that a user can modify through follow-up messages. Setup is a one-command process using an npm initializer. You can connect to a hosted backend called Tambo Cloud, which manages conversation state and agent execution for you, or run the same backend yourself via Docker on your own infrastructure. The project also supports connecting to external tools and services through the MCP protocol, so the AI can query databases, post to Slack, or call any other MCP-compatible server. The library has its own documentation, a pre-built component library, starter templates, and a Discord community. It is open-source and reached over 11,000 GitHub stars shortly after launching version 1.0.

Copy-paste prompts

Prompt 1
Using Tambo, register my existing React Chart component so an AI can show it when a user asks for sales data by region.
Prompt 2
Help me set up Tambo in my React app with my own OpenAI API key and connect it to a local backend via Docker.
Prompt 3
Show me how to create a Tambo interactable component for a shopping cart that updates as the user types follow-up messages.
Prompt 4
Write a Tambo integration that connects to an MCP server so the AI can query my PostgreSQL database and display results.
Prompt 5
Help me build a Tambo starter from scratch that shows a generative summary card when a user asks a question about a product.
Open on GitHub → Explain another repo

← tambo-ai on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.