The Official CLI for tambo ui.
npx tambo full-sendThis command will:
- Set up your Tambo API key
- Install required components
- Configure your project with necessary dependencies
While you can install globally, we recommend using npx to ensure you're always using the latest version:
# Using npx (recommended)
npx tambo <command>Initialize Tambo in your Next.js project. Two modes available:
# Full setup - recommended for new projects
npx tambo full-send
# Basic setup - just API key configuration
npx tambo initAdd a Tambo component to your project:
# Basic usage
npx tambo add message
# With legacy peer dependencies flag
npx tambo add message --legacy-peer-depsUpdate an existing Tambo component in your project:
# Basic usage
npx tambo update message
# With legacy peer dependencies flag
npx tambo update message --legacy-peer-depsAvailable components:
message-thread-full- Full-screen chat interface with history and typing indicatorsmessage-thread-panel- Split-view chat with integrated workspacemessage-thread-collapsible- Collapsible chat for sidebarsthread-content- Message thread with grouping and timestampsthread-history- Chat history managementmessage-input- Rich text inputmessage- Individual message display with content formattingmessage-suggestions- AI-powered message suggestions
control-bar- Spotlight-style command palettethread-list- Organized chat thread navigation
form- Dynamic form with validationinput-fields- Text inputsmap- Interactive Map
graph- Interactive charts (line, bar, scatter, pie)
When you add components, they'll be installed in your project following this structure:
your-next-app/
├── src/
│ ├── components/
│ │ └── ui/
│ │ ├── message-thread-full.tsx
│ │ └── ...
│ ├── lib/
│ │ └── tambo.ts # Tool registry
│ └── app/
│ └── layout.tsx # you could add TamboProvider here (for entire app)
└── .env.local # Your API key configuration
The CLI will automatically create/update your .env.local file with:
NEXT_PUBLIC_TAMBO_API_KEY=your-api-keyAfter initialization, you can add the TamboProvider in one of two ways:
If you just want to add Tambo to specific pages or components, this is the quickest approach:
// In a specific page file (e.g., app/ai-chat/page.tsx)
"use client"; // Important! TamboProvider is a client component
import { TamboProvider } from "@tambo-ai/react";
import { components } from "../../lib/tambo"; // Import components
import { MessageThreadFull } from "@/components/ui/message-thread-full";
export default function AIChat() {
return (
<TamboProvider
apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY ?? ""}
components={components}
>
<MessageThreadFull />
</TamboProvider>
);
}This approach provides better context sharing between components and is recommended for production apps:
// In your layout file (e.g., app/layout.tsx)
"use client"; // Important! TamboProvider is a client component
import { TamboProvider } from "@tambo-ai/react";
import { components } from "../lib/tambo"; // Import components
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<TamboProvider
apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY ?? ""}
components={components}
>
{children}
</TamboProvider>
</body>
</html>
);
}Note: The TamboProvider manages client-side state for features like thread management, message history, and component state. The
"use client"directive is required.
For detailed documentation and examples, visit docs.tambo.co
For more information about all available components and installation options, check out the tambo ui showcase.
This CLI is currently in active development. While core features are stable, you might encounter:
- Regular updates with new features
- API refinements
- Additional component options
- Enhanced configuration options
See demos of the components in action:
--> here <--
MIT License - see the LICENSE file for details.
We're building tools for the future of user interfaces. Your contributions matter.
Star this repo to support our work.
Join our Discord to connect with other developers.
Built by developers, for developers.
Because we believe the future is generative.