Toolkit.dev

Toolkit.dev

T3 Cloneathon Project

Open Source
Generative UI Chatbot

Configure a custom chatbot with content-rich, togglable toolkits. 100% type-safe communication between server tools and client rendering.

Can you help me research Vercel's AI repositories?

Built on theShoulders of Giants

Toolkit is powered by the incredible work of the open source community.

Next.js

Next.js

Create T3 App

Create T3 App

React

React

AI SDK

AI SDK

NextAuth.js

NextAuth.js

Prisma

Prisma

Redis

Redis

Postgres

Postgres

tRPC

tRPC

TanStack

TanStack

Next.js

Next.js

Create T3 App

Create T3 App

React

React

AI SDK

AI SDK

NextAuth.js

NextAuth.js

Prisma

Prisma

Redis

Redis

Postgres

Postgres

tRPC

tRPC

TanStack

TanStack

Next.js

Next.js

Create T3 App

Create T3 App

React

React

AI SDK

AI SDK

NextAuth.js

NextAuth.js

Prisma

Prisma

Redis

Redis

Postgres

Postgres

tRPC

tRPC

TanStack

TanStack

Next.js

Next.js

Create T3 App

Create T3 App

React

React

AI SDK

AI SDK

NextAuth.js

NextAuth.js

Prisma

Prisma

Redis

Redis

Postgres

Postgres

tRPC

tRPC

TanStack

TanStack

Zod

Zod

Radix UI

Radix UI

Lucide React

Lucide React

Motion

Motion

Shadcn/UI

Shadcn/UI

E2B

E2B

Mem0

Mem0

Recharts

Sonner

Zod

Zod

Radix UI

Radix UI

Lucide React

Lucide React

Motion

Motion

Shadcn/UI

Shadcn/UI

E2B

E2B

Mem0

Mem0

Recharts

Sonner

Zod

Zod

Radix UI

Radix UI

Lucide React

Lucide React

Motion

Motion

Shadcn/UI

Shadcn/UI

E2B

E2B

Mem0

Mem0

Recharts

Sonner

Zod

Zod

Radix UI

Radix UI

Lucide React

Lucide React

Motion

Motion

Shadcn/UI

Shadcn/UI

E2B

E2B

Mem0

Mem0

Recharts

Sonner

Create Custom ToolkitsIn Minutes, Not Hours

Building new AI capabilities is as simple as defining your tools. Configure server tools and client tools, and it automatically works with the entire system.

Define Base Config

Define tools and configuration parameters

base.ts
export const baseToolkit = { tools: { myAction: { description: "Write notes to your workspace", inputSchema: z.object({ note: z.string(), }), outputSchema: z.object({ result: z.string(), }), }, }, // user configuration parameters: z.object({ workspaceId: z.string(), scopes: z.array(z.string()), }), };
Create Client UI

Define a the look and feel

client.tsx
export const clientToolkit = createClientToolkit( baseToolkit, { name: "Note Taker", description: "Write notes to your workspace", icon: Note, }, { myAction: { CallComponent: ({ args }) => ( <p>Writing note to {args.workspaceId}</p> ), CallButtonComponent: ({ result }) => ( <Button>Save Note</Button> ), }, }, );
Add Server Logic

Implement the tool execution

server.ts
export const serverToolkit = createServerToolkit( baseToolkit, "System prompt for toolkit", async (params) => ({ myAction: { callback: async (args) => { // Your custom logic here const userToken = await getUserToken(); const result = await callExternalAPI( args.query, params.apiKey ); return { result }; }, aiMessage: "Note saved" }, }), );

Configure CustomWorkbenches

Workbenches combine multiple toolkits with specialized system prompts to create focused AI assistants for specific use cases. Each workbench orchestrates toolkit interactions seamlessly.

Research Assistant

Comprehensive research and documentation workbench

System Prompt

You are a research assistant that helps users gather, analyze, and document information from multiple sources.

Web Search
GitHub
GitHub
Image Generation
Notion
Notion

Data Analyst

Data processing and visualization workbench

System Prompt

You are a data analyst specializing in extracting insights from various data sources and creating compelling visualizations.

Notion
Notion
Google Drive
Google Drive
Code Interpreter
Image Generation

Project Manager

Team coordination and project management workbench

System Prompt

You are a project manager focused on coordinating teams, scheduling meetings, and tracking project progress.

Google Calendar
Google Calendar
Notion
Notion
Google Drive
Google Drive
Memory