ChaasKit Documentation

Welcome to ChaasKit - a full-stack AI chat application framework built with React Router v7 and Express.js. Create production-ready AI chat applications with authentication, team workspaces, MCP tool integration, and more.

Quick Start

# Create a new project
npx create-chaaskit create my-app
cd my-app

# Configure environment
cp .env.example .env
# Edit .env with your DATABASE_URL and API keys

# Setup database and start development
pnpm db:push
pnpm dev

Your app will be available at http://localhost:5173.

See Installation for detailed setup instructions.

How ChaasKit Works

ChaasKit provides a set of npm packages that work together:

@chaaskit/shared      # Types, validation schemas, constants
       ↓
@chaaskit/db          # Prisma database layer
       ↓
@chaaskit/server      # Express.js backend API
       ↓
@chaaskit/client      # React components and pages

chaaskit              # CLI scaffolding tool

When you run npx create-chaaskit create, you get a React Router v7 framework mode application that:

  • Uses server-side rendering for public pages (login, register, shared threads)
  • Provides a rich client-side chat experience with real-time streaming
  • Bundles everything into a single service (no separate frontend/backend)
  • Includes all authentication, theming, and routing out of the box

Project Structure

my-app/
├── app/
│   ├── routes/           # React Router v7 routes
│   │   ├── _index.tsx    # Landing page
│   │   ├── login.tsx     # Login page
│   │   ├── chat._index.tsx    # Main chat (at /chat)
│   │   └── chat.thread.$threadId.tsx
│   ├── components/       # Client wrapper components
│   ├── root.tsx          # HTML shell and providers
│   └── entry.*.tsx       # Client/server entry points
├── config/
│   └── app.config.ts     # Your configuration
├── extensions/           # Custom agents, pages, payment plans
├── prisma/
│   └── schema/           # Database schema files
├── public/               # Static assets
├── server.js             # Production server
└── package.json

Documentation

Getting Started

Core Features

Team Features

Advanced

Key Features

  • Multiple AI Providers: Anthropic (Claude) and OpenAI support
  • Multi-Agent Support: Configure multiple agents with different models
  • Real-time Streaming: SSE-based response streaming
  • MCP Tool Integration: Connect AI to external tools via Model Context Protocol
  • Native Tools: Built-in tools like web scraping
  • Mentionable Documents: Upload and reference documents with @-mentions
  • Team Workspaces: Collaborative workspaces with shared threads
  • Projects: Organize conversations with custom AI context
  • Slack Integration: Chat with AI directly from Slack
  • Job Queue: Background job processing with scheduling
  • Theming: Light/dark mode with customizable colors
  • Authentication: Email/password, OAuth, Magic Links
  • API Keys: Programmatic API access
  • Payments: Stripe integration for subscriptions
  • Search & Export: Full-text search and chat export

Updating ChaasKit

When new versions are released, update your project:

# Update dependencies
pnpm update @chaaskit/server @chaaskit/client @chaaskit/db @chaaskit/shared

# Sync the database schema (preserves your custom models)
pnpm db:sync

# Regenerate Prisma client
pnpm db:generate

# Push any schema changes
pnpm db:push

The db:sync command updates prisma/schema/base.prisma with the latest models from @chaaskit/db while preserving your custom models in prisma/schema/custom.prisma.

Getting Help